openLooKeng基于选择率的动态过滤优化

如之前openLooKeng博客中所述,动态过滤的核心思想是依靠join条件以及build侧表读出的数据,运行时生成动态过滤条件(dynamic filters),应用到probe侧表的table scan阶段,从而减少参与join操作的数据量,有效地减少IO读取与网络传输。

动态过滤优化方法

  1. partial filters的构建

  2. partial filters合并

  3. partial filters以及merged filters的传输

  4. merged filters应用

动态过滤特性系统架构如下图所示,总体架构来看,在进行join处理时,对物理执行计划进行改写,添加DynamicFilterSourceOperator,进行join时build侧表的数据收集之后,将收集到的partial filters包装成bloomfilter发送给分布式缓存hezelcast。与此同时,构建DynamicFilterService,对收集到的partial filters进行合并。在合并完成之后,将生成好的dynamic filter推给join时probe表,作为其额外的过滤条件,在table scan时对数据进行过滤。

通常场景下,所有的join node都会生成dynamic filter,然后依靠优化器规则PredicatePushDown将生成的dynamic filter下推给TableScanNode。然而,默认的动态过滤生成与

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值