16进制 hbase phoenix_【建议收藏】HBase表的RowKey设计
生活随笔
收集整理的這篇文章主要介紹了
16进制 hbase phoenix_【建议收藏】HBase表的RowKey设计
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Hello,大家好,我是勾叔。今天和大家談一下HBase表的RowKey設(shè)計,談HBase表的RowKey設(shè)計之前,先來認識RowKey。
RowKey簡介
RowKey,即每行數(shù)據(jù)的主鍵。Rowkey由用戶指定的一串不重復(fù)的字符串定義,是一行的唯一標(biāo)識。數(shù)據(jù)是按照RowKey的字典順序存儲的,并且查詢數(shù)據(jù)時只能根據(jù)RowKey進行檢索,所以RowKey的設(shè)計十分重要。如果使用了之前已定義的RowKey,那么會將之前的數(shù)據(jù)進行更新。認識RowKey后,我們來了解ASCII碼的字典順序,示例如下:012,0,123,234,30,3,012,123,2340,012,123,234,3字典序的排序規(guī)則是先比較第一個字節(jié),如果相同,則比較第二個字節(jié),以此類推,直到第X個字節(jié),其中一個已經(jīng)超出了RowKey的長度,短RowKey排在前面。了解并認識了RowKey和字典序的排序規(guī)則后,我們依次從RowKey設(shè)計的長度原則、散列原則、唯一原則、排序原則來介紹RowKey的設(shè)計。RowKey設(shè)計
RowKey長度原則
RowKey是一個二進制碼流,可以是任意字符串,最大長度64kb,實際應(yīng)用中,一般為10-100bytes,以byte[]形式保存,一般設(shè)計為定長。建議越短越好,不要超過16個字節(jié)。設(shè)計過長會降低memstore內(nèi)存的利用率和HFile存儲數(shù)據(jù)的效率。RowKey散列原則建議將RowKey的高位作為散列字段,這樣可以將數(shù)據(jù)均衡分布在每個RegionServer,以實現(xiàn)負載均衡的幾率。RowKey唯一原則必須在設(shè)計上保證其唯一性,一共有三種方式訪問hbase table中的行,具體如下:- 單個RowKey
- RowKey 的Range
- 全表掃描(一定要避免全表掃描)
總結(jié)
以上是生活随笔為你收集整理的16进制 hbase phoenix_【建议收藏】HBase表的RowKey设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: axure rp制作输入法_Axure教
- 下一篇: 大白菜u盘启动引导修复工具怎么用 使用大