当前位置: 排除器 >> 排除器发展 >> Hbase过滤器详解
一、HBase过滤器简介二、过滤器基础2.1Filter接口和FilterBase抽象类2.2过滤器分类三、比较过滤器3.1比较运算符3.2比较器3.3比较过滤器种类3.4DependentColumnFilter四、专用过滤器4.1单列列值过滤器(SingleColumnValueFilter)4.2单列列值排除器(SingleColumnValueExcludeFilter)4.3行键前缀过滤器(PrefixFilter)4.4列名前缀过滤器(ColumnPrefixFilter)4.5分页过滤器(PageFilter)4.6时间戳过滤器(TimestampsFilter)4.7首次行键过滤器(FirstKeyOnlyFilter)五、包装过滤器5.1SkipFilter过滤器5.2WhileMatchFilter过滤器六、FilterList
一、HBase过滤器简介Hbase提供了种类丰富的过滤器(filter)来提高数据处理的效率,用户可以通过内置或自定义的过滤器来对数据进行过滤,所有的过滤器都在服务端生效,即谓词下推(predicatepushdown)。这样可以保证过滤掉的数据不会被传送到客户端,从而减轻网络传输和客户端处理的压力。
二、过滤器基础2.1Filter接口和FilterBase抽象类Filter接口中定义了过滤器的基本方法,FilterBase抽象类实现了Filter接口。所有内置的过滤器则直接或者间接继承自FilterBase抽象类。用户只需要将定义好的过滤器通过setFilter方法传递给Scan或put的实例即可。
setFilter(Filterfilter)
//Scan中定义的setFilter
OverridepublicScansetFilter(Filterfilter){super.setFilter(filter);returnthis;}//Get中定义的setFilter
OverridepublicGetsetFilter(Filterfilter){super.setFilter(filter);returnthis;}FilterBase的所有子类过滤器如下:
说明:上图基于当前时间点(.4)最新的Hbase-2.1.4,下文所有说明均基于此版本。
2.2过滤器分类HBase内置过滤器可以分为三类:分别是比较过滤器,专用过滤器和包装过滤器。分别在下面的三个小节中做详细的介绍。
三、比较过滤器所有比较过滤器均继承自CompareFilter。创建一个比较过滤器需要两个参数,分别是比较运算符和比较器实例。
publicCompareFilter(finalCompareOp
转载请注明:http://www.aideyishus.com/lktp/6933.html