HBase过滤器

过滤器就是对数据库获取的数据进行过滤,将符合条件的数据返回客户端,从而减少从region服务器向客户端发送的数据,从而减少数据传输,提高效率。

所有的过滤器都要实现Filter接口。HBase同时还提供了FilterBase抽象类,它提供了Filter接口的默认实现。而在HBase提供的过滤器中,也主要分为几种过滤器:比较过滤器专用过滤器扩展过滤器

过滤器的组成:主要有过滤器本身比较器比较运算符组成。一般来说,实现一个过滤器就是需要在过滤器中规定比较运算符与比较器,但是也有其他一些过滤器是以别的参数,例如扩展类过滤器。

(1)比较运算符
其实过滤器的作用与SQL语句中的where语句很相似,在Where语句中一般都是使用比较符号的,而在过滤器中不能使用常规的比较操作符,为其特别定义了一套比较运算符。比较运算符全被封装在一个名为 CompareOp 的枚举类中,因此我们在使用时一般都通过这个类去引用其中的比较运算符,比较运算符主要有:
LESS:匹配小于设定的值
LESS_OR_EQUAL  : 小于或者等于预设定的值
EQUAL:等于与设定的值
NOT_EQUAL : 不等于预设定的值
GREATER_OR_EQUAL:大于或者等于预设定的值
GREATER:大于预设定的值。
NO_OP :排除一切值

(2)比较器
比较器是规定如何进行比较的一套类文件,不同的比较器规定了在比较时使用的规则是不相同的,因此会因为使用不同的比较器而使得比较结果出现较大的差异。通常使用的比较器有以下中:
BinaryComparator:
二进制比较器,该比较器会要求用户输入一个byte数据的值,在进行比较的时候会拿获取的值与该比较器中的值进行比较,比较结果是否与比较运算符相同。
BinaryPrefixComparator :
字节数组前缀比较器,该类在初始化时要求用户输入一个字节数组。然后字节数组前缀比较器会帮你挑出所有以这段字节数组打头的记录。
NullComparator:
空值比较式,判断当前值是不是为null。
BitComparator:
比特位比较器,通过BitwiseOp提供的AND(与)、OR(或)、NOT(非)进行比较。
RegexStringComparator:
正则表达式比较器。向比较器提供一个正则表达式,比较当前值是否能被指定的正则表达式代表。
SubstringComparator:
子字符串表达式,该类初始化时需要制定一个字符串。比较当前值的子字符串中是否与指定的字符创相同。
需要注意的是:后三种比较器(BitComparator、RegexStringComparator、SubstringComparator)只能使用 EQUAL、NOT_EQUAL这两种比较运算符。

过滤器运行原理
过滤器只能配置Get和Scan对象进行使用,Get和Scan都提供了setFilter()借口,可以通过该函数设置相应的过滤器。在发送Get或者Scan请求以后,其对象会被序列化后被传送到相应的region服务器中,这时过滤器对象也会被序列化后传入到相应的region服务器中。从而在region服务器端起到过滤数据的作用。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值