众所周知,Apache Calcite 是为数不多的开源 Volcano/Cascades 查询优化器实现之一,最早脱胎于 Hive 的优化器,后来也被 Flink 等一众项目采用。
但事实上 Calcite 中的 VolcanoPlanner
并非像论文中描述的那样是一个 top-down 优化器。去年阿里云 MaxCompute 团队向 Calcite 提交了 PR,引入了新的 top-down 优化选项,同时也弥补了之前缺失的剪枝、pass-through 等特性。
本文假设读者已经对 Apache Calcite 以及 Volcano/Cascades 优化器的原理比较熟悉。