前言
- 以下命令在hbase1.2.1版本下试验通过。
- 记录常用hbase命令提高工作效率
常用命令
-
使用命令操作时,需要对表名列名带上单引号,否则会被hbase认为是一个变量,会报如下错误:
- NameError: undefined local variable or method `main2’ for Object:0x44b21f9f>
-
查看安装版本
version
列族相关
1)增加/修改 一个列族,指定版本号
alter 'test_tianyan', NAME => 'main2', VERSIONS => 6
或者
alter 'test_tianyan', { NAME => 'main2', VERSIONS => 6 }
2)删除列族
alter 'test_tianyan','delete'=>'main2'
3)如果是创建表时,则可以指定多个列族
create 'new_table','f1','f2','f3'
4)修改一个列族为多个版本
默认情况下,hbase只会存储一个版本的数据,如果有获取多个版本值的情况,则可通过如下命令修改。
alter 'test_tianyan',{NAME=>'main',VERSIONS=>5}
注意NAME和VERSIONS必须是大写。
可以使用VERSIONS和COLUMN指定获取多个版本数据。
get 'test_tianyan','testRowKey1',{COLUMN=>'main:id',VERSIONS=>5}
表结构相关
1)查看表描述(desc命令是 describe的缩写)
desc 'order_info_tbl'
或者 describe 'order_info_tbl'
2)删除表,在删除表之前,需要先disable,然后再用drop删除
disable 'order_info_tbl'
drop 'order_info_tbl'
3)删除并重建表(其实也是调用disable后使用drop删除的)
truncate 'order_info_tbl'
数据相关
取5行数据
scan 'order_info_tbl' ,{LIMIT=>5}
查看hbase所有的filters
show_filters
列出所有表
list
列出sence开头的表
list 'list 'sence.*'
通过rowKey精确查询
get 'order_info_tbl','1018112285488692_1542878164726_10'
删除main列族下的tx_id列(delete '表名','rowKey','列族名:列' )
delete 'order_info_tbl','1543071151193','main:tx_id'
删除rowKey下的所有列
deleteall 'order_info_tbl', ’rowkey'
修改操作,将main列族下的tx_id列置空(put '表名','rowKey','列族名:列' )
put 'order_info_tbl','1543071151193','main:tx_id',''
设置指定rowKey下列的值
put 'test_tianyan','row2','main:name','hyq'
获取rowKey下具体一列的值
get 'test_tianyan','row2',{COLUMN=>'main:name'}
scan高级用法
配合show_filters命令,指定相应的filter使用。
指定开始位置和结束位置
scan 'order_info_tbl',{STARTROW=>'1018112552468133',ENDROW=>'1018112658271187',LIMIT=>11}
模糊匹配rowKey
scan 'test_tianyan',{ROWPREFIXFILTER=>'r',LIMIT=>2}
扫描多个列,限制行数
scan 'test_tianyan',{COLUMNS=>['main:id','main:name'],LIMIT=>1}
模糊匹配rowKey
scan 'order_info_tbl',{ROWPREFIXFILTER =>'11',LIMIT=>2,FILTER=>"(QualifierFilter (>, 'binary:1018021991552673')) "}
过滤出10条包含指定值的列
scan 'order_info_tbl', {FILTER=>"ValueFilter(=,'substring:41012_11')",LIMIT=>10}
rowKey前缀模糊匹配
scan 'test_tianyan', {FILTER => "PrefixFilter('r')"}
rowKey前缀模糊匹配,只查询指定列
scan 'test_tianyan',{COLUMNS=>'main:name',FILTER=>"PrefixFilter('r')"}
scan 'test_tianyan',{COLUMNS=>['main:name','main:id'],FILTER=>"PrefixFilter('r')"}
列过滤
scan 'test_tianyan',{FILTER=>"QualifierFilter(>=,'binary:name')"}
时间过滤器
scan 'test_tianyan',{FILTER=>"TimestampsFilter(1543813062349,1543813090552)"}
其他技巧
- 组合多个命令
- 可以组合多个命令,执行不同的操作,例如:改变列族main2的版本号为4,删除main4列族
alter 'test_tianyan',{NAME=>'main2',VERSIONS=>4},{NAME=>'main4',METHOD=>'delete'}
欢迎店点赞,分享、关注公众号