Activa DAG

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

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.

  • Activar manualmente. Puedes activar un DAG de forma manual desde la consola de Google Cloud, la IU de Airflow o mediante la ejecución de un comando de la CLI de Airflow desde gcloud.

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

Otras maneras 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.

Especifica 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, 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 cada hora a partir de las 15:00 del 5 de abril de 2024. Con los parámetros que se usan en el ejemplo, Airflow programa la primera ejecución del DAG para que se realice a las 16:00 del 5 de abril de 2024.

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, 2024
    start_date=datetime(2024, 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(2024, 4, 4, 16, 25) y schedule_interval es 30 16 * * *, la primera ejecución de DAG se realizará a las 16:30 del 5 de abril de 2024.

  • Si start_date es datetime(2024, 4, 4, 16, 35) y schedule_interval es 30 16 * * *, la primera ejecución de DAG se realizará a las 16:30 del 6 de abril de 2024. Debido a que la fecha de inicio es posterior al intervalo de programación del 4 de abril de 2024, la ejecución del DAG no se llevará a cabo el 5 de abril de 2024. En cambio, el intervalo de programación finaliza a las 16:35 del 5 de abril de 2024, por lo que la próxima ejecución del DAG está programada para las 16:30 del día siguiente.

  • Si start_date es datetime(2024, 4, 4), y schedule_interval es @daily, la primera ejecución de DAG está programada para el 5 de abril de 2024 a las 00:00.

  • Si start_date es datetime(2024, 4, 4, 16, 30), y schedule_interval es 0 * * * *, la primera ejecución de DAG está programada para el 4 de abril de 2024 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 activas un DAG de forma manual, Airflow realiza una ejecución de DAG. Por ejemplo, si tienes un DAG que ya se ejecuta según un programa y lo activas de forma manual, Airflow lo ejecuta una vez, independientemente de la programación real especificada para el DAG.

Console

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

Para activar un DAG desde la consola de Google Cloud, sigue estos pasos:

  1. En la consola de Google Cloud, 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. Haz clic en el nombre de un DAG.

  5. En la página Detalles del DAG, haz clic en Activar DAG. Se crea una nueva ejecución de DAG.

IU de Airflow

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

  1. En la consola de Google Cloud, 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 versiones anteriores, 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 versiones posteriores, 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 en la que 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?