1、DAG相关概念
1.1 DAG简介
通常意义上的DAG是图论中的概念,全称是Directed Acyclic Graph,即有向无环图。在图论中,如果一个有向图无法从某个顶点出发经过若干条边回到该顶点,则这个图是一个有向无环图。图4-1是一个有向无环图的例子。
有向无环图非常适合描绘工作流。我们把图4-1中的图想象成一个工作流,图的顶点对应任务,图的边对应任务之间的依赖关系,那么该工作流包含a、b、c、d、e共5个任务。b任务必须在a任务完成后才能执行,c任务也必须在a任务完成后才能执行,d任务必须在a、b、c任务都完成后才能执行,e任务必须在a、b、c、d任务都完成后才能执行。更进一步地,如果我们用代码来表示有向无环图,即可获得工作流的代码表达。在Airflow中,图4-1所示的有向无环图可以用代码清单4-1表示。(为简单起见,假设a、b、c、d、e共5个任务都是虚拟任务,没有具体的内容,在Airflow中,常常用DummyOperator来构造这类任务。)
from airflow import DAG