一、表操作
创建表
create 'table_name','column_1','column_2','column_3'...;
关键字
create,表名table_name,列族名column_*删除表
先将使用中的表关闭,然后再删除表 表创建成功后,默认状态是
enable(使用中),更改状态为disable(关闭中)。
disable 'hbase_table'
drop 'hbase_table'
关键字drop,表名hbase_table
- 查看所有表
关键字list
查看表结构
describe hbase_name二、数据操作
插入与更新数据
- put
关键字put 'table_name', 'row key', 'column_family:column', 'value'put
表名table_name
参见详解 《Row Key详解》row key
列族以及列族对应的列'column_family:column',中间用:分隔
列的值value
- put
读取数据
get
get 'hbase_test','key' //根据Key值查询数据使用get命令虽然方便,但是终究只是某一个row key下的数据,若需要查看所有数据,明显不能满足我们工作需求。现在,可以使用scan命令查看数据
scan
scan 'hbase_name' //获取某张表的所有数据 scan 'hbase_test',{COLUMN => 'column_family_1'} //取'column_family_1'列族下的数据 scan 'hbase_test',{COLUMN => ['column_family_1']} //取'column_family_1'列族下的数据 scan 'hbase_test',{COLUMN => ['column_family_1:column_1']} //获取'column_family_1'列族下,'column_1'列的数据 scan 'hbase_test',{COLUMN => ['column_family_1:column_1','column_family_2:column_3']} //多列数据获取 scan 'hbase_test',{COLUMN => ['column_family_1:column_1','column_family_2:column_3'], STARTROW => 'key_2'} //获取row key大于等于某key的情况 scan 'hbase_test',{COLUMN => ['column_family_1:column_1','column_family_2:column_3'], STOPROW => 'key_2'} //获取row key 小于某key的情况 scan 'hbase_test',{COLUMN => ['column_family_1:column_1','column_family_2:column_3'], STARTROW => 'key_2', STOPROW => 'key_5'} //大于等于key_2,小于key_5关键字
STARTROW与STOPROWSTARTROW后的row key 是包含在内; STOPROW后的row key 则是不包含的关系,相当于“左闭右开”的关系。
反序获取两行数据
scan 'hbase_test', {LIMIT => 2, REVERSED => true}
默认情况下 REVERSED => false 当设置REVERSED => true时,数据反向读取2行,自然与之前不一致。 可以理解为mysql中select from dual asc limit 2与select from dual desc limit 2这样的区别。
- 删除数据
- delete
delete这个方法只能删除具体到哪一行中的某个列族下的某一列数据
delete 'hbase_test','key_6','column_family_3:'
- deleteall
删除一整行数据
deleteall 'hbase_test','key_7'
- truncate
删除整张表的数据
truncate 'hbase_test'
- 执行脚本
支持执行脚本文件
**
