Hbase学习笔记二(增删改查&过滤器)

本文仅仅是个人的学习笔记记录!

目录

创建表

过滤器

行键过滤器

列族与列过滤器

值过滤器

其他过滤器


创建表

创建数据库表的命令:create '表名', '列族名1','列族名2','列族名N'

create 'user','info01','info02'

增加数据:put‘表名’, ‘rowKey’, ‘列族 : 列’  ,  '值'

put 'user','0001','info01:name','张三'
put 'user','0002','info01:age','23'
put 'user','0003','info02:school','zgsfdx'

删除某个记录:delete‘表名’,‘行名’,‘列族:列'

delete 'user','0001','info01:name'

删除整行记录:deleteall '表名','rowkey'

deleteall 'user','0003'

​清空表中所有的记录:truncate '表名'

truncate 'user'

删除表,先要屏蔽该表,才能对该表进行删除:disable ‘表名’  
                                    :drop '表名’

disable 'user'
drop 'user'

put就是重写一遍,进行覆盖,hbase没有修改,都是追加,即对相同rowKey、列族和列名的数据再次添加即为数据的更新

put 'user','0001','info01:name','zhangjie'
put 'user','0001','info01:name','123456'

#List查看创建的数据表
list
​
#查看表的结构:describe ‘表名’
describe 'user'
​
#查看记录的数量:count  '表名' 
count 'user'
​
#全表查询
scan tableName
scan 'user'
​
#查看某个rowKey下的所有记录:get '表名','rowKey'
get 'user','0001'
​
#查看某个rowKey列族的记录:get '表名','rowkey','列族'
get 'user','0001','info01'
​
#查看rowKey列族的某个列记录:get '表名','rowkey','列族:列’
get 'user','0001','info01:name'
​
#基于rowkey的单行查询
get tableName,'1’
​
#基于rowkey的范围扫描
scan tableName, {STARTROW=>‘1’,STOPROW=>‘2’}

过滤器

Hbase过滤器操作;

使用show_filter命令可以查看当前HBase支持的过滤器类型;

使用过滤器的语法格式如下所示:

scan '表名',{Filter => ”过滤器(比较运算符,’比较器’)”}

​ Filter=> :指明过滤的方法(过滤器),整体可用大括号引用,也可以不用大括号;

过滤的方法(过滤器)使用双引号引用;

比较方式(比较器)用小括号引用;

create 'stu','stuinfo','grades'
put 'stu','001','stuinfo:name','tom'
put 'stu','001','stuinfo:age','18'
put 'stu','001','stuinfo:sex','male'
put 'stu','001','grades:math','80'
put 'stu','001','grades:bigdata','85'
put 'stu','stu001','stuinfo:name','tom'
put 'stu','stu001','stuinfo:age','18'
put 'stu','stu001','stuinfo:sex','male'
put 'stu','stu001','grades:math','80'
put 'stu','stu001','grades:bigdata','85'

行键过滤器

包括:RowFilter、PrefixFilter、KeyOnlyFilter、FirstKeyOnlyFilter等

格式:scan ‘表名’,{Filter =>“过滤器( 比较运算符,’比较器’)”} ​

#RowFilter:针对行键进行过滤
#显示行键前缀为001的键值对
scan 'stu',{FILTER => "RowFilter(=,'substring:001')"}

#显示行键字节顺序大于002的键值对
scan 'stu',{FILTER => "RowFilter(>,'binary:002')"}
​
#PrefixFilter:行键前缀过滤器
#扫描前缀为001的行键
scan 'stu',FILTER => "PrefixFilter('001')"
​
#FirstKeyOnlyFilter:扫描全表,
#显示每个逻辑行的第一个键值对
scan 'stu',FILTER => "FirstKeyOnlyFilter()"
​
#InclusiveStopFilter:替代ENDROW返回终止条件行;
#扫描显示行键001到002范围内的键值对
scan 'stu',{STARTROW => '001',FILTER => "InclusiveStopFilter('002')"}
scan 'stu',{STARTROW => '001',ENDROW => '003'}

列族与列过滤器

包括:FamilyFilter、QualifierFilter、ColumnPrefixFilter、MultipleColumnPrefixFilter、ColumnRangeFilter

​​​​​​​#FamilyFilter:针对列族进行比较和过滤
#显示列族前缀为stu开头的键值对
scan 'stu',{FILTER => "FamilyFilter(=,'substring:stu')"}
​
#QualifierFilter:列标识过滤器
#显示列名为name的记录
scan 'stu',FILTER => "QualifierFilter(=,'substring:name')"
​
#ColumnPrefixFilter:对列名前缀进行过滤。
#显示列名为name的记录
scan 'stu',{FILTER => "ColumnPrefixFilter('name')"}
​
#MultipleColumnPrefixFilter:可以指定多个前缀
#显示列名为name和age的记录
scan 'stu',{FILTER => "MultipColumnPrefixFilter('name','age')"}
​
#ColumnRangeFilter :设置范围按字典序对列名进行过滤
scan 'stu',FILTER => "ColumnRangeFilter('bi',true,'na',true)"

值过滤器

包括:ValueFilter、SingleColumnValueFilter

#ValueFilter :值过滤器。
#查询值等于19的所有键值对
scan 'stu',FILTER => "ValueFilter(=,'binary:19')"
scan 'stu',FILTER => "ValueFilter(=,'substring:19')"
​
#SingleColumnValueFilter :在指定的列族和列中进行值过滤器。
#查询stuinfo列族age列中值等于19的所有键值对
scan 'stu',{COLUMN => 'stuinfo:age',FILTER => "SingleColumnValueFilter('stuinfo','age',=,'binary:19')"}

其他过滤器

包括:ColumnCountGetFilter、PageFilter、ColumnPaginationFilter

#ColumnCountGetFilter :限制每个逻辑行返回的键值对数
#返回行键为001的前3个键值对
get 'stu','001',FILTER => "ColumnCountGetFilter(3)"
​
#PageFilter :基于行的分页过滤器,设置返回行数。
#显示一行
scan 'stu',FILTER => "PageFilter(1)"
​
#ColumnPaginationFilter :基于列的进行分页过滤器,需要设置偏移量与返回数量
#显示每行第1列之后的2个键值对
scan 'stu',FILTER => "ColumnPaginationFilter(2,1)"

本文仅仅是个人的学习笔记记录!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值