SQL解析过程
逻辑算子树生成
-
未解析的逻辑算子树(Unresolved LogicalPlan)
仅仅是数据结构,不包含任何数据信息等 -
解析后的逻辑算子树(Analyzed LogicalPlan)
树节点中绑定各种信息 -
优化后的逻辑算子树(Optimized LogicalPlan)
基于RBO,应用各种优化规则对一些低效的逻辑计划进行转换
物理算子树生成
- 基于逻辑算子树,生成物理算子树列表Iterator[PhysicalPlan](同样的逻辑算数树可能生成多个物理算子树)
- 按照一定的CBO策略,选择最优的物理算子树
- 对选取的物理算子树进行提交前的准备,得到准备后的物理算子树
如确保分区操作正确、物理算子树节点重用、执行代码生成等