Hbase裏的排序和比較大小

rowkey是行的主鍵,並且hbase只能用個rowkey,或者一個rowkey範圍即scan來查找數據。因此 rowkey的設計是相當重要的,關係到你應用層的查詢效率。咱們知道,rowkey是以字典順序排序的。而存儲的字節碼,字典排序,咱們知道,若是是字 母,那就是字母的順序,好比,有兩個rowkey,rowkey1:aaa222,rowkey2:bbb111,那麼rowkey1是排在 rowkey2前面的,由於按字典,a排在b前面,若是rowkey2的第一位也是a,那麼就根據第二位來比較,若是還相同,則比較第三爲,後面一樣。這 個理解了,咱們在根據rowkey範圍查詢的時候,咱們通常是知道startRowkey,若是咱們經過scan只傳startRowKey : d開頭的,那麼查詢的是全部比d大的都查了,而咱們只須要d開頭的數據,那就要經過endRowKey來限制。咱們能夠經過設定endRowKey爲:d 開頭,後面的根據你的rowkey組合來設定,通常是加比startKey大一位。好比說rowkey設計爲:用戶ID-日期,那麼查某個用戶某天的數 據,startKEY爲3231-20121212,endKey爲:3231+201213,那麼你查到的就是用戶爲3231在20121212這一天 的數據。
    column key
     column key是rowkey以後,數據按rowkey字典排序後,若是rowkey相同,則是根據column key來排序的,也是按字典排序。
咱們在設計table的時候要學會利用這一點。好比咱們的收件箱。咱們有時候須要按主題排序,那咱們就能夠把主題這設置爲咱們的column key,即設計爲columnFamily+主題.,這樣的設計。
     timestamp
timestamp 時間戳,是第三維,這是個按降序排序的,即最新的數據排在最前面設計

hbase裏比較大小也是按字典來比較的,在hbase裏9>800,因此咱們比較大小的時候要注意補零,將數字長度一致排序

相關文章
相關標籤/搜索