HBase是三維有序存儲的,經過rowkey(行鍵),column key(column family和qualifier)和TimeStamp(時間戳)這個三個維度能夠對HBase中的數據進行快速定位。緩存
HBase中rowkey能夠惟一標識一行記錄,在HBase查詢的時候,有如下幾種方式:負載均衡
rowkey長度原則 :spa
rowkey是一個二進制碼流,能夠是任意字符串,最大長度 64kb ,實際應用中通常爲10-100bytes,以 byte[]
形式保存,通常設計成定長。操作系統
建議越短越好,不要超過16個字節,緣由以下:設計
若是rowkey按照時間戳的方式遞增,不要將時間放在二進制碼的前面,建議將rowkey的高位做爲散列字段,由程序隨機生成,低位放時間字段,這樣將提升數據均衡分佈在每一個RegionServer,以實現負載均衡的概率。若是沒有散列字段,首字段直接是時間信息,全部的數據都會集中在一個RegionServer上,這樣在數據檢索的時候負載會集中在個別的RegionServer上,形成熱點問題,會下降查詢效率。code
必須在設計上保證其惟一性,rowkey是按照字典順序排序存儲的,所以,設計rowkey的時候,要充分利用這個排序的特色,將常常讀取的數據存儲到一塊,將最近可能會被訪問的數據放到一塊。排序