1- HBase的过滤器查询操作
格式:
scan '表名',{FILTER=>"过滤器名称(比较运算符,比较器表达式)" }
常见的过滤器:
rowkey过滤器:
RowFilter : 实现行键字符串的比较和过滤操作
PrefixFilter : rowkey 前缀过滤器
列族过滤器:
FamilyFilter: 列族过滤器
列名过滤器:
QualifierFilter : 列名过滤器, 中显示对应列名的数据
列值过滤器:
ValueFilter: 列值过滤器, 找到符合值的数据
SingleColumnValueFilter: 在执行的列族和列名中进行比较具体的值, 将符合条数据整行数据全部都返回(包含条件的内容字段)
SingleColumnValueExcludeFilter: 在执行的列族和列名中进行比较具体的值, 将符合条数据整行数据全部都返回(去除条件内容的字段)
其他过滤器:
PageFilter : 用来执行分页操作
比较运算符 : = > < >= <= !=
比较器:
BinaryComparator : 完整匹配字节数组
BinaryPrefixComparator : 匹配字节数组前缀
NullComparator : 匹配Null
SubstringComparator : 模糊匹配字符串
比较器表达式:
BinaryComparator : binary:值
BinaryPrefixComparator : binaryprefix:值
NullComparator : null
SubstringComparator: substring:值
如果不知道过滤器的构造参数, 可以查看此地址:
http://hbase.apache.org/2.2/devapidocs/index.html
添加一条非rk前缀的数据
put 'test01','0001','f1:name','tianqi'
![](https://i-blog.csdnimg.cn/blog_migrate/5be21d183cccdfe223c926c72120f82c.png)
需求: 查询在列名中包含a字母的列有那些呢?
scan 'test01',{FILTER=>"QualifierFilter(=,'substring:a')" }
![](https://i-blog.csdnimg.cn/blog_migrate/46357be26c9352ea97de7fe54fab901a.png)
# 博学谷IT 技术支持