文章目录
事前准备
基本命令
进入hbase
hbase shell
查看版本
version
查看状态
status
查看用户
whoami
查看帮助文档
help
创建表
语法:
create '表名', {NAME=>'列簇名'}, {NAME=>'列簇名'}
一般情况列簇名在1-3个
create 'test',{NAME=>'info'},{NAME=>'like'}
意为创建一个表,这个表有两个列簇(可以理解为两个大分类),一个为信息,一个为爱好
查看表列表
list
插入数据
语法:
put '<table name>','row_key1','<colfamily:colname>','<value>'
'put '表名','行键','列簇下得列名','数据'
put 'test','0001','info:name','zhangsan'
在test表下,添加行键为0001,info列簇下新建name列,值为zhangsan
相同的方法添加info列簇下性别和年龄
再对like列簇添加数据
喜好的水果是apple
喜好的运动是running
全扫描(查看表里的数据)
scan '表名',{COLUMNS=>['列簇:列名'], VERSIONS => 5}
scan 'test',{COLUMNS=>['info:age'], VERSIONS => 5}
意为所有行键的对应数据
这里不能指定行建 加上会报错
再加入0002 再查一次
查看表结构
desc 'test'
可以看出test表有两个列簇
根据rowkey获取数据
get '表名','行键'
get 'test','0001'
timestamp是数据插入的时间戳
获取指定数据的两种方式
get '表名','行键','列簇'
列簇有两种表达方式
获取列簇下指定列的数据
语法:
get '表名','行键',{COLUMNS=>['列簇:列名']}
get 'test','0001',{COLUMNS=>['info:name']}
更新数据
语法
put '表名','行键','列簇:列名','值'
put 'test','0001','info:age','29'
修改多版本存储
alter '表名',NAME=>'列簇', VERSIONS=>数量
alter 'customer',NAME=>'order', VERSIONS=>5
修改完插入数据
多版本数据查询
get '表名','行键',{COLUMNS=>['列簇:列名'], VERSIONS => 5}
get 'test','0001',{COLUMNS=>['info:age'], VERSIONS => 5}
指定rowkey范围查询
scan '表名', {STARTROW => '起始符', STOPROW => '结束符'}
先插入几个数据
查询 要大写 小写会报错
语句为左闭右开
统计表中数据
count '表名'
以行键数量为统计标准
删除语法
delete '<table_name>', '<row_key>', '<column_name >', <time_stamp_value>
deleteall '<table_name>', '<row_key>'
删除整行
删除行键及其所有内容
deleteall '表名','行键'
deleteall 'test','3001'
删除一个单元格的值
delete '表名','行键','列簇:列名',时间戳
delete '表名','行键','列簇:列名'
delete 'test','2001','info:age',1595246953039
这里加上时间戳是和多版本结合使用,根据上文我们添加的0001的age字段再做一次演示
当没有多版本时 效果为删除一列,否则删除当前版本
删除一个列族数据
语法
alter '表名','delete'=>'列簇'
alter 'test','delete'=>'like'
删除表
注意删除之前,如果表的状态不是disabled,需要先禁用表,才能删除,否则报错
语法
drop 'test'
禁用表
disable 'test'
禁用之后可以删除
启用表
enable '表名'
清空表
truncate '表名'
test表删掉了 用其他表演示