GeaFlow DSL整体架构如下图所示: 从上到下分五层:
DSL的主要执行流程如下图所示:
DSL文本首先经过Parser解析生成AST语法树,然后再经过Validator校验器做语义检查和类型推导生成校验后的AST语法树。接着通过Logical Plan转换器生成图表一体的逻辑执行计划。逻辑执行计划通过优化器进行优化处理生成优化后的逻辑执行计划,接下来由物理执行计划转换器转换成物理执行计划,物理执行计划通过DAG Builder生成图表一体的物理执行逻辑。GeaFlow DSL采用有两级DAG结构来描述图表一体的物理执行逻辑。
和传统的分布式表数据处理引擎Storm、Flink和Spark的系统不同,GeaFlow是一个流图一体的分布式计算系统。其物理执行计划采用图表两级DAG结构,如下图所示: 外层DAG包含表处理相关的算子以及图处理的迭代算子,为物理执行逻辑的主体部分,将图表的计算逻辑链接起来。内层DAG则将图计算的逻辑通过DAG方式展开,代表了图迭代计算具体执行方式.