Hbase基本语法

109 阅读2分钟

1. 建表

# 建立表名为order_info, 列簇为info
create 'order_info', 'info'

2. 插入数据

put 'order_info','000001','info:ID','000001'
put 'order_info','000001','info:STATUS','已提交'
put 'order_info','000001','info:PAY_MONEY',4070
put 'order_info','000001','info:PAYWAY',1

3. 查看添加的数据

# 十六进制显示
get 'order_info', '000001'
# 需求:编码中文
get 'order_info', '000001', {FORMATTER=>'toString'}

4. 删除数据

# 删除指定列
delete 'order_info', '000001', 'C1:STATUS'
# 删除整行数据
deleteall 'order_info', '000001'

5. 更新数据

put 'order_info', '000001', 'info:STATUS', '已付款'

6. 清空表数据

truncate 'order_info'

7. 导入数据集

测试数据集:order_info.txt 格式如下 image-20220515205504630

# /export/order_info.txt 数据集路径
hbase shell /export/order_info.txt

8. 计数

# 此操作比较耗时 数据量大,会运行好久
count 'order_info'

当数据量大的时候可以使用hbase提供的mr程序来计数

$HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter 'order_info'

9. 查询数据

# 查询所有数据
scan 'order_info', {FORMATTER=>'toString'}
# 查询显示3条数据
scan 'order_info', {LIMIT=>3, FORMATTER=>'toString'}
# 查询指定列
scan 'order_info', {LIMIT=>3, COLUMNS=>['C1:ID', 'C1:STATUS'], FORMATTER=>'toString'}
# 查询指定rowkey的数据
scan 'order_info', {POWPREFIXFILTER=>'000001'COLUMNS=>['C1:ID', 'C1:STATUS'], FORMATTER=>'toString'}

10. 查询表结构信息

describe 'order_info'

11. 检查表是否存在

exists 'order_info'

12. 检查表是否启用或禁用

# 检查表是否启用
is_enabled 'order_info'
# 检查表是否禁用
is_disabled 'order_info'

13. 修改表结构

# 创建一张表student, 列簇basic_info, extend_info
create 'student', 'basic_info', 'extend_info'
# 新增列簇info
alter 'student', 'info'
# 删除列簇info, {'delete' => 'info'} map结构 一个key, {}可省略
alter 'student', {'delete' => 'info'}

14. 禁用/启用表

disable 'order_info'
enalbe 'order_info'

15. 清空表

truncate 'order_info'

16. 批量禁用、删除多张表

# 禁用以stu开头的多张表
disable_all 'stu.*'
# 删除以stu开头的多张表
drop_all 'stu.*'

17. 创建表快照

snapshot '表名', '快照名'

18. 查看快照

list_snapshots

19. 从快照克隆表

clone_snapshot '快照名', '表名'