Hbase Shell 操作


一,命名空间操作

status 查看点前状态

(1)创建namespace

create_namespace ‘mydb’
create_namespace ‘mydb1’,{‘createtime’=>’2021-10-25’}

(2)显示namespace

describe_namespace ‘mydb’

(3)修改namespace的createtime属性

alter_namespace ‘mydb1’,{METHOD=’set’,‘createtime’=>’2021-12-25’}

(4)新增一个namespace的某个属性

alter_namespace ‘mydb1’,{METHOD=’set’,‘createtime’=>’2021-12-25’,’author’=>’abc’}

(5)删除namespace的某个属性

alter_namespace ‘mydb1’,{METHOD=’unset’,NAME=>’createtime’}

(6)删除namespace

drop_namespace ‘mydb1’

注:如果有表不能删除
例如:create ‘mydb:mydb1’,’info’

list_namespace_tables ‘mydb’
drop_namespace ‘mydb1’ 提示不能删除

二,表的ddl操作

(一)创建表

(1)创建命名空间在test1的表

create ‘mydb:test1’,{NAME=’f1’}
list_namespace_tables ‘mydb’ 或者list 显示全部表

(2)创建命名空间在default的表

create ‘test2’,{NAME=’f1’}
还可以简化create ‘mydb:test3’,’f1’

(3)创建多个列族的表

create ‘mydb:test4’,{NAME=’f1’},{NAME=’f2’} 也可以
create ‘mydb:test4’,’f1’,’f2’

(二)显示表

describe ‘mydb:test1’ describe ‘mydb:test4’
desc ‘mydb:test1’

(三)修改表

(1)修改表的列族数据维护的版本数

alter ‘mydb:test1’, NAME=>’f1’ ,VERSIONS=>’3’

(2)修改表的多个列族数据维护的版本数

desc ‘mydb:test4’
alter ‘mydb:test4’, {NAME=>’f1’ ,VERSIONS=>’3’},{NAME=>’f2’ ,VERSIONS=>’4’}

(3)新增列族

alter ‘mydb:test4’, NAME=>’f3’,VERSIONS=>’3’

(4)删除列族

alter ‘mydb:test4’, NAME=>’f3’,METHOD=>’delete’
或者alter ‘mydb:test4’, ‘delete’=>’f3’

(四)删除表

输入命令:drop ‘mydb:mytbl’

注:如果报错 说名表的当前状态是enable,那么就需要将表的状态改为disable,执行命令:disable ‘mydb:mytbl’。

再输入:drop ‘mydb:mytbl’ ,成功删除

三,表的DML操作

(一)插入数据

put ‘stu’,’1001’,’info:name’,’zhangsan’
put ‘stu’,’1001’,’info:sex’,’man’
put ‘stu’,’1001’,’info:address,’beijing’

put ‘stu’,’1002’,’info:name’,’lisi’
put ‘stu’,’1002’,’info:sex’,’female’
put ‘stu’,’1002’,’info:address,’shanghai’
put ‘stu’,’1003,’info:name’,’wangwu’
put ‘stu’,’1003’,’info:sex’,’female’
put ‘stu’,’1003’,’info:address,’chengdu’

在加个
put ‘stu’,’1004’,’info:name’,’wangwu’
put ‘stu’,’1004’,’info:sex’,’female’
put ‘stu’,’1004’,’info:address,’chengdu’
put ‘stu’,’1004’,’info:age,’20’

可以制定列查询 get ‘stu’,’1004’,’info:name’

(二)读取数据

(1)get

get 最大范围是一行数据,也可以进行列的过滤,读取数据的结果为多行 cell。

1.读取一行数据:get ‘stu’,’1001’

2.读取指定列:get ‘stu’,’1004’,’info:name’

(2)scan

scan 是扫描数据,能够读取多行数据,不建议扫描过多的数据,推荐使用 startRow 和
stopRow 来控制读取的数据,默认范围左闭右开。

1.读取所有数据

scan 'stu'

2.读取不包含1003 ,写1004

scan ‘stu’,{STARTROW=>’1001’,STOPROW=>’1003’}

3.怎么查取到临界的值

scan ‘stu’,{STARTROW=>’1001’,STOPROW=>’1003!’}
scan  ‘stu’

4.按照查看版本读取
scan ‘stu’,{RAW=>true,VERSIONS=>5} 时间戳越大代表版本越新
desc ‘stu’ 可以看到VERSION=>1 代表显示版本的数量,清理数据的时候保留版本的数量,如果是2 ,就保留2个版本信息1 2 3 4 5,最终保留4 5

(三)删除数据

(1)删除一行数据

Delete ‘stu’,’1001’,’info:name’ 删除最新的版本,原来的版本还在
scan ‘stu’
利用scan ‘stu’,{RAW=>true,VERSION=>5}

Delete ‘stu’,’1001’,’info:name’,1620887211457
scan ‘stu’
在利用scan ‘stu’,{RAW=>true,VERSION=>5} 查看
如果要全部真正的删除就的用deleteall命令
先修改1002 ,才能产生多个版本
Put ‘stu’,’1002’,’info:name’,’lixioasi’
scan ‘stu’
deleteall ‘stu’,’1002’,’info:name’
scan ‘stu’ 不在显示name
在利用scan ‘stu’,{RAW=>true,VERSION=>5} 查看

(2)删除列族数据

deleteall ‘stu’,’1003’,’info’
scan ‘stu’
info数据还有
利用scan ‘stu’,{RAW=>true,VERSION=>5}查看,在shell里无法删除,存在歧义
但是可以利用api做到。
在利用deleteall ‘stu’,’1004’ 删除整行数据。
scan ‘stu’ 看不到1004 数据了
利用scan ‘stu’,{RAW=>true,VERSION=>5}

四,Count 统计数据

Count ‘stu’

五,Truncate 清空数据

Truncate ‘stu’ 清空表数据

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梁辰兴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值