Hbase[02]常用命令、DDL和DML练习
准备环境
本次使用到的软件/工具如下
软件 | 软件版本 |
---|---|
VMware | VMware® Workstation 16 Pro |
Xshell | 6 |
安装Hbase环境
详见链接:Hbase[01]安装Hbase
启动zookeeper、hdfs、hbase服务
xshell登录虚拟机
hbase shell
进入hbase
注意
hbase中:ctrl+backspace
是向左删除字符
backspace
是向右删除字符
操作示例
查看帮助
help
help 'create'
help 'create_namespace'
查看namespace,类似于mysql的show databases;
list_namespace
新建工作空间
类似于mysql的新建database
create_namespace 'ns1'
list_namespace
新建表
create 'ns1:test01',{NAME=>'testinfo'}
查看表
list
list 'ns.*'
查看表结构
desc 'ns1:test01'
查询当前用户
whoami
插入/修改数据
help 'put'
put namespace名:表名,行名,列族:列名:列值
put 'ns1:test01', 'rk001', 'testinfo:name', 'zhangsan'
put 'ns1:test01', 'rk001', 'testinfo:age', '20'
查询数据
类似于msyql中的select * from 表名
scan 'ns1:test01'
删除一行数据
deleteall 'ns1:test01', 'rk001'
scan 'ns1:test01'
创建员工表
查看表结构
create 'ns1:emp',{NAME=>'userinfo', VERSIONS=>'3'}
desc 'ns1:emp'
插入数据测试
put 'ns1:emp', 'enumber1', 'userinfo:name', 'zhangsan'
put 'ns1:emp', 'enumber1', 'userinfo:age', '20'
scan 'ns1:emp'
put 'ns1:emp', 'enumber1', 'userinfo:name', 'lisi'
scan 'ns1:emp'
删除数据测试
delete 'ns1:emp', 'enumber1', 'userinfo:name'
scan 'ns1:emp'
按TIMERANGE(timestamp时间戳)查询行数据
get 'ns1:emp', 'enumber1', {TIMERANGE=>[0,1622463045784]}
0,1622463045784
所查到的范围上限是1622463045783
get查询,按列名查询行数据
get 'ns1:emp', 'enumber1', 'userinfo:name'
scan扫描查询(逻辑删除的数据列也会显示,删除的列有type=DeleteColumn
标记)
按行、VERSIONS
scan 'ns1:emp', {RAW=>true, VERSIONS=>3}
按列扫描查询
scan 'ns1:emp', {COLUMNS=>'userinfo'}
scan 'ns1:emp', {COLUMNS=>'userinfo:name'}
修改/添加列族
alter 'ns1:emp', {NAME=>'deptinfo'}
修改/添加列名会将已删除的数据删除,scan 'ns1:emp'
扫描查询未删除的所有记录
测试录入多行数据
put 'ns1:emp', 'enumber1', 'deptinfo:dname', 'sale'
scan 'ns1:emp'
put 'ns1:emp', 'enumber1', 'deptinfo:age', '25'
scan 'ns1:emp'
put 'ns1:emp', 'enumber1', 'userinfo:name', 'zhangsan'
scan 'ns1:emp'
scan 'ns1:emp', {RAW=>true, VERSIONS=>3}
put 'ns1:emp', 'enumber2', 'userinfo:name', 'lisi'
put 'ns1:emp', 'enumber2', 'userinfo:age', '22'
put 'ns1:emp', 'enumber3', 'userinfo:name', 'lisi3'
put 'ns1:emp', 'enumber4', 'userinfo:name', 'lisi4'
统计行数
count 'ns1:emp'
自增式插入数据(String类型显示乱码,不会影响自增逻辑)
create 'ns1:test02',{NAME=>'testinfo'}
incr 'ns1:test02', 'class1', 'testinfo:id'
scan 'ns1:test02'
incr 'ns1:test02', 'class1', 'testinfo:id'
scan 'ns1:test02'
分页扫描,3行一页,起始行为enumber1
scan 'ns1:emp', {COLUMNS=>['userinfo'], LIMIT=>3, STARTROW=> 'enumber1'}
删除表
删除表前需先将表置为无效
disable 'ns1:test01'
drop 'ns1:test01'
判断表是否存在
exists 'ns1:test01'
删除命名空间(namespace)
需要先清空命名空间(删除命名空间中的所有表)
disable 'ns1:emp'
drop 'ns1:emp'
drop_namespace 'ns1'
以上就是本期总结的全部内容,愿大家相互学习,共同进步!