hbase中的过滤器集

  • DependentColumnFilter
  • 一种允许用户指定一个参考列或引用列来过滤其他列的过滤器,过滤的原则是基于参考列的时间戳来进行筛选
    1,语法
    DependentColumnFilter (‘family’, ‘qualifier’, boolean, compareoperator, ‘value comparator’)
    DependentColumnFilter (‘family’, ‘qualifier’, boolean)
    DependentColumnFilter (‘family’, ‘qualifier’)
    2.样例
    scan ‘student’ {FILTER=>“DependentColumnFilter(‘contact’,‘mobile’,false,>=,‘binary:15813345678’)”}

*KeyOnlyFilter:
行键过滤器(KeyOnlyFilter)
只需要将结果中KeyValue实例的键返回,不需要返回实际的数据。
filter = “KeyOnlyFilter()”; 有数据

*FirstKeyOnlyFilter:首次行键过滤器(FirstKeyOnlyFilter)只需要访问一行中的第一列。该过滤器常用在行数统计。filter = “FirstKeyOnlyFilter()”; 有数据

*ColumnCountGetFilter:列计数过滤器(ColumnCountGetFilter)限制每行最多取回多少列。设置ColumnCountGetFilter(int n),它不适合扫描操作,更适合get()。
filter = “ColumnCountGetFilter(3)”;

*SingleColumnValueFilter
1,语法
SingleColumnValueFilter (‘family’, ‘qualifier’, compare operator, ‘comparator’, filterIfColumnMissing_boolean, latest_version_boolean)
SingleColumnValueFilter (‘family’, ‘qualifier’, compare operator, ‘comparator’)
//如果 filterIfColumnMissing 标志设为真,如果该行没有指定的列,那么该行的所有列将不发出。缺省值为假。
//如果setLatestVersionOnly 标志设为假,将检查此前的版本。缺省值为真
2.样例
scan ‘student’,{FILTER=>“SingleColumnValueFilter(‘persionInfo’,‘address’,=,‘binary:china’) AND SingleColumnValueFilter(‘persionInfo’,‘name’,=,‘binary:zhangsan’) AND PageFilter(2)”} //根据具体的列进行匹配;

*PrefixFilter
scan ‘student’ {LIMIT=>10,FILTER=>“PrefixFilter(‘00’)”} 行建的前缀匹配

*SingleColumnValueExcludeFilter------->scan ‘test_ns:user’,{FILTER=>“SingleColumnValueExcludeFilter(‘contact’,‘mobile’,>=,‘binary:15833345678’) AND PageFilter(1)”}

*ColumnRangeFilter:取得二列这间的所有列数据
1,语法
ColumnRangeFilter (‘’, <minColumnInclusive_bool>, ‘’, <maxColumnInclusive_bool>)
2.样例:
scan ‘test_ns:user’,{FILTER=>“ColumnRangeFilter(‘mobile’,false,‘tel’,false) AND PageFilter(2)”}

*TimestampsFilter:时间戳过滤器(TimestampsFilter)
需要在扫描结果中对版本进行细粒度控制。一个版本是指一个列在一个特定时间的值。
filter = "TimestampsFilter (1435747469212, 1435738500459) ";

*FamilyFilter:列族过滤器(FamilyFilter)
filter = “FamilyFilter(=, ‘binary:base_info’)”; 有数据
filter = “FamilyFilter(=, ‘binary:extra_info’)”; 有数据

*QualifierFilter:字段过滤
filter = “QualifierFilter(=,‘substring:name’)”;
filter = “QualifierFilter(=,‘binary:name’)”;
filter = “(QualifierFilter(=,‘binary:name’) OR QualifierFilter(=,‘binary:age’))”;

*ColumnPrefixFilter:列前缀过滤器(ColumnPrefixFilter) 对列名称前缀进行匹配。
filter = “ColumnPrefixFilter (‘name’)”;有数据
filter = “ColumnPrefixFilter (‘age’)”;有数据

*RowFilter
scan ‘zy_comment’,{FILTER=>“RowFilter(=,‘substring:zhangsan’)”} rowkey中包含特定前缀的数据

*MultipleColumnPrefixFilter:多个列前缀过滤器(MultipleColumnPrefixFilter)
filter = “MultipleColumnPrefixFilter(‘name’,‘age’)”;有数据

*InclusiveStopFilter:包含结束的过滤器(InclusiveStopFilter)
开始行被包含在结果中,但终止行被排斥在外,使用这个过滤器,也可以将结束行包含在结果中。
filter = “InclusiveStopFilter(‘binary:baiyc_20150701_0016’)”;

*PageFilter
分页过滤器(PageFilter)
作用:对结果按行分页。 客户端需要记住上一次访问的row的key值。
filter = “PageFilter(12)”; 有数据

ValueFilter :字段值过滤器 ------->
filter = “ValueFilter (=, ‘binary:33’)”; 等号
filter = “ValueFilter (=, ‘binaryprefix:baiyc’)”; 前缀
filter = "ValueFilter (=, 'regexstring:baiyc
2’)";匹配符
filter = “ValueFilter (=, ‘substring:aiyc’)”; 包含子串
filter = “(ValueFilter (=, ‘substring:aiyc’) OR ValueFilter (=, ‘binaryprefix:baiyc’))”; 包含子串
scan ‘student’,{COLUMNS=>[‘persionInfo:address’], FILTER=>“ValueFilter(=,‘substring:china’)”} 取列值为china的列,并只返回address的列

*ColumnPaginationFilter:
列分页过滤器(ColumnPaginationFilter) 可以对一行中所有列进行分页。
ColumnPaginationFilter(int limit,int offset),跳过所有偏移量小于offset的列,并包含之前所有偏移量在limit之前的列。
filter = “ColumnPaginationFilter(1,2)”;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值