大数据技术----HBase过滤器

本文详细介绍了HBase中常用的过滤器操作,包括scan的列族值过滤、ValueFilter和ColumnCountGetFilter的行数限制、PageFilter的行分页、ColumnPaginationFilter的列分页,以及AND和OR连接的过滤器组合实例。通过这些技巧,可以高效地查询和筛选HBase中的数据。
摘要由CSDN通过智能技术生成

常用过滤器

过滤器操作

scan可以扫描全表的数据,通过过滤器来进行条件查询。
在这里插入图片描述
指定列族:列的所有cell中进行值的过滤:
SingleColumnValueFilter(‘StuInfo’,‘Age’,=,‘binary:23’)
返回满足条件的cell所在的行;而ValueFilter则返回cell
SingleColumnValueExcludeFilter(),返回的行数据中,只是不包含条件过滤的cell

设置每行返回的列数ColumnCountGetFilter

hbase(main):053:0> get 'Student','001',FILTER=>"ColumnCountGetFilter(3)"
COLUMN                CELL                                                      
 Grades:Bag           timestamp=2, value=100                                    
 Grades:BigData       timestamp=2, value=80                                     
 Grades:Computer      timestamp=2, value=90                                     
1 row(s) in 0.0150 seconds

设置返回的行数PageFilter,行分页
结合STARTROW使用,进行行分页

hbase(main):056:0> scan 'Student',FILTER=>"PageFilter(1)"
ROW                   COLUMN+CELL                                               
 001                  column=Grades:BigData, timestamp=2, value=80              
 001                  column=Grades:Computer, timestamp=2, value=90             
 001                  column=Grades:Math, timestamp=26, value=85                
 001                  column=StuInfo:Age, timestamp=3, value=19                 
 001                  column=StuInfo:Class, timestamp=2, value=02               
 001                  column=StuInfo:Name, timestamp=1, value=Tom Green         
 001                  column=StuInfo:Sex, timestamp=1, value=Male               
1 row(s) in 0.0160 seconds

hbase(main):066:0> scan 'Student',{STARTROW=>'002',FILTER=>'PageFilter(1)'}
ROW                   COLUMN+CELL                                               
 002                  column=StuInfo:Age, timestamp=2, value=23                 
 002                  column=StuInfo:Name, timestamp=2, value=Lucy              
1 row(s) in 0.0090 seconds
#等价如下:
hbase(main):066:0> scan 'Student',{STARTROW=>'002',LIMIT=>1}
ROW                   COLUMN+CELL                                               
 002                  column=StuInfo:Age, timestamp=2, value=23                 
 002                  column=StuInfo:Name, timestamp=2, value=Lucy              
1 row(s) in 0.0090 seconds

设置列的分页ColumnPaginationFilter
ColumnPaginationFilter(num,offset)
偏移offset列,取num列

hbase(main):067:0> scan 'Student',FILTER=>"ColumnPaginationFilter(2,1)"
ROW                   COLUMN+CELL                                               
 001                  column=Grades:Computer, timestamp=2, value=90             
 001                  column=Grades:Math, timestamp=26, value=85                
 002                  column=StuInfo:Name, timestamp=2, value=Lucy              
2 row(s) in 0.0210 seconds

过滤器的组合
AND,OR连接

hbase(main):009:0> scan 'Student',FILTER=>"ColumnPaginationFilter(1,1) OR ValueFilter(=,'substring:Ma')"
ROW                   COLUMN+CELL                                               
 001                  column=Grades:Computer, timestamp=2, value=90             
 001                  column=StuInfo:Sex, timestamp=1, value=Male               
 002                  column=Grades:Math, timestamp=1, value=89                 
2 row(s) in 0.0120 seconds
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

laufing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值