Managed Airflow(第 3 代) | Managed Airflow(第 2 代) | Managed Airflow(旧版第 1 代)
本页介绍如何使用以下设计模式对 Airflow 流水线中的任务进行分组:
- 将 DAG 图中的任务分组。
- 从父 DAG 触发子 DAG。
- 使用
TaskGroupoperator 将任务分组。
将 DAG 图中的任务分组
要将流水线的特定阶段中的任务分组,您可以使用 DAG 文件中任务之间的关系。
请参考以下示例:
在此工作流中,任务 op-1 和 op-2 在初始任务 start 后一起运行。您可以使用语句 start >> [task_1, task_2] 来将任务分组,以实现此目的。
以下示例提供了此 DAG 的完整实现:
从父 DAG 触发子 DAG
您可以使用 TriggerDagRunOperator 运算符从一个 DAG 触发另一个 DAG。
请参考以下示例:
在此工作流中,dag_1 和 dag_2 块表示一系列任务,这些任务分组到 Managed Airflow 环境中的不同 DAG 中。
此工作流的实现需要两个独立的 DAG 文件。控制 DAG 文件如下所示:
由控制 DAG 触发的子 DAG 的实现如下所示:
您必须在 Managed Airflow 环境中上传两个 DAG 文件,此 DAG 才能正常运行。
使用 TaskGroup operator 对任务分组
您可以使用 TaskGroup operator 将 DAG 中的任务分组在一起。在 TaskGroup 块中定义的任务仍然是主 DAG 的一部分。
请参考以下示例:
任务 op-1 和 op-2 分组到一个 ID 为 taskgroup_1 的块中。此工作流的实现类似于以下代码: