本文介绍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')"
(二)列过滤器
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)"}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)