Hbase【二】基本常用命令与示例


👉注:hbase命令写错可以ctrl+backspace回退删除

ddl命令

1.创建表

// 直接建表 格式
create '表名',{NAME => '列族名1'},{NAME => '列族名2'} ...
// 简写格式
create '表名','列族名1','列族名2'.....
hbase(main):002:0> create 'jzydemo','base'
0 row(s) in 2.2930 seconds

=> Hbase::Table - jzydemo

// 栗子:
create 'jzydemo','base'

2.新增列族

// 为已存在的表新增列族 格式:
alter '表名','新增列族名'

// 栗子:
alter 'jzydemo','external'

3.删除一个列族

// 格式 简写可以省略花括号
alter '表名',{NAME=>'需删除列族名', METHOD=>'delete'}

// 栗子:
alter 'jzydemo',NAME=>'base',METHOD=>'delete'

4. 查看表结构

describe '表名'
栗子:查询1中创建的表jzydemo结构
在这里插入图片描述

5. 查看表是否存在

exists '表名'
在这里插入图片描述

6.删除表

drop '表名'
删除表之前需要先禁用表disable,相反使用表是enable
示例:

  1. disable ‘jzydemo’
  2. drop ‘mydemo’
    在这里插入图片描述

创建表空间并在表空间下建表

1.创建表空间

create_namespace '表空间名'

示例:

create_namespace 'jzyspace'

2.表空间下建表

create '表空间名:表名','列族名'

create 'jzyspace:userinfos','base'
create 'jzyspace:score','total'

3.查看表空间下的表

list_namespace_tables '表空间名'
在这里插入图片描述

dml命令

1.插入数据

// 格式:
put '表名','行键','列族名','列值'
put '表名','行键','列族名:列名','列值'

// 栗子:
put 'jzyspace:userinfos','1','base:username','zhangsan'

2.全表扫描

  1. 查看表所有数据 scan '表名'
  2. 查看一个列族 scan ‘表名’,{COLUMN=>'列族名'}
  3. 查看多个列族scan ‘表名’,{COLUMN=>['列族名1','列族名2']....}
  4. 查看列族某一个列scan '表名',{COLUMN=>'列族名:列名'}
  5. 查看多个列族下多个列scan '表名',{COLUMN=>['列族名1:列名1','列族名1:列名2','列族名2:列名21','列族名2:列名22']....}

过滤查找filter的使用

列举几个常用的filter:
ColumnPrefixFilter 列前缀包含某字符的查找
PrefixFilter 前缀包含某字符的查找
ValueFilter 包含某值查找
STARTROW 从列族为某值开始往后查找
STOPROW 找到列族为某值结束

示例:

// 查找表中值为23的内容
hbase(main):045:0> scan 'jzyspace:userinfos',FILTER=>"ValueFilter(=,'binary:23')"
ROW                          COLUMN+CELL                                                                     
 1                           column=external:age, timestamp=1593078115280, value=23                          
1 row(s) in 0.0160 seconds



// 查找表中列名前缀是username,并且值中包含san字段的内容
hbase(main):043:0> scan 'jzyspace:userinfos',FILTER=>"ColumnPrefixFilter('username')AND ValueFilter(=,'substring:san')"
ROW                          COLUMN+CELL                                                                     
 1                           column=base:username, timestamp=1593074706538, value=zhangsan                   
1 row(s) in 0.0330 seconds



// 从列族为1开头的找到值为23的内容
hbase(main):046:0> scan 'jzyspace:userinfos',STARTROW=>'1',FILTER=>"ValueFilter(=,'binary:23')"
ROW                          COLUMN+CELL                                                                     
 1                           column=external:age, timestamp=1593078115280, value=23                          
1 row(s) in 0.0090 seconds

3. 获取数据

  1. 获取一行的数据 get '表名','行键'
  2. 获取某一行某列族数据 get '表名','行键','列族名'
  3. 根据多个条件获取数据get '表名','行键',{条件1=>'',条件2=>''....}

4.删除数据

  1. 删除某行某列的值delete '表名','行键','列族名:列名'
  2. 删除某行数据 deleteall '表名','行键'

5. 统计行数

count '表名'

6.添加自增列

👉🏻注意:重复对同一列添加自增列,会在原有基础上+1

//格式 
incr '表名','行键','列族名:列族',步长值

//栗子:
incr 'jzyspace:userinfos','1','base:stuno',1

7.查找限制行数内容

scan '表名',{LIMIT=>行数}

可以与STARTROW结合使用,用来做分页



多加练习✌🏻,熟能生巧,fighting!!!🐱‍👤

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值