Activar DAG

En esta página, se describe cómo activar los DAG en entornos de Cloud Composer.

Airflow proporciona dos formas de activar un DAG:

  • Activación programada Cuando creas un DAG, especificas un programa para este. Airflow activa el DAG según los parámetros de programación especificados.
  • Activación manual. Puedes activar un DAG con un comando de la CLI de Airflow o desde la interfaz web de Airflow. En Cloud Composer, el comando de la CLI de Airflow que activa los DAG está disponible a través del comando gcloud composer.

Además, puedes activar DAG en respuesta a eventos mediante Cloud Functions y la API de REST de Airflow. Para obtener más información, consulta Activa DAG con Cloud Functions.

Activa un DAG según un programa

Para activar un DAG según una programación, haz lo siguiente:

  1. Especifica los parámetros start_date y schedule_interval en el archivo DAG, como se describe más adelante en esta sección.
  2. Sube el archivo DAG a tu entorno.

Acerca de los parámetros de programación

Cuando defines un DAG, en el parámetro schedule_interval, especificas con qué frecuencia deseas ejecutar el DAG. En el parámetro start_date, especifica cuándo quieres que Airflow comience a programar tu DAG. Las tareas en tu DAG pueden tener fechas de inicio individuales o puedes especificar una sola fecha de inicio para todas las tareas. Según la fecha de inicio mínima de las tareas en tu DAG y el intervalo de programación, Airflow programa las ejecuciones del DAG.

La programación funciona de la siguiente manera. Una vez que start_date pasa, Airflow espera para el siguiente caso de schedule_interval. Luego, programa la primera ejecución de DAG para que se produzca al final de este intervalo de programación. Por ejemplo, si un DAG está programado para ejecutarse cada hora y la fecha de inicio es a las 12:00 a.m., la primera ejecución del DAG ocurre a las 13:00 hoy.

En el siguiente ejemplo, se muestra un DAG que se ejecuta cada hora, a partir de las 15:00 del 5 de abril de 2021. Con los parámetros usados en el ejemplo, Airflow programa la primera ejecución del DAG para que ocurra a las 16:00 el 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 obtener más información sobre los parámetros de programación, consulta Ejecuciones de DAG en la documentación de Airflow.

Más ejemplos de parámetros de programación

Los siguientes ejemplos de parámetros de programación ilustran cómo funciona la programación con diferentes combinaciones de parámetros:

  • Si start_date es datetime(2021, 4, 4, 16, 25) y schedule_interval es 30 16 * * *, la primera ejecución del DAG ocurre a las 16:30 del 25 de abril de 2021.
  • Si start_date es datetime(2021, 4, 4, 16, 35) y schedule_interval es 30 16 * * *, la primera ejecución del DAG ocurre a las 16:30 del 6 de abril de 2021. Debido a que la fecha de inicio es posterior al intervalo de programación el 4 de abril de 2021, la ejecución del DAG no se produce el 5 de abril de 2021. En cambio, el intervalo de programación finaliza a las 16:35 el 5 de abril de 2021, por lo que la próxima ejecución de DAG se programa para las 16:30 p.m. del día siguiente.
  • Si start_date es datetime(2021, 4, 4), y el schedule_interval es @daily, la primera ejecución del DAG se programa para las 00:00 del 5 de abril de 2021.
  • Si start_date es datetime(2021, 4, 4, 16, 30), y el schedule_interval es 0 * * * *, la primera ejecución del DAG se programa para las 18:00 del 4 de abril de 2021. Una vez que transcurre la fecha y la hora especificadas, Airflow programa una ejecución de DAG para que ocurra en el minuto 0 de cada hora. El punto más cercano al momento en que esto es 17:00. En este momento, Airflow programa la ejecución de una ejecución de DAG para que se realice al final del intervalo de programación, es decir, a las 18:00.

Activa un DAG con gcloud

Para activar un DAG con gcloud, ejecuta el comando trigger_dag de la CLI de Airflow:

CLI de Airflow 1.10

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

CLI de Airflow 2.0

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

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME con el nombre del entorno.
  • LOCATION por la región de Compute Engine donde se encuentra el entorno.
  • DAG_ID con el nombre del DAG

Para obtener más información sobre la ejecución de comandos de la CLI de Airflow en entornos de Cloud Composer, consulta Ejecuta comandos de la CLI de Airflow.

Para obtener más información sobre los comandos de la CLI de Airflow disponibles, consulta la referencia de comandos de gcloud composer environments run.

Activa un DAG con la interfaz web de Airflow

Para activar un DAG desde la interfaz web de Airflow, sigue estos pasos:

  1. Abre la página Entornos en Google Cloud Console.

    Abrir la página Entornos

  2. En la columna Servidor web de Airflow, sigue el vínculo de Airflow para tu entorno.

  3. Accede con la Cuenta de Google que tiene los permisos correspondientes.

  4. En la interfaz web de Airflow, en la página DAGs de la columna Vínculos de su DAG, haga clic en el botón Activar Dag.

  5. Especifica la configuración de ejecución del DAG (opcional).

  6. Haz clic en Activador.

¿Qué sigue?