栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

hbase中的过滤器集

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 (‘’, , ‘’, )
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)”;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/467334.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号