HBase rowkey的按字段順序排序的意思

HBase的rowkey是一串二進(jìn)制數(shù)據(jù)丐谋,在Java中就是一個(gè)byte[],是一行數(shù)據(jù)的唯一標(biāo)識(shí)符。
而業(yè)務(wù)的主鍵可能是有各種數(shù)據(jù)類型的膀跌,所以,這里要解決2個(gè)問(wèn)題:

將各種實(shí)際使用的數(shù)據(jù)類型與byte[]進(jìn)行相互轉(zhuǎn)換
保序:byte[]形式的rowkey的排序結(jié)果與原始數(shù)據(jù)的排序結(jié)果一致
rowkey的比較就是byte[]的比較固灵,按字典序進(jìn)行比較(二進(jìn)制排序)捅伤,簡(jiǎn)單說(shuō),就是c語(yǔ)言中memcmp函數(shù)巫玻。通過(guò)下面的示例丛忆,我們通過(guò)排序結(jié)果來(lái)對(duì)這一比較規(guī)則以及數(shù)據(jù)類型轉(zhuǎn)換進(jìn)行理解。

(1)ascii碼的大小比較
1234 -> 0x31 32 33 34
5 -> 0x35
從ascii碼表示的數(shù)字來(lái)看仍秤,1234 > 5熄诡, 但從字典序來(lái)看,1234 < 5

(2)具有相同前綴的ascii碼比較
1234 -> 0x31 32 33 34
12340 -> 0x31 32 33 34 00
在C語(yǔ)言中徒扶,字符串一般是以0自己結(jié)尾的粮彤。本例的兩個(gè)字符串雖然前綴相同,但第二個(gè)末尾多了0字節(jié),則第二個(gè)“較大”导坟。

(3)正數(shù)與負(fù)數(shù)的比較
int類型的100 -> 0x00 00 00 64
int類型的-100 -> 0xFF FF FF 9C
100 > -100屿良,但其二進(jìn)制表達(dá)中,100 < -100

我們可以將這個(gè)比較規(guī)則總結(jié)如下:

從左到右逐個(gè)字節(jié)進(jìn)行比較惫周,以第一個(gè)不同字節(jié)的比較結(jié)果作為兩個(gè)byte[]的比較結(jié)果
字節(jié)的比較是按無(wú)符號(hào)數(shù)方式進(jìn)行的
“不存在”比“存在”小
常見的rowkey編碼問(wèn)題:

有符號(hào)數(shù):二進(jìn)制表示中尘惧,有符號(hào)數(shù)的首bit是1,在字典序規(guī)則下递递,負(fù)數(shù)比正數(shù)大喷橙,所以,當(dāng)rowkey的值域同時(shí)包含正數(shù)和負(fù)數(shù)時(shí)登舞,需要對(duì)符號(hào)位進(jìn)行反轉(zhuǎn)贰逾,以確保正數(shù)比負(fù)數(shù)大
倒序:通常用long來(lái)描述時(shí)間,一般都是倒排的菠秒,假設(shè)原始值是v疙剑,則v的倒序編碼是Long#MAX_VALUE - v。

https://blog.csdn.net/weixin_34206899/article/details/89651066

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末践叠,一起剝皮案震驚了整個(gè)濱河市言缤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌禁灼,老刑警劉巖管挟,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異弄捕,居然都是意外死亡僻孝,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門守谓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)皮璧,“玉大人,你說(shuō)我怎么就攤上這事分飞。” “怎么了睹限?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵譬猫,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我羡疗,道長(zhǎng)染服,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任叨恨,我火速辦了婚禮柳刮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己秉颗,他們只是感情好痢毒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蚕甥,像睡著了一般哪替。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上菇怀,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天凭舶,我揣著相機(jī)與錄音,去河邊找鬼爱沟。 笑死帅霜,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的呼伸。 我是一名探鬼主播身冀,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蜂大!你這毒婦竟也來(lái)了闽铐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤奶浦,失蹤者是張志新(化名)和其女友劉穎兄墅,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體澳叉,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡隙咸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了成洗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片五督。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖瓶殃,靈堂內(nèi)的尸體忽然破棺而出充包,到底是詐尸還是另有隱情,我是刑警寧澤遥椿,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布基矮,位于F島的核電站,受9級(jí)特大地震影響冠场,放射性物質(zhì)發(fā)生泄漏家浇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一碴裙、第九天 我趴在偏房一處隱蔽的房頂上張望钢悲。 院中可真熱鬧点额,春花似錦、人聲如沸莺琳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)芦昔。三九已至诱贿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間咕缎,已是汗流浹背珠十。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留凭豪,地道東北人焙蹭。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像嫂伞,于是被迫代替她去往敵國(guó)和親孔厉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容