Activar DAG

Cloud Composer 1 | Cloud Composer 2

En esta página, se describen diferentes formas de activar DAG en entornos de Cloud Composer.

Airflow proporciona las siguientes formas de activar un DAG:

  • Activación en función de un programa. Cuando creas un DAG, debes especificar un programa. Airflow activa el DAG de forma automática según los parámetros de programación especificados.

  • Activa el activador de forma manual. Puedes activar un DAG de forma manual desde la IU de Airflow o mediante la ejecución de un comando de la CLI de Airflow desde gcloud.

  • Activador en respuesta a eventos. La forma estándar de activar un DAG en respuesta a eventos es usar un sensor.

Otras formas de activar los DAG:

Activa un DAG en función de un programa

Para activar un DAG en función de un programa, 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 de DAG a tu entorno.

Especificar 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, debes especificar cuándo deseas que Airflow comience a programar el DAG. Las tareas del DAG pueden tener fechas de inicio individuales, o bien puedes especificar una sola fecha de inicio para todas las tareas. En función de la fecha de inicio mínima para las tareas en tu DAG y en el intervalo de programación, Airflow programa las ejecuciones de DAG.

La programación funciona de la siguiente manera. Después de que pase start_date, Airflow esperará a la siguiente ocurrencia de schedule_interval. Luego, programa la primera ejecución del DAG para que se realice al final de este intervalo de programación. Por ejemplo, si un DAG está programado para ejecutarse a cada hora (schedule_interval es 1 hora) y la fecha de inicio es a las 12:00 de hoy, la primera ejecución del DAG se realiza hoy a las 13:00.

En el siguiente ejemplo, se muestra un DAG que se ejecuta a cada hora a partir de las 15:00 del 5 de abril de 2021. Con los parámetros usados en el ejemplo, Airflow programa el primer DAG para que se ejecute a las 16:00 del 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

A continuación, se muestran ejemplos de 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 se realiza el 5 de abril de 2021 a las 16:30.
  • Si start_date es datetime(2021, 4, 4, 16, 35) y schedule_interval es 30 16 * * *, la primera ejecución del DAG se realizará el 6 de abril de 2021 a las 16:30. 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 realiza el 5 de abril de 2021. En cambio, el intervalo de programación finaliza a las 16:35 del 5 de abril de 2021, por lo que la próxima ejecución de DAG está programada para el día siguiente a las 16:30.
  • Si start_date es datetime(2021, 4, 4) y schedule_interval es @daily, entonces 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 schedule_interval es 0 * * * *, entonces la primera ejecución del DAG está programada para el 4 de abril de 2021 a las 18:00. Después de que pase la fecha y hora especificadas, Airflow programa una ejecución de DAG en el minuto 0 de cada hora. El momento más cercano en que esto sucede es a las 17:00. En este momento, Airflow programa 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 de forma manual

Cuando activa un DAG de forma manual, Airflow realiza una ejecución de DAG. Por ejemplo, si tienes un DAG que ya se ejecuta de forma programada y lo activas de forma manual, Airflow ejecuta su DAG una vez, independientemente del programa real especificado para el DAG.

Console

La IU del DAG es compatible con Cloud Composer 1.17.8 y versiones posteriores.

Para activar un DAG desde Google Cloud Console, haz lo siguiente:

  1. En Google Cloud Console, ve a la página Entornos.

    Ir a Entornos

  2. Selecciona un entorno para ver sus detalles.

  3. En la página Detalles del entorno, ve a la pestaña DAG.

  4. Haga clic en el nombre de un DAG.

  5. En la página de detalles del DAG, haga clic en Trigger DAG. Se crea una ejecución de DAG nueva.

IU de Airflow

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

  1. En Google Cloud Console, ve a la página Entornos.

Ir a Entornos

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

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

  3. En la interfaz web de Airflow, en la página DAG, en la columna Vínculos de tu DAG, haz clic en el botón Activar DAG.

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

  5. Haz clic en Activar.

gcloud

En Airflow 1.10.12 o anterior, ejecuta el comando trigger_dag de la CLI de Airflow:

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

En Airflow 1.10.14 o posterior, incluido Airflow 2, ejecuta el comando dags trigger de la CLI de Airflow:

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

Reemplaza lo siguiente:

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

Para obtener más información sobre cómo ejecutar 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 disponibles de la CLI de Airflow, consulta la referencia de comandos gcloud composer environments run.

¿Qué sigue?