Como acionar DAGs

Nesta página, você aprende como acionar DAGs em ambientes do Cloud Composer.

Há duas maneiras de acionar um DAG:

  • Acione com uma programação. Ao criar um DAG, você especifica uma programação para ele. O Airflow aciona o DAG com base nos parâmetros de programação especificados.
  • Acione manualmente. É possível acionar um DAG com um comando de CLI do Airflow ou a interface da Web do Airflow. Para o Cloud Composer, o comando da CLI do Airflow que aciona DAGs está disponível por meio do comando gcloud composer.

Além disso, é possível acionar DAGs em resposta a eventos usando o Cloud Functions e a API REST do Airflow. Para mais informações, consulte Como acionar DAGs com o Cloud Functions.

Acionar um DAG em uma programação

Para acionar um DAG em uma programação:

  1. Especifique os parâmetros start_date e schedule_interval no arquivo DAG, conforme descrito posteriormente nesta seção.
  2. Faça upload do arquivo DAG no seu ambiente.

Sobre os parâmetros de agendamento

Ao definir um DAG, no parâmetro schedule_interval, você especifica com que frequência quer executá-lo. No parâmetro start_date, especifique quando você quer que o Airflow comece a programar o DAG. As tarefas no DAG podem ter datas de início individuais ou especificar uma única data para cada tarefa. Com base na data de início mínima para tarefas no DAG e no intervalo da programação, o Airflow programa as execuções de DAG.

A programação funciona da seguinte maneira. Depois que o start_date é aprovado, o Airflow aguarda a seguinte ocorrência de schedule_interval. Em seguida, ele programa a primeira execução do DAG para acontecer no final desse intervalo. Por exemplo, se um DAG estiver programado para ser executado a cada hora e a data de início for às 12h de hoje, a primeira execução do DAG acontecerá hoje às 13h.

O exemplo a seguir mostra um DAG que é executado a cada hora a partir de 15h de 5 de abril de 2021. Com os parâmetros usados no exemplo, o Airflow programa a execução do DAG para acontecer às 16h no dia 5 de abril de 2021.

from datetime import datetime
from airflow import DAG
from airflow.operators.bash_operator import BashOperator

with DAG(
    dag_id='example_dag_schedule',
    # At 15:00 on 5 April, 2021
    start_date=datetime(2021, 4, 5, 15, 0),
    # At minute 0 of every hour
    schedule_interval='0 * * * *') as dag:

    # Output the current date and time
    t1 = BashOperator(
        task_id='date',
        bash_command='date',
        dag=dag)

    t1

Para mais informações sobre os parâmetros de programação, consulte Execuções do DAG na documentação do Airflow.

Mais exemplos de parâmetros de programação

Os exemplos de parâmetros de programação a seguir ilustram como a programação funciona com diferentes combinações de parâmetros:

  • Se start_date for datetime(2021, 4, 4, 16, 25) e schedule_interval for 30 16 * * *, a primeira execução do DAG acontecerá às 16h30 no dia 5 de abril de 2021.
  • Se start_date for datetime(2021, 4, 4, 16, 35) e schedule_interval for 30 16 * * *, a primeira execução do DAG acontecerá às 16h30 no dia 6 de abril de 2021. Como a data de início é posterior ao intervalo de programação em 4 de abril de 2021, a execução do DAG não acontece em 5 de abril de 2021. Em vez disso, o intervalo de programação termina às 16:35 em 5 de abril de 2021, então a próxima execução do DAG está programada para 16:30 no dia seguinte.
  • Se start_date for datetime(2021, 4, 4) e schedule_interval for @daily, a primeira execução do DAG será programada para 0h no dia 5 de abril de 2021.
  • Se start_date for datetime(2021, 4, 4, 16, 30) e schedule_interval for 0 * * * *, a primeira execução do DAG será agendada para 18h em 4 de abril de 2021. Após a data e a hora especificadas, o Airflow programa uma execução de DAG para acontecer no minuto 0 de cada hora. O momento mais próximo em que isso acontece é 17:00. No momento, o Airflow programa uma execução do DAG para acontecer no final do intervalo, ou seja, às 18h.

Como acionar um DAG usando a gcloud

Para acionar um DAG usando a gcloud, execute o comando trigger_dag da CLI do Airflow:

CLI do Airflow 1.10

  gcloud composer environments run ENVIRONMENT_NAME \
    --location LOCATION \
    trigger_dag -- DAG_ID

CLI do Airflow 2.0

  gcloud beta composer environments run ENVIRONMENT_NAME \
    --location LOCATION \
    dags trigger -- DAG_ID

Substitua:

  • ENVIRONMENT_NAME pelo nome do ambiente.
  • LOCATION pela região do Compute Engine em que o ambiente está localizado.
  • DAG_ID pelo nome do DAG.

Para mais informações sobre como executar comandos da CLI do Airflow em ambientes do Cloud Composer, consulte Como executar comandos da CLI do Airflow.

Para mais informações sobre os comandos disponíveis da CLI do Airflow, consulte a referência do comando gcloud composer environments run.

Acionar um DAG usando a interface da Web do Airflow

Para acionar um DAG na interface da Web do Airflow:

  1. Abra a página Ambientes no Console do Google Cloud.

    Abra a página "Ambientes"

  2. Na coluna Servidor da Web do Airflow, siga o link do Airflow para seu ambiente.

  3. Faça login com a Conta do Google que tem as permissões apropriadas.

  4. Na interface da Web do Airflow, na página DAGs, na coluna Links do DAG, clique no botão Trigger Dag.

  5. (Opcional) Especifique a configuração de execução do DAG.

  6. Clique em Acionador.

A seguir