rowkey設計原則和方法

2021-09-29 05:22:32 字數 656 閱讀 4544

rowkey是乙個二進位製碼流,可以為任意字串,最大長度為64kb,實際應用中一般為10-100bytes,它以byte形式儲存,一般設定成定長。

一般越短越好,不要超過16個位元組,注意原因如下:

1、目前作業系統都是64位系統,記憶體8位元組對齊,控制在16位元組,8位元組的整數倍利用了作業系統的最佳特性。

2、hbase將部分資料載入到記憶體當中,如果rowkey過長,記憶體的有效利用率就會下降。

如果rowkey按照時間戳的方式遞增,不要將時間放在二進位製碼的前面,建議將rowkey的高位位元組採用雜湊字段處理,由程式隨即生成。低位放時間字段,這樣將提高資料均衡分布,各個regionserver負載均衡的機率。

如果不進行雜湊處理,首字段直接使用時間資訊,所有該時段的資料都將集中到乙個regionserver當中,這樣當檢索資料時,負載會集中到個別regionserver上,造成熱點問題,會降低查詢效率。

必須在設計上保證其唯一性,rowkey是按照字典順序排序儲存的,因此,設計rowkey的時候,要充分利用這個排序的特點,將經常讀取的資料儲存到一塊,將最近可能會被訪問的資料放到一塊。但是這裡的量不能太大,如果太大需要拆分到多個節點上去。

所以良好的rowkey設計,應當遵循三大原則,並且能讓資料分散,從而避免熱點問題。

本節介紹幾種常用的rowkey設計方法,以供同學們學習。

rowKey設計原則 設計方法

1 rowkey 長度原則 rowkey是乙個二進位製碼流,可以為任意字串,最大長度為64kb,實際應用中一般為10 100bytes,它以byte形式儲存,一般設定成定長。一般越短越好,不要超過16個位元組,注意原因如下 1 目前作業系統都是64位系統,記憶體8位元組對齊,控制在16位元組,8位元...

HBase之rowkey設計原則和方法

rowkey設計原則和方法 rowkey設計首先應當遵循三大原則 rowkey長度原則 rowkey是乙個二進位製碼流,可以為任意字串,最大長度為64kb,實際應用中一般為10 100bytes,它以byte形式儲存,一般設定成定長。一般越短越好,不要超過16個位元組,注意原因如下 1 目前作業系統...

rowkey設計原則

rowkey是二進位製碼流,可以是任意字串,最大長度64kb。一 rowkey長度原則 建議越短越好,因為如果要儲存多行資料的話,單憑rowkey就要占用很多的儲存空間,這樣會嚴重影響hfile的儲存效率。二 rowkey雜湊原則 如果rowkey按照時間戳的方式遞增,不要將時間放在二進位製碼的前面...