您的位置:首页 > 其它

hbase权威指南学习笔记--过滤器

2015-01-08 11:38 141 查看
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)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: