新增
//语法: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}