Attivazione dei DAG

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Questa pagina descrive i diversi modi per attivare i DAG in Cloud Composer ambienti cloud-native.

Airflow fornisce i seguenti modi per attivare un DAG:

  • Attiva in base a una pianificazione. Quando crei un DAG, specifichi la programmazione. Airflow attiva il DAG automaticamente in base parametri di pianificazione specificati.

  • Attivazione manuale. Puoi attivare manualmente un DAG da Console Google Cloud, UI di Airflow o esecuzione di un comando dell'interfaccia a riga di comando di Airflow da gcloud.

  • Si attiva in risposta agli eventi. Il metodo standard per attivare un DAG in la risposta agli eventi consiste nell'usare un sensore.

Altri modi per attivare i DAG:

Attiva un DAG in base a una pianificazione

Per attivare un DAG in una pianificazione:

  1. Specifica i parametri start_date e schedule_interval nel DAG come descritto più avanti in questa sezione.
  2. Carica il file DAG nel tuo ambiente.

Specifica i parametri di pianificazione

Quando definisci un DAG, nel parametro schedule_interval specifichi come spesso vuoi eseguire il DAG. Nel parametro start_date, specifichi quando vuoi che Airflow inizi a pianificare il tuo DAG. Le attività nel DAG possono avere singole date di inizio oppure puoi specificare un'unica data di inizio per tutte le attività. In base alla data di inizio minima per le attività nel DAG e alla pianificazione di addestramento, Airflow pianifica le esecuzioni dei DAG.

La pianificazione funziona nel seguente modo. Dopo il passaggio start_date, Airflow attende la seguente occorrenza di schedule_interval. Poi pianifica la prima esecuzione di DAG al termine di questo intervallo di pianificazione. Ad esempio: se è pianificata l'esecuzione di un DAG ogni ora (schedule_interval è 1 ora) la data di inizio è alle 12:00 di oggi, la prima esecuzione del DAG avviene alle 13:00 di oggi.

L'esempio seguente mostra un DAG che viene eseguito ogni ora a partire dalle 15:00 5 aprile 2024. Con i parametri utilizzati nell'esempio, Airflow programma la prima esecuzione di DAG verrà eseguita alle 16:00 del 5 aprile 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

Per ulteriori informazioni sui parametri di pianificazione, consulta Esecuzioni di DAG nella documentazione di Airflow.

Altri esempi di parametri di pianificazione

I seguenti esempi di parametri di pianificazione illustrano il funzionamento della pianificazione con diverse combinazioni di parametri:

  • Se start_date è datetime(2024, 4, 4, 16, 25) e schedule_interval è 30 16 * * *, la prima esecuzione del DAG verrà eseguita alle 16:30 del 5 aprile 2024.

  • Se start_date è datetime(2024, 4, 4, 16, 35) e schedule_interval è 30 16 * * *, la prima esecuzione del DAG verrà eseguita alle 16:30 del 6 aprile 2024. Poiché la data di inizio è successiva all'intervallo di pianificazione del 4 aprile 2024, l'esecuzione dei DAG non viene eseguita il 5 aprile 2024. Invece, la programmazione l'intervallo termina alle 16:35 del 5 aprile 2024, quindi la prossima esecuzione del DAG è pianificata alle 16:30 del giorno successivo.

  • Se start_date è datetime(2024, 4, 4) e schedule_interval è @daily, la prima esecuzione del DAG è programmata per le 00:00 del 5 aprile 2024.

  • Se start_date è datetime(2024, 4, 4, 16, 30) e schedule_interval è 0 * * * *, quindi la prima esecuzione del DAG programmato per le 18:00 del 4 aprile 2024. Dopo la data e l'ora specificate passa, Airflow pianifica l'esecuzione di un DAG al minuto 0 di ogni ora. Il momento più vicino in cui questo accade sono le 17:00. Al momento, Airflow pianifica l'esecuzione di un DAG alla fine dell'intervallo di pianificazione, cioè alle 18:00.

Attiva manualmente un DAG

Quando attivi un DAG manualmente, Airflow esegue un'esecuzione del DAG. Ad esempio: se hai un DAG che viene già eseguito in base a una pianificazione e attivi questo DAG manualmente, Airflow esegue il DAG una volta, indipendentemente la pianificazione specificata per il DAG.

Console

La UI del DAG è supportata in Cloud Composer 2.0.1 e versioni successive.

Per attivare un DAG dalla console Google Cloud:

  1. Nella console Google Cloud, vai alla pagina Ambienti.

    Vai ad Ambienti

  2. Seleziona un ambiente per visualizzarne i dettagli.

  3. Nella pagina Dettagli ambiente, vai alla scheda DAG.

  4. Fai clic sul nome di un DAG.

  5. Nella pagina Dettagli DAG, fai clic su Attiva DAG. Una nuova esecuzione di DAG è stato creato.

UI di Airflow

Per attivare un DAG dall'interfaccia web di Airflow:

  1. Nella console Google Cloud, vai alla pagina Ambienti.

Vai ad Ambienti

  1. Nella colonna Server web Airflow, segui il link Airflow per il tuo completamente gestito di Google Cloud.

  2. Accedi con l'Account Google che dispone delle autorizzazioni appropriate.

  3. Nell'interfaccia web di Airflow, nella pagina DAG, nella sezione Link colonna per il DAG, fai clic sul pulsante Ora trigger.

  4. (Facoltativo) Specifica la configurazione dell'esecuzione del DAG.

  5. Fai clic su Attiva.

gcloud

Esegui il comando dell'interfaccia a riga di comando di Airflow dags trigger:

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

Sostituisci:

  • ENVIRONMENT_NAME con il nome dell'ambiente.
  • LOCATION con la regione in cui si trova l'ambiente.
  • DAG_ID con il nome del DAG.

Per ulteriori informazioni sull'esecuzione dei comandi dell'interfaccia a riga di comando di Airflow in per gli ambienti Cloud Composer, consulta Esecuzione dei comandi dell'interfaccia a riga di comando di Airflow.

Per ulteriori informazioni sui comandi dell'interfaccia a riga di comando di Airflow disponibili, consulta consulta il riferimento per il comando gcloud composer environments run.

Passaggi successivi