shell操作
- 创建(表、列、值)操作
#语法: creat '表名',{NAME=>'列族名1',VERSIONS=>版本号x},{NAME=>'列族名1',VERSIONS=>版本号x},.......
#例如:创建表student,有一个family name:info1
hbase(main):011:0> create 'student','info1'
0 row(s) in 1.2370 seconds
=> Hbase::Table - student
- 删除表
# 删除表需要先停用
# 例如:删除表students
hbase(main):013:0> disable 'students'
0 row(s) in 2.2390 seconds
hbase(main):014:0> drop 'students'
0 row(s) in 1.2280 seconds
- 表操作:增
#语法:put '表名','行',['列族名':'列名','列族名:列名',......]
#example:再student表中添加rowkey=row、family name=info1、column name=name、value=v1
hbase(main):019:0> put 'student','row','info1:name','v1'
0 row(s) in 0.0170 seconds
#语法:delete '表名','rowkey','列族名:列名','timestamp时间戳'#必须指定列名
#example:删除表student中的info:name
~删除行
#语法:deleteall '表名','rowkey','列族名:列名','timestamp时间戳'#可以不指定列
#example:删除student,row1中age的数据
hbase(main):008:0> delete 'student','row1','info1:age'
0 row(s) in 0.0210 seconds
~删除表中所有数据
# 语法: truncate <table> #可以理解为脚本代码
# 其具体过程是:disable table -> drop table -> create table
# 例如:删除表student的所有数据
hbase(main)> truncate 'student'
- 查看表
#list不多说上代码
hbase(main):028:0> list
TABLE
student
1 row(s) in 0.0150 seconds
=> ["student"]
- 查看表结构
#语法:describe '表名' (describe简化desc)
#example:查看表student结构
hbase(main):015:0> desc 'student'
Table student is ENABLED
student
COLUMN FAMILIES DESCRIPTION
{NAME => 'info1', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER'
, COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_ScopE => '0'}
1 row(s) in 0.0140 seconds
################
hbase(main):016:0> describe 'student'
Table student is ENABLED
student
COLUMN FAMILIES DESCRIPTION
{NAME => 'info1', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER'
, COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_ScopE => '0'}
1 row(s) in 0.0080 seconds
#语法:get '表名','行键',['列族名:列名','列族名:列名',......]
#example:给查询表student中row1行info列族下name的值
hbase(main):022:0> get 'student','row','info1:name'
COLUMN CELL
info1:name timestamp=1621793975265, value=v1
1 row(s) in 0.0190 seconds
#example:如果你想查询多条信息
hbase(main)> get 'student' , 'row' , {COLUMN=> 'info:name' } #这里不再显示查询结果
#example:查询某一rowkey下的所有值(这里我使用row)
hbase(main):023:0> get 'student','row'
COLUMN CELL
info1:name timestamp=1621793975265, value=v1
1 row(s) in 0.0060 seconds
~ 扫描表(这里完全可以理解为批量查询表数据,不要纠结)
#语法:scan '表名',{COLUMNS=>['列族名':'列名','列族名':'列名',......],LIMIT=>num}
#》》》scan是有高级语法的STARTROW、TIMERANGE和FITLER等高级语法这里不再赘述。
#example:扫描表student的前五条信息
hbase(main):026:0> scan 'student',{LIMIT=>5}
ROW COLUMN+CELL
row column=info1:name, timestamp=1621793975265, value=v1
row2 column=info1:age, timestamp=1621795353041, value=18
2 row(s) in 0.0110 seconds
~查询表中的数据行数
#语法:count '表名',{INTERVAL=>intervalNum,CACHE=>cacheNum}
#INTERVAL设置多少行显示一次及对应的rowkey,默认值1000;CACHE每次取值的缓存大小默认是10,此参数影响查询速度
#例如,查询表student的行数,每100条显示一次,缓冲区为500
hbase(main):027:0> count 'student',{INTERVAL=>100,CACHE=>500}
2 row(s) in 0.0110 seconds
=> 2
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。