环境准备
安装并启动HBase
这里主要记录HBase shell的命令。进入HBase shell:
hbase shell
帮助文档
使用help查看所有命令
help
可以使用help "create"
来查看具体命令的帮助
命名空间
namespace指对一组表的逻辑分组,类似DBMS中的一个数据库,方便对表在业务上划分。
常用操作:
- 创建命名空间:
create_namespace "test"
- 列出所有命名空间:
list_namespace
可以看到3个namespace,其中hbase是系统内建的;用户建表时未指定命名空间的表都放在default里。
3. 查看描述:describe_namespace "test"
4. 列出命名空间下的所有表:list_namespace_tables "hbase"
可以看到内建的命名空间hbase中有两个表:meta和namespace
建表
- 不指定命名空间建表:
# create '表名', '列名a', '列名b'
create 'tb_a', 'col_a', 'col_b'
即在default命名空间下创建了表tb_a,包含列名col_a和col_b
- 指定命名空间建表:
# create '命名空间:表名', '列名a', '列名b'
create 'test:tb_b', 'col_a', 'col_b'
即在test命名空间下创建了表tb_b,包含列名col_a和col_b
- 查看所有表:
list # ["tb_a", "test:tb_b"]
- 判断表是否存在:
exists "tb_a" # => true
exists "tb_c" # => false
插入数据
使用put命令插入数据
# put '表名', '行键', '列名:(列描述符)', '值'
put 'tb_a', '1001', 'col_a:', 'val_1'
put 'tb_a', '1001', 'col_b:desc_a', 'val_2'
put 'tb_a', '1001', 'col_b:desc_b', 'val_3'
put 'tb_a', '1002', 'col_a:', 'val_4'
put 'tb_a', '1003', 'col_a:', 'val_5'
查看数据
使用scan命令查看数据
# 最基本的: scan '表名'
scan 'tb_a'
# 设置约束: scan '表名', {约束条件}
scan 'tb_a', {COLUMN=>'col_a'} # 仅查看列col_a
scan 'tb_a', {COLUMN=>['col_a', 'col_b']} # 仅查看列col_a和col_b
scan 'tb_a', {STARTROW=>'1002'} # 仅查看1002行及其后的行
scan 'tb_a', {STARTROW=>'1002', STOPROW=>'1003'} # 仅查看1002-1003行的内容
获取数据
使用get命令获取数据
# 基本用法: get '表名', '行键'
get 'tb_a', '1001'
# 设置约束: get '表名', '行键', {约束条件}
get 'tb_a', '1001', {COLUMNS=>'col_a'} # 查看1001中的col_a
get 'tb_a', '1001', {COLUMNS=>['col_a', 'col_b']} # 查看1001中的col_a和col_b
get 'tb_a', '1001', {COLUMN=>'col_b:desc_a'} # 指定列描述符
删除数据
使用delete删除一个单元,deleteall删除一行
# 删除一个单元: delete '表名', '行键', '列键:(列描述符)'
delete 'tb_a', '1001', 'col_b:desc_b'
delete 'tb_a', '1001', 'col_b'
scan 'tb_a' # 可以看到tb_a中的1001的col_b已被删除
# 删除一行: deleteall '表名', '行键'
deleteall 'tb_a', '1003'
scan 'tb_a' # 可以看到tb_a中的1003已被删除
删除表
使用disable命令禁用表,使用drop命令删除已禁用的表
# 要删除一个表首先需要禁用该表
disable 'tb_a'
# 再删除
drop 'tb_a'