参考文章:
HBase过滤器的使用
HBase过滤器简介
过滤器查询
比较过滤器
HBase中的过滤器类似于SQL中的Where条件。
过滤器在客户端创建,然后通过RPC发送到服务器上,由服务器执行,执行流程如下图:
使用过滤器至少需要两类参数,一类是抽象的操作符。HBase 提供了枚举类型的变量来表示这些抽象的操作符,含义如下:
LESS 小于
LESS_OR_EQUAL 小于等于
EQUAL 等于
NOT_EQUAL 不等于
GREATER_OR_EQUAL 大于等于
GREATER 大于
NO_OP 无操作
专用过滤器
专用过滤器通常直接继承自 FilterBase,适用于范围更小的筛选规则。
比较器作为过滤器的核心组成之一,用于处理具体的比较逻辑,例如字节级的比较,字符串级的比较等。常用的比较器及含义如下:
inaryComparator :二进制比较器,用于按字典顺序比较 Byte 数据值。采用Bytes.compareTo(byte[])
BinaryPrefixComparator :前缀二进制比较器。与二进制比较器不同的是,只比较前缀是否相同
NullComparator :判断给定的值是否为空
RegexStringComparator :提供一个正则的比较器,仅支持 EQUAL 和非EQUAL
SubstringComparator :用于监测一个子串是否存在于值中,并且不区分大小写
组装过滤器FilterList
通过自定义filterlist进行过滤器的顺序组合