• OpenLookeng简介
  • OpenLookeng关键特性
  • OpenLookeng之Connector 
  • OpenLookeng之算子下推
  • OpenLookeng之动态查询
  • ......

场景:典型的星型&雪花型数据仓库,事实表数据量极大,而维表数量多,数据量相对较小,查询很少有谓词直接应用到事实表,事实表的查询条件更多是通过维表相连接得到。

这样传统的谓词下推优化很难应用,事实表无法做到有效过滤,几乎都是全表进行扫描参与join,导致join数据量巨大,执行时间过长。

 

针对这种场景,openLooKeng采用动态过滤(Dynamic Filtering)技术。依靠join条件以及build侧表读出的数据,运行时生成动态过滤条件

(dynamic filters) ,应用到probe侧表的table scan阶段,从而减少参与join操作的数据量,有效地减少IO读取与网络传输。

整体来看,通过在build侧表的table scan之上添加DynamicFilterSource算子,搜集build侧数据,通过分布式缓存进行DF的处理,最终经过coordinator端DynamicFilterService的合并,生成最终可以应用的条件,推送给probe侧的table scan进行数据过滤。

 

OpenLookeng之动态查询_OpenLookeng

未完待续...