• hbase权威指南学习笔记--过滤器


    1.使用hbase是shell客户端进行过滤查询

    scan 'testtable',{COLUMNS=>'colfam1:col-0',FILTER=>RowFilter.new(CompareFilter::CompareOp.valueOf('EQUAL'),SubstringComparator.new("-5"))}

    2.hbase中的过滤器

       A:比较过滤器(继承自CompareFilter)

          RowFilter  行过滤器(按行健进行过滤)

          FamilyFilter 列族过滤器

          QualifierFilter 列名过滤器

          ValueFilter  值过滤器 (在使用特定的比较器时,只能与部分运算符搭配。eg。使用字符串匹配,这种匹配只能使用EQUAL与NOT_EQUAL)

          DependentColumnFilter 参考列过滤器(这种过滤器允许指定一个参考列或引用列,使用参考列的时间戳,在过滤时包括所有与引用时间戳相同的列)

      B:专用过滤器(继承自FilterBase)

         SingleColumnValueFilter 单列值过滤器(根据指定列的值进行过滤,如果参考列不存在时,根据用户设置是否把这一行包含在结果中)

         SingleColumnValueExcludeFilter 单列排除过滤器 (继承自SingleColumnValueFilter ,与后者的区别是,前者不会把参考列包含在结果中)

         PrefixFilter 前缀过滤器(所有与前缀【行健】匹配的行都会被返货客户端)

         PageFilter 分页过滤器

         KeyOnlyFilter 行健过滤器(只返回结果中的KeyValue实例的键,不需要返回实际的数据)

         FirstKeyOnlyFilter 首次行健过滤器(返回每行中的第一列,hbase中的行与列都按字典顺序进行排序,这样最旧的列就会排在最前面,因此时间戳最久的列会被最先检索到)

         InclusiveStopFilter 包含结束的过滤器 

         TimestampsFilter   时间戳过滤器

        ColumnCountGetFilter 列计数过滤器(限制每行最多取回多少列,一行的列数达到设定的值,过滤器会停止扫描操作)

         ColumnPaginationFilter 列分页过滤器

         ColumnPrefixFilter    列前缀过滤器

    C:附加过滤器(实现了Filter接口)

         SkipFilter 跳转过滤器(被包装的过滤器必须实现filterKeyValue()方法,SkipFilter只通过这个方法的返回值决定如何处理这一行)

         WhileMatchFilter 全局匹配过滤器(当一条数据被过滤掉时,就会直接放弃这次扫描)

    FilterList类实现了Filter接口,可以通过组合多个过滤器的功能来实现某种效果。

    自定义的过滤器可以实现Filter接口或者直接继承FilterBase类,后者为接口中的所有成员方法提供了默认实现。编译自定义的类,打包成JAR包,发到每个region服务器中。(包可以放在lib文件夹下或者修改hbase-env.sh中的HBASE_CLASSPATH)。

  • 相关阅读:
    [JSOI2008]Blue Mary开公司[李超线段树]
    线段树分治
    满汉全席[2-SAT]
    「一本通 3.5 练习 5」和平委员会
    2-SAT问题
    2019/04/06 BJ省选模拟DAY1
    构造题【随时更
    文本编辑器vim/vi——命令模式
    指令——cat
    指令——history
  • 原文地址:https://www.cnblogs.com/goodlucklzq/p/4205381.html
Copyright © 2020-2023  润新知