1.使用hbase是shell客户端进行过滤查询
scan 'testtable',{COLUMNS=>'colfam1:col-0',FILTER=>RowFilter.new(CompareFilter::CompareOp.valueOf('EQUAL'),SubstringComparator.new("-5"))}
2.hbase中的过滤器
A:比较过滤器(继承自CompareFilter)
RowFilter 行过滤器(按行健进行过滤)
FamilyFilter 列族过滤器
QualifierFilter 列名过滤器
ValueFilter 值过滤器 (在使用特定的比较器时,只能与部分运算符搭配。eg。使用字符串匹配,这种匹配只能使用EQUAL与NOT_EQUAL)
DependentColumnFilter 参考列过滤器(这种过滤器允许指定一个参考列或引用列,使用参考列的时间戳,在过滤时包括所有与引用时间戳相同的列)
B:专用过滤器(继承自FilterBase)
SingleColumnValueFilter 单列值过滤器(根据指定列的值进行过滤,如果参考列不存在时,根据用户设置是否把这一行包含在结果中)
SingleColumnValueExcludeFilter 单列排除过滤器 (继承自SingleColumnValueFilter ,与后者的区别是,前者不会把参考列包含在结果中)
PrefixFilter 前缀过滤器(所有与前缀【行健】匹配的行都会被返货客户端)
PageFilter 分页过滤器
KeyOnlyFilter 行健过滤器(只返回结果中的KeyValue实例的键,不需要返回实际的数据)
FirstKeyOnlyFilter 首次行健过滤器(返回每行中的第一列,hbase中的行与列都按字典顺序进行排序,这样最旧的列就会排在最前面,因此时间戳最久的列会被最先检索到)
InclusiveStopFilter 包含结束的过滤器
TimestampsFilter 时间戳过滤器
ColumnCountGetFilter 列计数过滤器(限制每行最多取回多少列,一行的列数达到设定的值,过滤器会停止扫描操作)
ColumnPaginationFilter 列分页过滤器
ColumnPrefixFilter 列前缀过滤器
C:附加过滤器(实现了Filter接口)
SkipFilter 跳转过滤器(被包装的过滤器必须实现filterKeyValue()方法,SkipFilter只通过这个方法的返回值决定如何处理这一行)
WhileMatchFilter 全局匹配过滤器(当一条数据被过滤掉时,就会直接放弃这次扫描)
FilterList类实现了Filter接口,可以通过组合多个过滤器的功能来实现某种效果。
自定义的过滤器可以实现Filter接口或者直接继承FilterBase类,后者为接口中的所有成员方法提供了默认实现。编译自定义的类,打包成JAR包,发到每个region服务器中。(包可以放在lib文件夹下或者修改hbase-env.sh中的HBASE_CLASSPATH)。