在Hbase使用过滤器(行键过滤器列族与列过滤器值过滤器)
Posted 小镭敲代码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Hbase使用过滤器(行键过滤器列族与列过滤器值过滤器)相关的知识,希望对你有一定的参考价值。
本文介绍Hbase中的过滤器:
1、行键过滤器
2、列族与列过滤器
3、值过滤器
4、其他过滤器
格式如下:
scan'表名',FILTER=>过滤器(比较运算符,'比较器')"
一、行键过滤器
RowFilter可以配合比较器和运算符,实现行键字符串的比较和过滤
例如,匹配出行键中大于102的数据,可使用binary比较器;匹配以10开头的行键,可使用substring比较器,注意substring不支持大于或小于运算符。
首先创建本次需要用到的表,booksystem:bookinfo 看参考下面这篇文章
(71条消息) Hbase对表进行查询操作详细教程_小镭敲代码的博客-CSDN博客
1、过滤出行键为102的数据
scan'booksystem:bookinfo',FILTER=>"RowFilter(=,'binary:102')"
2、过滤出行键=>102的数据
scan'booksystem:bookinfo',FILTER=>"RowFilter(>=,'binary:102')"
3、过滤出行键是10开头的数据
scan'booksystem:bookinfo',FILTER=>"RowFilter(=,'substring:10')"
4、过滤出行键中包含3的数据
scan'booksystem:bookinfo',FILTER=>"RowFilter(=,'substring:3')"
二、列族与列过滤器
(一)列族过滤器
对列族进行过滤的过滤器为FamilyFilter,其语法结构与RowFilter类似,不同之处在于FamilyFilter是对列族名称进行过滤的
1、过滤出列族为info2的列族数据
scan'booksystem:bookinfo',FILTER=>"FamilyFilter(=,'binary:info2')"
2、过滤出列族名包含info的数据
scan'booksystem:bookinfo',FILTER=>"FamilyFilter(=,'substring:info')"
(二)列过滤器
列过滤器 | 描述 | |
QualifiterFilter | 标识过滤器,只显示对应列名的数据 | |
ColumnPrefixFilter | 对列名称的前缀进行过滤 | |
MultipleColumnPrefixFilter | 可以指定多个前缀进行列名称过滤 | |
ColumnRangeFilter | 过滤列名称的范围 |
1、过滤出type列 QualifierFilter
scan'booksystem:bookinfo',FILTER=>"QualifierFilter(=,'binary:type')"
2、过滤出包含e的列
scan'booksystem:bookinfo',FILTER=>"QualifierFilter(=,'substring:e')"
3、过滤出列名为n开头的列ColumnPrefixFilter
scan'booksystem:bookinfo',FILTER=>"ColumnPrefixFilter('n')"
4、过滤出列名前缀为n和p的列 MultipleColumnPrefixFilter
scan 'booksystem:bookinfo',FILTER=>"MultipleColumnPrefixFilter('n','p')"
5、过滤出name-type之间的列 ColumnRangeFilter
scan 'booksystem:bookinfo',FILTER=>"ColumnRangeFilter('name',true,'typ
e',false)"
三、值过滤器
1、查询之里面包含a的数据
scan 'booksystem:bookinfo',FILTER=>"ValueFilter(=,'substring:a')"
2、查询在info1的列族中name的值为python的数据SinglecolumnValueFilter
scan 'booksystem:bookinfo',FILTER=>"SingleColumnValueFilter('info1':'name',=,'binary:python')"
3、查询以n开头的列,并且值为python的数据
scan 'booksystem:bookinfo',FILTER=>"ColumnPrefixFilter('n')AND ValueFilter(=,'substring:python')"
四、其他过滤器
1、时间过滤器
过滤出时间在1637769874353,1637769886529的数据
scan 'booksystem:bookinfo',FILTER=>"TimestampsFilter(1637769874353,1637769886529)"
2、分页过滤器
scan'booksystem:bookinfo',STARTROW=>'101',FILTER=>"PageFilter(2)"
以上是关于在Hbase使用过滤器(行键过滤器列族与列过滤器值过滤器)的主要内容,如果未能解决你的问题,请参考以下文章