FilnkSQL怎么查询优化
Apache Flink 使用并扩展了 Apache Calcite 来执行复杂的查询优化。 这包括一系列基于规则和成本的优化,例如:
• 基于 Apache Calcite 的子查询解相关
• 投影剪裁
• 分区剪裁
• 过滤器下推
• 子计划消除重复数据以避免重复计算
• 特殊子查询重写,包括两部分:
◦ 将 IN 和 EXISTS 转换为 left semi-joins
◦ 将 NOT IN 和 NOT EXISTS 转换为 left anti-join
• 可选 join 重新排序
◦ 通过 table.optimizer.join-reorder-enabled 启用
注意: 当前仅在子查询重写的结合条件下支持 IN / EXISTS / NOT IN / NOT EXISTS。
优化器不仅基于计划,而且还基于可从数据源获得的丰富统计信息以及每个算子(例如 io,cpu,网络和内存)的细粒度成本来做出明智的决策。
Apache Flink 使用Calcite进行查询优化,包括子查询解相关、投影剪裁等。用户可以使用Table.explain()查看逻辑和优化的查询计划,提供自定义优化通过CalciteConfig。实际操作中,explain()方法返回未优化、优化的逻辑及物理执行计划。
订阅专栏 解锁全文
820

被折叠的 条评论
为什么被折叠?



