前言
本文隸屬于專欄《1000個問題搞定大資料技術體系》,該專欄為筆者原創,參考請注明來源,不足和錯誤之處請在評論區幫忙指出,謝謝!
本專欄目錄結構和參考文獻請見1000個問題搞定大資料技術體系
正文
1、進入Hbase客戶端命令操作界面
hbase shell
2、查看幫助命令
hbase(main):001:0> help
3、查看當前資料庫中有哪些表
hbase(main):006:0> list
4、創建一張表
- 創建user表, 包含base_info、extra_info兩個列族
hbase(main):007:0> create 'user', 'base_info', 'extra_info'
或者
create 'user', {NAME => 'base_info', VERSIONS => '3'},{NAME => 'extra_info'}
5、添加資料操作
- 向user表中插入資訊,row key為 rk0001,列族base_info中添加name列標示符,值為zhangsan
hbase(main):008:0> put 'user', 'rk0001', 'base_info:name', 'zhangsan'
- 向user表中插入資訊,row key為rk0001,列族base_info中添加gender列標示符,值為female
hbase(main):009:0> put 'user', 'rk0001', 'base_info:gender', 'female'
- 向user表中插入資訊,row key為rk0001,列族base_info中添加age列標示符,值為20
hbase(main):010:0> put 'user', 'rk0001', 'base_info:age', 20
- 向user表中插入資訊,row key為rk0001,列族extra_info中添加address列標示符,值為beijing
hbase(main):011:0> put 'user', 'rk0001', 'extra_info:address', 'beijing'
6、查詢資料
6.1 通過rowkey進行查詢
- 獲取user表中row key為rk0001的所有資訊
hbase(main):006:0> get 'user', 'rk0001'
6.2 查看rowkey下面的某個列族的資訊
- 獲取user表中row key為rk0001,base_info列族的所有資訊
hbase(main):007:0> get 'user', 'rk0001', 'base_info'
6.3 查看rowkey指定列族指定欄位的值
- 獲取user表中row key為rk0001,base_info列族的name、age列標示符的資訊
hbase(main):008:0> get 'user', 'rk0001', 'base_info:name', 'base_info:age'
6.4 查看rowkey指定多個列族的資訊
- 獲取user表中row key為rk0001,base_info、extra_info列族的資訊
hbase(main):010:0> get 'user', 'rk0001', 'base_info', 'extra_info'
或者
hbase(main):011:0> get 'user', 'rk0001', {COLUMN => ['base_info', 'extra_info']}
或者
hbase(main):012:0> get 'user', 'rk0001', {COLUMN => ['base_info:name', 'extra_info:address']}
6.5 指定rowkey與列值查詢
- 獲取user表中row key為rk0001,cell的值為zhangsan的資訊
hbase(main):013:0> get 'user', 'rk0001', {FILTER => "ValueFilter(=, 'binary:zhangsan')"}
6.6 指定rowkey與列值模糊查詢
- 獲取user表中row key為rk0001,列標示符中含有a的資訊
hbase(main):015:0> get 'user', 'rk0001', {FILTER => "(QualifierFilter(=,'substring:a'))"}
6.7 繼續插入一批資料
hbase(main):016:0> put 'user', 'rk0002', 'base_info:name', 'fanbingbing'
hbase(main):017:0> put 'user', 'rk0002', 'base_info:gender', 'female'
hbase(main):018:0> put 'user', 'rk0002', 'base_info:birthday', '2000-06-06'
hbase(main):019:0> put 'user', 'rk0002', 'extra_info:address', 'Shanghai'
6.8 查詢所有資料
- 查詢user表中的所有資訊
hbase(main):020:0> scan 'user'
6.9 列族查詢
- 查詢user表中列族為 base_info 的資訊
hbase(main):021:0> scan 'user', {COLUMNS => 'base_info'}
hbase(main):022:0> scan 'user', {COLUMNS => 'base_info', RAW => true, VERSIONS => 5}
Scan時可以設定是否開啟Raw模式,開啟Raw模式會回傳包括已添加洗掉標記但是未實際洗掉的資料
VERSIONS指定查詢的最大版本數
6.10 多列族查詢
- 查詢user表中列族為info和data的資訊
hbase(main):023:0> scan 'user', {COLUMNS => ['base_info', 'extra_info']}
hbase(main):024:0> scan 'user', {COLUMNS => ['base_info:name', 'extra_info:address']}
6.11 指定列族與某個列名查詢
- 查詢user表中列族為base_info、列標示符為name的資訊
hbase(main):025:0> scan 'user', {COLUMNS => 'base_info:name'}
6.12 指定列族與列名以及限定版本查詢
- 查詢user表中列族為base_info、列標示符為name的資訊,并且版本最新的5個
hbase(main):026:0> scan 'user', {COLUMNS => 'base_info:name', VERSIONS => 5}
6.13 指定多個列族與按照資料值模糊查詢
- 查詢user表中列族為 base_info 和 extra_info且列標示符中含有a字符的資訊
hbase(main):027:0> scan 'user', {COLUMNS => ['base_info', 'extra_info'], FILTER => "(QualifierFilter(=,'substring:a'))"}
6.14 rowkey的范圍值查詢
- 查詢user表中列族為info,rk范圍是[rk0001, rk0003)的資料
hbase(main):028:0> scan 'user', {COLUMNS => 'base_info', STARTROW => 'rk0001', ENDROW => 'rk0003'}
6.15 指定rowkey模糊查詢
- 查詢user表中row key以rk字符開頭的
hbase(main):029:0> scan 'user',{FILTER=>"PrefixFilter('rk')"}
7、更新資料
- 更新操作同插入操作一模一樣,只不過有資料就更新,沒資料就添加
7.1 更新資料值
- 把user表中rowkey為rk0001的base_info列族下的列name修改為zhangsansan
hbase(main):030:0> put 'user', 'rk0001', 'base_info:name', 'zhangsansan'
7.2 更新版本號
- 將user表的 base_info 列族版本號改為5
hbase(main):031:0> alter 'user', NAME => 'base_info', VERSIONS => 5
8、洗掉資料和表
8.1 指定rowkey以及列名進行洗掉
- 洗掉user表row key為rk0001,列標示符為 base_info:name 的資料
hbase(main):032:0> delete 'user', 'rk0001', 'base_info:name'
8.2 指定rowkey,列名以及欄位值進行洗掉
- 洗掉user表row key為rk0001,列標示符為base_info:name,timestamp為1392383705316的資料
hbase(main):033:0> delete 'user', 'rk0001', 'base_info:age', 1564745324798
8.3 洗掉列族
- 洗掉 base_info 列族
hbase(main):034:0> alter 'user', NAME => 'base_info', METHOD => 'delete'
或者
hbase(main):035:0> alter 'user', 'delete' => 'base_info'
8.4 清空表資料
- 洗掉user表資料
hbase(main):036:0> truncate 'user'
8.5 洗掉表
- 洗掉user表
#先disable 再drop
hbase(main):036:0> disable 'user'
hbase(main):037:0> drop 'user'
#如果不進行disable,直接drop會報錯
ERROR: Table user is enabled. Disable it first.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/292906.html
標籤:其他
上一篇:大資料入門-五分鐘讀懂HDFS
下一篇:IDEA 的高效使用
