3.布尔表达式分析
布尔表达式的分析主要作用是可以让之后的SQL优化更容易的进行下去,如Join时的条件下推优化,分区裁剪优化,都需要使用布尔表达式分析后的结果来进行。...这样,我们就可以很好的在计算机中结构化的表达,如:
2.1.4逻辑查询计划生成
有了以上的基础,我们就可以开始生成我们的查询计划了。...SQL语法本身就是一个递归的结构,支持在FROM之后写一个子查询,如:
面对这样的语句,我们只要先去生成子查询的逻辑查询计划,将子查询的的结果虚表作为父查询的输入即可,在逻辑上很方便去应对。...一般而言,在本地聚合之后,数据会通过Shuffle-Sort运算数据重新分区和排序,再输入到流式聚合算子中
合并(FinalAggregation),这里输入的其实是已经聚合好的结果了,但是由于第一步提到的原因...我们会分析用户写在WHERE子句中的分区字段,将分区字段的条件拿出来,再去metastore中读取所有的分区信息,用WHERE子句中的条件做过滤,最后,我们就知道哪些分区是需要读取的了,我们把要读取的分区信息放入对应的