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