Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Nesta página, descrevemos como agrupar tarefas em pipelines do Airflow usando os seguintes padrões de design:
- Agrupar tarefas no gráfico do DAG.
- Como acionar DAGs filhos de um DAG pai.
- Agrupar tarefas com o operador
TaskGroup
.
Agrupar tarefas no gráfico do DAG
Para agrupar tarefas em determinadas fases do pipeline, use as relações entre as tarefas no arquivo DAG.
Veja o exemplo a seguir.
![Gráfico de tarefas do Airflow mostrando tarefas de ramificação](https://cloud.google.com/static/composer/docs/images/workflow-group-dags.png?authuser=19&hl=pt)
Neste fluxo de trabalho, as tarefas op-1
e op-2
são executadas juntas após a tarefa inicial start
. Para isso, agrupe as tarefas com a instrução start >> [task_1, task_2]
.
O exemplo a seguir fornece uma implementação completa deste DAG:
Acionar DAGs filhos de um DAG pai
É possível acionar um DAG de outro com o
operador TriggerDagRunOperator
.
Veja o exemplo a seguir.
![Gráfico das tarefas do Airflow mostrando DAGs filhos acionados como parte de um gráfico de DAG](https://cloud.google.com/static/composer/docs/images/workflow-trigger-dags.png?authuser=19&hl=pt)
Neste fluxo de trabalho, os blocos dag_1
e dag_2
representam uma série de tarefas
agrupadas em um DAG separado no ambiente do
Cloud Composer.
A implementação desse fluxo de trabalho requer dois arquivos DAG separados. O arquivo DAG de controle tem a seguinte aparência:
A implementação do DAG filho, que é acionada pelo DAG de controle, tem a seguinte aparência:
É preciso fazer upload dos dois arquivos DAG no ambiente do Cloud Composer para que o DAG funcione.
Como agrupar tarefas com o operador TaskGroup
É possível usar o
operador TaskGroup
para agrupar tarefas
no DAG. As tarefas definidas em um bloco TaskGroup
ainda fazem parte
do DAG principal.
Veja o exemplo a seguir.
![Gráfico de tarefas do Airflow mostrando dois grupos de tarefas](https://cloud.google.com/static/composer/docs/images/workflow-taskgroup-dag.png?authuser=19&hl=pt)
As tarefas op-1
e op-2
são agrupadas em um bloco com o ID taskgroup_1
. Uma implementação desse fluxo de trabalho se parece com o seguinte código: