Managed Airflow(第 3 代) | Managed Airflow(第 2 代) | Managed Airflow(旧版第 1 代)
本页介绍如何使用以下设计模式对 Airflow 流水线中的任务进行分组:
- 将 DAG 图中的任务分组。
- 从父 DAG 触发子 DAG。
- 使用
TaskGroup运算符对任务分组。
将 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 的实现如下所示:
您必须上传两个 DAG 文件 到 Managed Airflow 环境中,DAG 才能正常运行。
使用 TaskGroup 运算符对任务分组
您可以使用
TaskGroup 运算符将 DAG 中的任务
分组到一起。在 TaskGroup 块中定义的任务仍然是主 DAG 的一部分。
请参考以下示例:
任务 op-1 和 op-2 分组到一个 ID 为 taskgroup_1 的块中。此工作流的实现类似于以下代码: