HBase命令(三) -- 增删改查

时间:2021-09-09 08:31:53

新增

//语法:put <table>,<rowkey>,<family:column>,<value>,<timestamp>
//新增或者覆盖数据 put '表名','键名','列名(不是列簇名)','值'
//指定的列名下单元格有值就覆盖..没有值就创建.所以HBase的添加数据和修改数据都是put语句..
//最后的时间戳可以不写..默认为系统时间,如果要写..切记不可使用引号括起来

hbase shell> put 'mytable','woshikey','ct:msg','99999999999999'
hbase shell> put 'mytable','woshikey','ct:msg','99999999999999',1462241148

 

删除 

//删除某个单元值的值  会删除所有版本
//语法:delete <table>, <rowkey>,  <family:column> , <timestamp>,必须指定列名
//测试后发现后边跟时间戳也没有用,依然会删除所有版本
hbase shell> delete 'mytable','rowkey','ct:msg'

//删除行或者整个列簇
//语法:deleteall <table>, <rowkey>,  <family:column> , <timestamp>,可以不指定列名,删除整行数据
hbase shell> deleteall 'mytable','ct'
hbase shell> deleteall 'mytable'

//清空表数据
//语法: truncate <table>
//等同于 disable -> drop -> create
hbase shell> truncate 'mytable'

查询   

//扫描表
//语法: scan <table>, {COLUMNS => [ <family:column>,.... ], LIMIT => num}
hbase shell> scan 'mytable'
hbase shell> scan 'mytable',{COLUMNS=>'ct'}
hbase shell> scan 'mytable',{COLUMNS=>'ct',LIMIT=>1}  //返回所属列簇里每个列的第一个值 
hbase shell> scan 'mytable',{COLUMNS=>'ct:msg',LIMIT=>1}

//获取表数据
//语法: get <table>,<key>[,<columns>]
hbase shell> get 'mytable','rowkey1'
hbase shell> get 'mytable','rowkey1','ct'
hbase shell> get 'mytable','rowkey1','ct:msg'
hbase shell> get 'mytable','rowkey1',{COLUMN=>'ct'}
hbase shell> get 'mytable','rowkey1',{COLUMN=>'ct:msg'}

//获取表行数
//语法:count <table>, {INTERVAL => intervalNum, CACHE => cacheNum}
//INTERVAL设置多少行显示一次及对应的rowkey,默认1000;CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度
//例如,查询表t1中的行数,每100条显示一次,缓存区为500 
hbase shell> count 'mytable', {INTERVAL => 100, CACHE => 500}