HBase shell 命令基本操作
阿新 • • 發佈:2021-06-10
查詢資料操作
1 通過rowkey進行查詢
- 獲取user表中row key為rk0001的所有資訊(即所有cell的資料)
- 使用get命令
get 'user', 'rk0001'
2 檢視rowkey下某個列族的資訊
- 獲取user表中row key為rk0001,info列族的所有資訊
get 'user', 'rk0001', 'info'
3 檢視rowkey指定列族指定欄位的值
- 獲取user表中row key為rk0001,info列族的name、age列的資訊
get 'user', 'rk0001', 'info:name', 'info:age'
4 檢視rowkey指定多個列族的資訊
- 獲取user表中row key為rk0001,info、data列族的資訊
get 'user', 'rk0001', 'info', 'data'
#或者你也可以這樣寫
get 'user', 'rk0001', {COLUMN => ['info', 'data']}
#或者你也可以這樣寫,也行
get 'user', 'rk0001', {COLUMN => ['info:name', 'data:pic']}
5 指定rowkey與列值過濾器查詢
- 獲取user表中row key為rk0001,cell的值為zhangsan的資訊
get 'user', 'rk0001', {FILTER => "ValueFilter(=, 'binary:zhangsan')"}
6 指定rowkey與列名模糊查詢
- 獲取user表中row key為rk0001,列標示符中含有a的資訊
get 'user', 'rk0001', {FILTER => "QualifierFilter(=,'substring:a')"}
7 查詢所有行的資料
- 查詢user表中的所有資訊
- 使用scan命令
scan 'user'
8 列族查詢
- 查詢user表中列族為info的資訊
scan 'user', {COLUMNS => 'info'} #當把某些列的值刪除後,具體的資料並不會馬上從儲存檔案中刪除;查詢的時候,不顯示被刪除的資料;如果想要查詢出來的話,RAW => true scan 'user', {COLUMNS => 'info', RAW => true, VERSIONS => 5} scan 'user', {COLUMNS => 'info', RAW => true, VERSIONS => 3}
9 多列族查詢
- 查詢user表中列族為info和data的資訊
scan 'user', {COLUMNS => ['info', 'data']}
10 指定列族與某個列名查詢
- 查詢user表中列族為info、列標示符為name的資訊
scan 'user', {COLUMNS => 'info:name'}
- 查詢info:name列、data:pic列的資料
scan 'user', {COLUMNS => ['info:name', 'data:pic']}
- 查詢user表中列族為info、列標示符為name的資訊,並且版本最新的5個
scan 'user', {COLUMNS => 'info:name', VERSIONS => 5}
11 指定多個列族與條件模糊查詢
- 查詢user表中列族為info和data且列標示符中含有a字元的資訊
scan 'user', {COLUMNS => ['info', 'data'], FILTER => "QualifierFilter(=,'substring:a')"}
12 指定rowkey的範圍查詢
- 查詢user表中列族為info,rk範圍是[rk0001, rk0003)的資料
scan 'user', {COLUMNS => 'info', STARTROW => 'rk0001', ENDROW => 'rk0003'}
13 指定rowkey模糊查詢
- 查詢user表中row key以rk字元開頭的資料
scan 'user',{FILTER=>"PrefixFilter('rk')"}
14 指定資料版本的範圍查詢
- 查詢user表中指定範圍的資料(前閉後開)
scan 'user', {TIMERANGE => [1392368783980, 1610288780669]}
更新資料操作
1 更新資料值
- 更新操作同插入操作一模一樣,只不過有資料就更新,沒資料就新增
- 使用put命令
2 更新版本號
- 將user表的info列族版本數改為5
alter 'user', NAME => 'info', VERSIONS => 5
刪除資料以及刪除表操作
1 指定rowkey以及列名進行刪除
- 刪除user表row key為rk0001,列標示符為info:name的資料
delete 'user', 'rk0001', 'info:name'
2 指定rowkey,列名以及版本號進行刪除
- 刪除user表row key為rk0001,列標示符為info:name,timestamp為1392383705316的資料
delete 'user', 'rk0001', 'info:name', 1392383705316
3 刪除一個列族
- 刪除一個列族:
alter 'user', NAME => 'data', METHOD => 'delete'
#或
alter 'user', 'delete' => 'info'
4 清空表資料
truncate 'user'
5 刪除表
- 首先需要先讓該表為disable狀態,使用命令:
disable 'user'
- 然後使用drop命令刪除這個表
drop 'user'
(注意:如果直接drop表,會報錯:Drop the named table. Table must first be disabled)
統計一張表有多少行資料
count 'user'