溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

hbase的rowkey設(shè)計原則和實(shí)現(xiàn)方式是怎樣的

發(fā)布時間:2021-11-15 15:47:43 來源:億速云 閱讀:390 作者:柒染 欄目:大數(shù)據(jù)

今天就跟大家聊聊有關(guān)hbase的rowkey設(shè)計原則和實(shí)現(xiàn)方式是怎樣的,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

hbase的rowkey設(shè)計原則和實(shí)現(xiàn)方式是怎樣的

一:hbase的存儲形式

hbase的內(nèi)部使用KeyValue的形式存在,其key是有rowkey:family:column:logTime,value是其存儲的內(nèi)容。
其在region的是大多以升序的形式排列,唯一的是logtime是以降序的形式進(jìn)行排列。
所以,按照越靠近左邊的信息越容易被檢索到。  其設(shè)計時,要考慮把重要的信息放左邊,不重要的信息放到右邊。  這樣可以提高查詢數(shù)據(jù)的速度。  這樣,最重要的提高索引速度的就是設(shè)計合適的rowkey。

二:rowkey的設(shè)計原則

1、長度原則
最短越好,最大不能超過64K。  太長的影響有兩點(diǎn),一是極大影響了HFile的存儲效率。  二是緩存memstore不能得到有效利用,緩存不能存放太多的信息,造成檢索效率的降低。
2、唯一原則
保證rowkey的唯一性,這條沒有什么要講的。
3、自己一條原則
盡量保證經(jīng)常一起用的rowkey存儲在同一個region上,有助于提升檢索效率。  但要避免熱點(diǎn)問題。
4、對于常用的檢索的rowkey,盡量使用縱表(行多列少),不要選擇寬表(列多行少)。

三:rowkey引起熱點(diǎn)問題的集中解決方法

1、加鹽:  在rowkey前面加一個冗余信息,這樣可以把數(shù)據(jù)分散到不同的region中。
  優(yōu)點(diǎn):  可以有效的防止rowkey集中分配到一個或多個region中。  有效避免了熱點(diǎn)問題;
  缺點(diǎn):  無形中增加了rowkey的長度;  范圍檢索得不到有效使用。
2、字段交換,提升權(quán)重:  如果rowkey中含有幾個信息字段,可以調(diào)整信息字段的順序。
  缺點(diǎn):  對于單個信息字段,或者無論怎么調(diào)整都會遇到region熱點(diǎn)的rowkey是解決不了的。
3、隨機(jī)鍵:  把rowkey進(jìn)行hash化,在分配到不同的服務(wù)器上。  和加鹽的方式相似;
以下是順序讀的性能排行(由高到低,寫性能與讀性能相反):  順序鍵 -> 使用加鹽鍵 -> 提升字段鍵  -> 隨機(jī)鍵

強(qiáng)加幾個知識點(diǎn):

1、盡量使用范圍查詢代替前綴查詢;
2、數(shù)據(jù)多時,用分頁查詢;

看完上述內(nèi)容,你們對hbase的rowkey設(shè)計原則和實(shí)現(xiàn)方式是怎樣的有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI