基本了解 Hbase Filters

Posted

技术标签:

【中文标题】基本了解 Hbase Filters【英文标题】:Basic understanding Hbase Filters 【发布时间】:2017-08-12 09:42:49 【问题描述】:

我有一个包含以下行键的表(为了示例而缩短了):

s1-0                                                
s1-1                                                 
s1-2                             
s2-0                            
s2-1                          
s3-0 

我需要通过以下方式过滤行:

第一部分为 s1,第二部分为 的所有行 第一部分为 s1,第二部分在 1 - 2 范围内的所有行 第二部分在 1 - 2 范围内的所有行

我从基本过滤开始。如果我用这个过滤器扫描表:

Filter f  = new RowFilter(CompareOp.EQUAL, new RegexStringComparator("s1-2"));

我只得到以下行:

s1-2

但如果我将过滤器更改为:

Filter f  = new RowFilter(CompareOp.LESS, new RegexStringComparator("s1-2"));

我的期望是:

s1-0                                                
s1-1

相反,我得到:

s1-0: 0
s1-1: 1
s2-0: 0
s2-1: 1
s3-0: 0

我在理解过滤器的工作原理时遗漏了一些重要的东西。谁能帮助我并提供一些关于过滤器的有用文档参考?

【问题讨论】:

【参考方案1】:

在一本书中我遇到了这个:

BitComparator、RegexStringComparator 和 SubstringComparator 仅适用于 EQUAL 和 NOT_EQUAL 运算符,因为这些比较器的 compareTo() 匹配时返回 0,不匹配时返回 1。 在 LESS 或 GREATER 比较中使用它们会产生错误的结果

【讨论】:

以上是关于基本了解 Hbase Filters的主要内容,如果未能解决你的问题,请参考以下文章

HBase轻松入门

内含面试|一文搞懂HBase的基本原理

内含面试|一文搞懂HBase的基本原理

深入HBase读写

hbase 基本的JavaApi 数据操作及过滤

HBase/TiDB都在用的数据结构:LSM Tree,不得了解一下?