1. 基本操作

1.1 进入Hbase客户端命令行

备注:

  1. 命令行反人类操作:向前删除使用 **Ctrl+Backspace** ,Backspace相当于Delete从后删除
  2. 想知道哪个命令怎么使用,直接敲 **该命令+Enter** 有示例
  3. Hbase增删改数据,如果不加时间戳timestamp,默认会给每条记录增加timestamp时间戳,时间在Hbase中非常的重要,查询、修改、删除、多版本等都会使用到时间戳(例如:查询某条记录时,查询的是时间戳最大的一条;修改时不是修改而是新增一条,新增的这条记录比之前数据的时间戳大;删除也一样,删除的是时间戳最大的;而多版本就是同一条数据在不同时间下进行了增删改操作存储的)
  1. bin/hbase shell

1.2 查看帮助命令—-help

  1. hbase(main):002:0> help

主要使用命令ddl、dml,如下

image.png

1.3 查看当前数据库中有哪些表—-list

  1. hbase(main):005:0> list
  2. TABLE
  3. 0 row(s) in 0.0140 seconds
  4. => []

2. 表的操作

2.1 创建表—-create

  1. # create '表名','列族'
  2. create 'student','info'

2.2 查看表结构—-describe

  1. describe 'student'

2.3 修改表信息—-alter

修改info列族中的数据可以保存 3 个版本:(在后续数据修改、删除时可以使用)

  1. hbase(main):022:0> alter 'student',{NAME=>'info',VERSIONS=>3}
  2. hbase(main):022:0> get 'student','1001',{COLUMN=>'info:name',VERSIONS=>3}

2.4 清空表数据—-disable + trancate

提示:清空表的操作顺序为先 disable,然后再 truncate。

  1. disable 'student'
  2. truncate 'student'

2.5 删除表—-disable + drop

提示:如果直接 drop 表,会报错:ERROR: Table student is enabled. Disable it first. 解决:需要先让该表为 disable 状态,然后才能 drop 这个表

  1. disable 'student'
  2. drop 'student'

3. 数据的操作

3.1 插入数据—-put

  1. # put '表名','Rowkey','列族:列名','值'
  2. put 'student','1001','info:sex','male'
  3. put 'student','1001','info:age','18'
  4. put 'student','1002','info:name','Janna'
  5. put 'student','1002','info:sex','female'
  6. put 'student','1002','info:age','20'

3.2 扫描查看表数据—-scan

  1. scan 'student'
  2. # 左闭右开
  3. scan 'student',{STARTROW => '1001', STOPROW => '1001'}
  4. scan 'student',{STARTROW => '1001'}

3.3 更新指定字段的数据—-put

更新与新增都是使用 put ,只不过更新后同一单元格的数据还没删除还在内存中,属于不同的版本,通过增加VERSION条件可以查询到

  1. put 'student','1001','info:name','Nick'
  2. put 'student','1001','info:age','100'
  3. # 通过以下命令可以查询3个版本以内的数据,前提是列族版本设置>1,否则查不到,参考2.3
  4. get 'student','1001',{COLUMN=>'info:name',VERSIONS=>3}
  5. # 通过以下命令可以查询10个版本以内的数据,前提是列族版本设置>1,否则查不到,参考2.3
  6. scan 'student',{RAW=>true,VERSION=>10}

3.4 查看“指定行”或“指定列族:列”的数据—-get

  1. get 'student','1001'
  2. get 'student','1001','info:name'
  3. # 通过以下命令可以查询3个版本以内的数据,前提是列族版本设置>1,否则查不到,参考2.3
  4. get 'student','1001',{COLUMN=>'info:name',VERSIONS=>3}

3.5 统计表数据行数—-count

  1. count 'student'

3.6 删除数据—-delete/deleteall

  1. # 删除某 rowkey 的某一列数据
  2. delete 'student','1002','info:sex'
  3. # 删除某 rowkey 的全部数据
  4. deleteall 'student','1001'