Hbase过滤器FilterList中的AND和OR的整合

 HBase 内置过滤器可以分为三类:分别是比较过滤器,专用过滤器和包装过滤器。但是我要介绍一下这个Filterlist:

如果有多个过滤条件需要我们做筛选,可以使用功能filterlist将他们组装到一起。当然,Hbase大数据情况下还是尽量做好rowkey的设计,少的加入这么多过滤.

如果是单个使用查询不用说直接get,但是有的时候查询条件不确定,然后没法比需要加入filter,使用scan,那么就需要加上范围了,但是这样有的时候又会有数据连续的rowykey热点问题,那么就需要我们提前建表的时候指定分区region,让数据均衡的分到不同的Region。

 

比如:select * from table a left join b on a.id=b.id where a.id=1 and a.name="lisan" and (a.age>15 or b.age >15 )

val FAMILY = Bytes.toBytes("info") // hbase列族
val list = new FilterList(Operator.MUST_PASS_ALL) //and过滤器
var or= new FilterList(Operator.MUST_PASS_ONE) //or过滤器
var filterList=new FilterList(Operator.MUST_PASS_ALL) //整合过滤
      
//使用scan的时候建议加上 如果不行就设置rowkey,不然扫描全表很慢的,表示开头是这个区间的
scan.withStartRow(Bytes.toBytes(parameter.get(IndexParams.BE
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

꧁꫞ND꫞꧂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值