一、表操作

  • 创建表

    1. 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
    

    关键字describe表名hbase_table

    二、数据操作

  • 插入与更新数据

    • put
      put 'table_name', 'row key', 'column_family:column', 'value'
      
      关键字put
      表名table_name
      参见详解 《Row Key详解》row key
      列族以及列族对应的列'column_family:column' ,中间用:分隔
      列的值value
  • 读取数据

    • 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
      

      关键字STARTROWSTOPROW STARTROW后的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'
  • 执行脚本

支持执行脚本文件
**