HBASE关于表的操作以及实例
进入hbase数据库
hbase shell
查看所有的命名空间
list_namespace
新建命名空间
create_namespace '命名空间的名字'
drop_namespace 'myschool'
列出所有表
list
列出指定命名空间下的所有表
list_namespace_tables '命名空间的名字'
创建表:
create '命名空间:表名','列族名称'
(将表创建在指定的命名空间里面)
(在myshool的命名空间里创建了stuinfo的表,列族是info1)
create 'myschool:stuinfo','info1'
(注意:没有指定namespace的时候,默认是创建在default)
alter ''命名空间:表名','新的列族的名称'
删除列族:
alter '表名','delete'=>'列族的名称'
disable '表名'
drop '表名'
(指定命名空间下)
disable 'myschool:stuinfo'
drop 'myschool:stuinfo'
查看default命名空间下面所有的表
list_namespace_tables 'default'
disable_all 'myschool:s.*'
drop_all 'myschool:s.*'
查看表的详细信息
describe 'myschool:stuinfo'
添加数据
put '命名空间:表名','rowkey','列族:列名','值'
put 'myschool:stuinfo','101','info:name','zhangsan'
查看数据
scan 'myschool:stuinfo'
查看某个rowkey的某个范围的数据
scan 'myschool:stuinfo',{STARTROW=>'102'}
scan 'myschool:stuinfo',{STARTROW=>'101',STOPROW=>'103'}
查看行键为101的数据
get 'myschool:stuinfo','101'
获取到102行的info列族的age列的值
get 'myschool:stuinfo','102','info:age'
获取到101行的info2列族的所有的列的值
get 'myschool:stuinfo','101','info2'
修改103中的name的值为lisi(查看到的结果是时间戳中值最大的结果)
put 'myschool:stuinfo','103','info:name','lisi'
查看所有数据的10个版本的数据
scan 'myschool:stuinfo',{RAW=>true,VERSIONS=>10}
(注意:get用于取得特定法值,scan用于取一定范围的值)
实例
需求:
创建命名空间test,订单表,并向表中插入如下数据:
create_namespace 'test'
create 'test:orderinfo','c1'
put 'test:orderinfo','000001','ID','000001'
put 'test:orderinfo','000001','STATUS','已提交'
put 'test:orderinfo','000001','PAY_MONEY','4070'
put 'test:orderinfo','000001','PAYWAY','1'
put 'test:orderinfo','000001','USER_ID','4944191'
put 'test:orderinfo','000001','OPERATION_DATE','2020-04-25 12:09:16'
put 'test:orderinfo','000001','CATEGORY','手机'
1、查询出000001行数据
解决问题:显示中文(默认Hbase shell中显示出来的是十六进制编码),在get的命令后添加一个属性{FORMATTER=>’toString’}
get 'test:orderinfo' ,'00001'
2、将订单ID为000001的状态,更改为(已付款),注意每次put后,都会生成新的时间戳
put 'test:orderinfo','00001','C1:STATUS','已付款'
3、扫描order_info表(scan)
scan 'test:orderinfo'
scan 'test:orderinfo' ,{limit =>3}
5、查询订单状态、支付方式(scan)
scan 'test:orderinfo',{LIMIT=>1,COLUMNS=>['C1:STATUS','C1:PAYWAY']}
6、将订单ID为000001的状态列删除
delect 'test:orderinfo','00001','C1:STATUS'
delect 'test:orderinfo','00001','C1'
(如有错,请指教)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。