查询计划也即物理执行计划,包括Stage、Task和Operator三个要素。

Stage
AnalyticDB中的查询在执行阶段会首先被切分为多个Stage执行,一个Stage是执行计划中某一部分的物理实体。Stage的数据可以来源于底层数据源或者网络上的数据重分布(上游Stage),一个Stage由分布在多个Executor节点上的Task并行执行来完成数据处理。关于执行计划的生成,请参见执行计划的生成
Task
Task是一个Stage在某个Executor上的执行实体,多个同类型的Task组成一个Stage,在集群内部并行处理数据。
Operator
Operator是AnalyticDB基本处理单元。多个Operator在一个Task内部组成上下游关系,或并行或串行处理数据。是否并行或者串行取决于多个Operator所表达的语义或者Operator之间的依赖关系。

如下图所示,Controller节点把Plan分片下发到Executor节点,其中的Stage 2由4个Executor上的Task执行,Stage 1由2个Executor上的Task执行,Stage 0由一个Executor上的Task执行,执行的结果由Stage 0所在的Task返回到Controller节点,然后返回到客户端。

查询计划的执行