HBase数据库入门到精通-1.1shell操作

shell操作

  1. 创建(表、列、值)操作
#语法: creat '表名',{NAME=>'列族名1',VERSIONS=>版本号x},{NAME=>'列族名1',VERSIONS=>版本号x},.......
#例如:创建表student,有一个family name:info1
hbase(main):011:0> create 'student','info1'
0 row(s) in 1.2370 seconds

=> Hbase::Table - student
  1. 删除表
# 删除表需要先停用
# 例如:删除表students
hbase(main):013:0> disable 'students'
0 row(s) in 2.2390 seconds
hbase(main):014:0> drop 'students'
0 row(s) in 1.2280 seconds
  1. 表操作:增
#语法:put '表名','行',['列族名':'列名','列族名:列名',......]
#example:再student表中添加rowkey=row、family name=info1、column name=name、value=v1
hbase(main):019:0> put 'student','row','info1:name','v1'
0 row(s) in 0.0170 seconds

  1. 删除数据
    ~删除行中的某个列值
#语法:delete '表名','rowkey','列族名:列名','timestamp时间戳'#必须指定列名
#example:删除表student中的info:name

~删除行

#语法:deleteall '表名','rowkey','列族名:列名','timestamp时间戳'#可以不指定列
#example:删除student,row1中age的数据
hbase(main):008:0> delete 'student','row1','info1:age'
0 row(s) in 0.0210 seconds

~删除表中所有数据

# 语法: truncate <table> #可以理解为脚本代码
# 其具体过程是:disable table -> drop table -> create table
# 例如:删除表student的所有数据
hbase(main)> truncate  'student'
  1. 查询
  • 查看表
#list不多说上代码
hbase(main):028:0> list
TABLE                                                                                                                                                        
student                                                                                                                                                      
1 row(s) in 0.0150 seconds

=> ["student"]
  • 查看表结构
#语法:describe '表名'  (describe简化desc)
#example:查看表student结构
hbase(main):015:0> desc 'student'
Table student is ENABLED                                                                                                                                     
student                                                                                                                                                      
COLUMN FAMILIES DESCRIPTION                                                                                                                                  
{NAME => 'info1', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER'
, COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}                                          
1 row(s) in 0.0140 seconds
################
hbase(main):016:0> describe 'student'
Table student is ENABLED                                                                                                                                     
student                                                                                                                                                      
COLUMN FAMILIES DESCRIPTION                                                                                                                                  
{NAME => 'info1', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER'
, COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}                                          
1 row(s) in 0.0080 seconds

-查询数据
~查询某一行的数据

#语法:get '表名','行键',['列族名:列名','列族名:列名',......]
#example:给查询表student中row1行info列族下name的值
hbase(main):022:0> get 'student','row','info1:name'
COLUMN                         CELL                                                                                  
 info1:name                    timestamp=1621793975265, value=v1                                                     
1 row(s) in 0.0190 seconds
#example:如果你想查询多条信息
hbase(main)> get  'student' , 'row' , {COLUMN=> 'info:name' } #这里不再显示查询结果
#example:查询某一rowkey下的所有值(这里我使用row)
hbase(main):023:0> get 'student','row'
COLUMN                                   CELL                                                                                                                
 info1:name                              timestamp=1621793975265, value=v1                                                                                   
1 row(s) in 0.0060 seconds

~ 扫描表(这里完全可以理解为批量查询表数据,不要纠结)

#语法:scan '表名',{COLUMNS=>['列族名':'列名','列族名':'列名',......],LIMIT=>num}
#》》》scan是有高级语法的STARTROW、TIMERANGE和FITLER等高级语法这里不再赘述。
#example:扫描表student的前五条信息

hbase(main):026:0> scan 'student',{LIMIT=>5}
ROW                                      COLUMN+CELL                                                                                                         
 row                                     column=info1:name, timestamp=1621793975265, value=v1                                                                
 row2                                    column=info1:age, timestamp=1621795353041, value=18                                                                 
2 row(s) in 0.0110 seconds

~查询表中的数据行数

#语法:count '表名',{INTERVAL=>intervalNum,CACHE=>cacheNum}
#INTERVAL设置多少行显示一次及对应的rowkey,默认值1000;CACHE每次取值的缓存大小默认是10,此参数影响查询速度
#例如,查询表student的行数,每100条显示一次,缓冲区为500

hbase(main):027:0> count 'student',{INTERVAL=>100,CACHE=>500}
2 row(s) in 0.0110 seconds

=> 2 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值