https://www.csdn.net/gather_2e/MtTaEg0sMzE3Ni1ibG9n.htmlphp
能夠存儲非結構化的數據(用戶、商品、文章的畫像屬性)css
被用來作實時(整合flume、storm、streaming等)html
存儲歷史明細數據(較少)java
存儲結果數據(數倉,Kylin預執行數據就是放到Hbase中)node
1. list_namespace:查詢全部命名空間 hbase(main):001:0> list_namespace NAMESPACE default hbase 2. list_namespace_tables : 查詢指定命名空間的表 hbase(main):014:0> list_namespace_tables 'hbase' TABLE meta namespace 3. create_namespace : 建立指定的命名空間 hbase(main):018:0> create_namespace 'myns' hbase(main):019:0> list_namespace NAMESPACE default hbase myns 4. describe_namespace : 查詢指定命名空間的結構 hbase(main):021:0> describe_namespace 'myns' DESCRIPTION {NAME => 'myns'} 5. alter_namespace :修改命名空間的結構 hbase(main):022:0> alter_namespace 'myns', {METHOD => 'set', 'name' => 'eRRRchou'} hbase(main):023:0> describe_namespace 'myns' DESCRIPTION {NAME => 'myns', name => 'eRRRchou'} 修改命名空間的結構=>刪除name hbase(main):022:0> alter_namespace 'myns', {METHOD => 'unset', NAME => 'name'} hbase(main):023:0> describe_namespace 'myns' 6. 刪除命名空間 hbase(main):026:0> drop_namespace 'myns' hbase(main):027:0> list_namespace NAMESPACE default hbase 7. 利用新添加的命名空間建表 hbase(main):032:0> create 'myns:t1', 'f1', 'f2'
1. 查詢全部表 hbase(main):002:0> list TABLE HelloHbase kylin_metadata myns:t1 3 row(s) in 0.0140 seconds => ["HelloHbase", "kylin_metadata", "myns:t1"] 2. describe : 查詢表結構 hbase(main):003:0> describe 'myns:t1' {NAME => 'f1', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP _DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMP RESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '6553 6', REPLICATION_SCOPE => '0'} {NAME => 'f2', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP _DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMP RESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '6553 6', REPLICATION_SCOPE => '0'} 3. 建立分片表 hbase(main):007:0> create 'myns:t2', 'f1', SPLITS => ['10', '20', '30', '40'] 4. 修改表,添加修改列簇信息 hbase(main):009:0> alter 'myns:t1', {NAME=>'info1'} hbase(main):010:0> describe 'myns:t1' 5. 刪除列簇 hbase(main):014:0> alter 'myns:t1', {'delete' => 'info1'} hbase(main):015:0> describe 'myns:t1' 6. 刪除表 hbase(main):016:0> disable 'myns:t1' hbase(main):017:0> drop 'myns:t1'
用到的表建立語句:
hbase(main):011:0> create 'myns:user_info','base_info','extra_info' 1. 插入數據(put命令,不能一次性插入多條) hbase(main):012:0> put 'myns:user_info','001','base_info:username','張三' 2. scan掃描 hbase(main):024:0> scan 'myns:user_info' 3. 經過指定版本查詢 hbase(main):024:0> scan 'myns:user_info', {RAW => true, VERSIONS => 1} hbase(main):024:0> scan 'myns:user_info', {RAW => true, VERSIONS => 2} 4. 查詢指定列的數據 hbase(main):014:0> scan 'myns:user_info',{COLUMNS => 'base_info:username'} 5. 分頁查詢 hbase(main):021:0> scan 'myns:user_info', {COLUMNS => ['base_info:username'], LIMIT => 10, STARTROW => '001'} 6. get查詢 hbase(main):015:0> get 'myns:user_info','001','base_info:username' hbase(main):017:0> put 'myns:user_info','001','base_info:love','basketball' hbase(main):018:0> get 'myns:user_info','001' 7. 根據時間戳查詢 是一個範圍,包頭不包尾 hbase(main):029:0> get 'myns:user_info','001', {'TIMERANGE' => [1571650017702, 1571650614606]} 8. hbase排序 插入到hbase中去的數據,hbase會自動排序存儲: 排序規則: 首先看行鍵,而後看列族名,而後看列(key)名; 按字典順序 9. 更新數據 hbase(main):010:0> put 'myns:user_info', '001', 'base_info:name', 'rock' hbase(main):011:0> put 'myns:user_info', '001', 'base_info:name', 'eRRRchou' 10. incr計數器 hbase(main):053:0> incr 'myns:user_info', '002', 'base_info:age3' 11. 刪除 hbase(main):058:0> delete 'myns:user_info', '002', 'base_info:age3' 12. 刪除一行 hbase(main):028:0> deleteall 'myns:user_info','001' 13. 刪除一個版本 hbase(main):081:0> delete 'myns:user_info','001','extra_info:feature', TIMESTAMP=>1546922931075 14. 刪除一個表 hbase(main):082:0> disable 'myns:user_info' hbase(main):083:0> drop 'myns:user_info' 15. 判斷表是否存在 hbase(main):084:0> exists 'myns:user_info' 16. 表生效和失效 hbase(main):085: