ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HBASE关于表的操作以及实例

2021-10-04 17:33:18  阅读:289  来源: 互联网

标签:myschool orderinfo 000001 put 实例 stuinfo test 操作 HBASE


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表,再删除)

	disable '表名'  
	drop '表名'

(指定命名空间下)

	disable 'myschool:stuinfo'
	drop 'myschool:stuinfo'	

查看default命名空间下面所有的表

list_namespace_tables 'default'

删除多个表(如:删除以s开头的表)

	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'

4、查询订单数据(只显示3行)(scan)

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'

7、将订单ID为000001的信息全部删除(删除所有的列)

delect  'test:orderinfo','00001','C1'

(如有错,请指教)

标签:myschool,orderinfo,000001,put,实例,stuinfo,test,操作,HBASE
来源: https://blog.csdn.net/qq_48770086/article/details/120601499

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有