Hbase rowkey的設計 與 優化

2021-06-26 01:07:28 字數 900 閱讀 6609

1.在hbase中,設計rowkey需要考慮到以下的因素:

1.表應該有多少個列族

2.列族裡面存放著什麼資料

3.每個列族應該有多少列

4.列名是什麼

5.單元應該存放什麼資料

6.每個單元最多有多少個時間版本

設計的時候還要注意3點

1:join

hbase是沒有join的,但是在實際上的業務需要中,是要使用到多表操作的。

使用大表的話,就是把所有的管理資料都匯入乙個表裡面就可以解決了

2:rowkey

使用復合rowkey的時候,用在檢視使用者的電影記錄的時候,選擇userid+playtime 作為復合rowkey, 原先rowkey儲存是按從小到大排序,進行倒置之後,就可以查詢使用者的**電影的記錄從新到舊的排序了

(用二進位制比用string更節省空間,但是二進位制不方便排錯與檢視,使用string能更好的資料均勻,所有最好使用string作為rowkey)

rowkey是按照由低到高排序儲存在hbase裡面的。

rowkey決定查詢hbase的效能,而且rowkey相當於keyvalue的key值

3.rowkey的優化

1.rowkey是按照從大到小的排序的

2.rowkey盡量使用雜湊的rowkey設計

保持rowkey雜湊,就可以保證rowkey的所有資料都不是在乙個region上,從而避免rowkey讀寫都在的負載都在乙個region上面

△雜湊rowkey,把rowkey進行雜湊(hash)儲存

△userid 進md5 加密,取前6位作為rowkey的字首

3.rowkey的長度盡量短

△時間盡量使用long來表示

△盡量使用編碼壓縮

//todo 總會回來改的

HBase RowKey設計原則

對於關係型資料庫,資料定位可以理解為 二維座標 但是hbase中需要四維來定位乙個單元格,即 行健 列族 列限定符 時間戳 hbase中的行是按照rowkey的字典順序排序的,這種設計優化了scan操作,可以將相關的行以及會被一起讀取的行訪問在臨近位置,便於scan。然而糟糕的rowkey設計是熱點...

HBase Rowkey 設計指南

文章目錄 2 rowkey設計技巧 3 rowkey 設計案例剖析 我們常說看一張 hbase 表設計的好不好,就看它的 rowkey 設計的好不好。可見 rowkey 在 hbase 中的地位。那麼 rowkey 到底是什麼?rowkey 的特點如下 如果我們的 rowkey 設計為 uid ph...

HBase Rowkey 設計指南

我們常說看一張 hbase 表設計的好不好,就看它的 rowkey 設計的好不好。可見 rowkey 在 hbase 中的地位。那麼 rowkey 到底是什麼?rowkey 的特點如下 如果我們的 rowkey 設計為 uid phone name,那麼這種設計可以很好的支援以下的場景 難以支援的場...