Hbase shell中使用Filter过滤器总结


在hbase shel1中使用过滤器的格式为

#可以通过show_filters查询当前版本支持的所有过滤器
scan '表名',{FILTER=>"过滤器"}

在使用scan的时候如果不加上startRow和endRow那么都是全局检索,并且startRow和endRow是前闭后开的,查询的结果不包括endRow。

RowFilter

行键过滤器
查询hbase:meta表中rowkey中包含123的数据。

scan 'hbase:meta', {FILTER=> "RowFilter(=,'substring:123')"}

ValueFilter

值过滤器
查询hbase:meta表中值包含123的数据,因为hbase在存储的时候是以key-value格式的列式存储,在查询遍历的时候每行每列都会遍历,所以才有这个过滤器.
除了可以查询等于,也可以查询大于、大于等于、小于、小于等于、不等于,比较的方式是字典排序。
除非在数据存储的时候存储的类型为数字类型。
substring:包含的意思、binary:精确查询、regexstring:正则匹配、null:空值比较、long:数字比较

scan 'hbase:meta',{FILTER=> "ValueFilter(=,'substring:123')"}

SingleColumnValueFilter

单列值过滤器
查询hbase :meta表中列簇为info.列名为server的所有数据。
注意:在使用单列值过滤器必须保证每行数据都有要查询的列,因为查询结果也会返回没有要查询的列的整行记录。

scan 'hbase:meta',{FILTER=>"SingleColumnValueFilter('info','server',=,'binary:chds-2:60020')"}

PrefixFilter

行键前缀过滤器
查询hbase:meta表中行键以123开头的所有数据

scan 'hbase:meta',{FILTER=>"PrefixFilter('123')"}

ColumnPrefixFilter

单列名前缀过滤器
查询hbase:meta表中以server开头的列的所有数据

scan 'hbase:meta',{FILTER=>"ColumnPrefixFilter('server')"}

MultipleColumnPrefixFilter

多列名前缀过滤器
查询hbase:meta表中以server和regioninfo开头的列的所有数据

scan 'hbase:meta',{FILTER=>"MultipleColumnPrefixFilter('servedr','regioninfo')"}

PageFilter

分页过滤器
分页过滤器要和startRow搭配使用,和LIMIT功能类似。
过滤器搭配使用的时候分页过滤器要放在最后。
但是如果是页面开发使用java api操作,分页过滤器有一个缺点就是必须一页一页翻页,因为要传递startRow的值,和ES的深度分页类似

scan 'hbase:meta',{FILTER=>"PageFilter(2)",STARTROW=>''}
scan 'hbase:meta',{LIMIT=>2,STARTROW=>''}

InclusiveStopFilter

包含结尾过滤器
endRow在使用过程中查询结果不包括endRow,可以搭配使用这个过滤器。

scan 'hbase:meta',{STARTROW=>'',ENDROW=>'',FILTER=>"InclusiveStopFilter('')"}

FamilyFilter

列簇过滤器

scan 'hbase:meta',{FILTER=>"FamilyFilter(=,'binary:info')"}

QualifierFilter

列名过滤器

scan 'hbase:meta',{FILTER=>"QualifierFilter(=,'binary:server')"}

SingleColumnValueExcludeFilter

单列值不包含过滤器,和单列值过滤器类似

scan 'hbase:meta',{FILTER=>"SingleColumnValueExcludeFilter('info','server',=,'binary:chds-2:60020')"}
  • 8
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值