在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)"}

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>