一、什么是RowKey?
1.增刪改查的過程中RowKey就充當了主鍵的作用,它和眾多的nosql數據庫一樣,可以唯一的標識一行記錄。
2.RowKey行鍵 (RowKey)可以是任意字符串,只要保證這個字符串不重復就可以了。
3.由於數據按照RowKey的字典序(byte order)排序存儲,因此HBase中的數據永遠都是有序的。
二、RowKey的使用方式:
• get:通過指定單個RowKey來獲取對應的唯一一條記錄;
1 精確查詢某一個 RowKey 中存儲的內容:get ‘表的名稱‘,’RowKey‘
2 精確查詢某一個 RowKey 中的一個單元格中存儲的內容。語法:get ‘表的名稱‘,’RowKey‘,‘列名’
• like:通過RowKey的range來進行匹配;
• scan:通過設置startRow和stopRow參數來進行范圍匹配(注意:如果不設置就是全表掃描)。
步驟 1 查詢 RowKey 從“123002”(RowKey)開始,然后讀兩行的數據:
> scan '表名',{STARTROW=>'123002','LIMIT'=>2
步驟 2 查詢 RowKey 從“123001”開始,然后讀取兩行,讀取列名稱為 name 的單元格中存 儲的信息:
> scan '表名', {STARTROW=>'123001','LIMIT'=>2,COLUMNS=>'info:name'}
三、RowKey的作用可以歸納如下兩點:
Hbase在讀寫數據時需要通過RowKey找到對應的Region;
MemStore和HFile中的數據都是按照 RowKey 的字典序排序。
在HBase中,一個Region就相當於一個數據分片,每個Region都有StartRowKey和StopRowKey(用來表示 Region存儲的RowKey的范圍),HBase表里面的數據是按照RowKey來分散存儲到不同的Region 里面的。
而將數據記錄均衡的分散到不同的Region中避免熱點現象就是RowKey最主要的作用。
原文鏈接:https://blog.csdn.net/qq_26803795/article/details/105994960