HBase过滤器(filter)提供了非常强大的特性来帮助用户提高其处理表中的数据的效率。用户不仅可以使用HBase中预定义好的过滤器,而且可以实现自定义的过滤器。
1.行过滤器(RowFilter)
行过滤器基于行键来过滤数据。使用多种比较运算符(equal, greater, not equal, etc)来返回符合条件 的行键,同时会过滤不符合条件的行键。可以使用WhileMatchFilter封装该过滤器,实现更多的控制。如果已经知道行范围需要扫描,使用扫描开始和停止的行,而不是直接使用过滤器。如果要使用多少过滤器,可以使用FilterList类。
2.列族过滤器(FamilyFilter)
这个过滤器与行过滤器相似,不过它是通过比较列族而不是比较行键来返回结果的。通过使用不同组合的运算符和比较器,用户可以在列族一级筛选所需要数据。如果已经知道查找的列族,使用Get.addFamily(byte[])而不是直接使用过滤器。如果要使用多少过滤器,可以使用FilterList类。
3.列名过滤器(QualifierFilter)
如果已经知道查找的列限定符,直接使用Get.addColumn(byte[],byte[])。
此外还有众多的过滤器,可以翻阅api。
4.自定义过滤器
用户可能需要按各种需求实现自定义过滤器,可以实现继承Filter类或者FilterBase类。