排除器

Hbase过滤器详解

发布时间:2024/9/9 12:08:58   
北京专门治疗白癜风的医院 https://jbk.39.net/yiyuanfengcai/yyjs_bjzkbdfyy/

一、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

------分隔线----------------------------