Esegui la migrazione a Managed Airflow (Gen 3) da Managed Airflow (Gen 1 legacy) (Airflow 2)

Airflow gestito (terza generazione) | Airflow gestito (seconda generazione) | Airflow gestito (prima generazione legacy)

Questa pagina spiega come trasferire DAG, dati e configurazione dagli ambienti Airflow 2 e Airflow gestito (prima generazione legacy) esistenti ad Airflow 2 e Airflow gestito (terza generazione), utilizzando gli snapshot.

Da A Metodo Guida
Airflow 2, Airflow gestito (terza generazione) Airflow 3, Airflow gestito (terza generazione) Trasferimento manuale affiancato Guida alla migrazione manuale
Airflow gestito (seconda generazione) Airflow gestito (terza generazione) Affiancato, utilizzando lo script di migrazione Guida alla migrazione con script
Airflow gestito (seconda generazione) Airflow gestito (terza generazione) Affiancato, utilizzando gli snapshot Guida alla migrazione con snapshot
Airflow 2, Airflow gestito (prima generazione legacy) Airflow gestito (terza generazione) Affiancato, utilizzando gli snapshot Questa guida
Airflow 2, Airflow gestito (prima generazione legacy) Airflow gestito (seconda generazione) Affiancato, utilizzando gli snapshot Guida alla migrazione con snapshot
Airflow 2, Airflow gestito (prima generazione legacy) Airflow gestito (seconda generazione) Trasferimento manuale affiancato Guida alla migrazione manuale
Airflow 1, Airflow gestito (prima generazione legacy) Airflow 2, Airflow gestito (seconda generazione) Affiancato, utilizzando gli snapshot Guida alla migrazione con snapshot
Airflow 1, Airflow gestito (prima generazione legacy) Airflow 2, Airflow gestito (seconda generazione) Trasferimento manuale affiancato Guida alla migrazione manuale
Airflow 1, Airflow gestito (prima generazione legacy) Airflow 2, Airflow gestito (prima generazione legacy) Trasferimento manuale affiancato Guida alla migrazione manuale

Prima di iniziare

Assicurati che i DAG siano compatibili con Airflow gestito (terza generazione)

Assicurati che i DAG siano compatibili con Airflow gestito (terza generazione) seguendo questi suggerimenti:

  • L'[elenco dei pacchetti][cc-versions] nell'ambiente Airflow gestito (terza generazione) può essere diverso da quello dell'ambiente Airflow gestito (prima generazione legacy). Ciò potrebbe influire sulla compatibilità dei DAG con Airflow gestito (terza generazione).

  • Airflow gestito carica gli override della configurazione, le variabili di ambiente e i pacchetti PyPI dallo snapshot dell'ambiente Airflow gestito (prima generazione legacy) ad Airflow gestito (terza generazione) senza modificarli o regolarli per la compatibilità. Se i pacchetti PyPI personalizzati causano conflitti di dipendenza, puoi saltarne l'installazione quando carichi lo snapshot.

  • In Airflow gestito (terza generazione), il cluster dell'ambiente si trova nel progetto tenant. Assicurati che i DAG siano compatibili con questa modifica. In particolare, KubernetesPodOperator i carichi di lavoro ora vengono scalati indipendentemente da l'ambiente e non è possibile utilizzare le configurazioni di affinità dei pod.

  • In Airflow gestito (terza generazione), non è possibile accedere direttamente al database Airflow. Assicurati che i DAG siano compatibili con questa modifica.

Metti in pausa i DAG nell'ambiente Airflow gestito (prima generazione legacy)

Per evitare l'esecuzione di DAG duplicati, metti in pausa tutti i DAG nell'ambiente Airflow gestito (prima generazione legacy) prima di salvare lo snapshot. Salta il DAG di monitoraggio della liveness (airflow_monitoring), che viene utilizzato a scopo di monitoraggio e non è incluso negli snapshot dell'ambiente.

Puoi utilizzare una delle seguenti opzioni:

  • Nell'interfaccia web di Airflow, vai a DAG e metti in pausa manualmente tutti i DAG.

  • Utilizza lo script composer_dags per mettere in pausa tutti i DAG:

    python3 composer_dags.py --environment COMPOSER_1_ENV \
      --project PROJECT_ID \
      --location COMPOSER_1_LOCATION \
      --operation pause
    

    Sostituisci:

    • COMPOSER_1_ENV con il nome dell'ambiente Airflow gestito (prima generazione legacy).
    • PROJECT_ID con l'ID progetto.
    • COMPOSER_1_LOCATION con la regione in cui si trova l'ambiente.
  • (Versioni di Airflow 2.9.1 e successive) Se si verificano errori di quota durante la messa in pausa di un numero elevato di DAG, puoi utilizzare i seguenti comandi dell'interfaccia a riga di comando di Airflow per mettere in pausa tutti i DAG contemporaneamente:

    gcloud composer environments run COMPOSER_1_ENV dags pause \
      --project PROJECT_ID \
      --location COMPOSER_1_LOCATION \
      -- -y --treat-dag-id-as-regex ".*"
    
  • (Versioni di Airflow precedenti alla 2.9.1) Se si verificano errori di quota durante la messa in pausa di un numero elevato di DAG, è possibile mettere in pausa i DAG utilizzando l' API REST di Airflow. Consulta anche Provare l'API nella documentazione di Airflow.

Salva lo snapshot dell'ambiente Airflow gestito (prima generazione legacy)

Console

Crea uno snapshot dell'ambiente:

  1. Nellaconsole, vai alla pagina Ambienti. Google Cloud

    Vai ad Ambienti

  2. Nell'elenco degli ambienti, fai clic sul nome dell'ambiente Airflow gestito (prima generazione legacy). Si apre la pagina Dettagli ambiente.

  3. Fai clic su Crea snapshot.

  4. Nella finestra di dialogo Crea snapshot, fai clic su Invia. In questa guida, salvi lo snapshot nel bucket dell'ambiente Airflow gestito (prima generazione legacy), ma puoi selezionare una posizione diversa, se vuoi.

  5. Attendi che Airflow gestito crei lo snapshot.

gcloud

  1. Recupera l'URI del bucket dell'ambiente Airflow gestito (prima generazione legacy):

    1. Esegui questo comando:

      gcloud composer environments describe COMPOSER_1_ENV \
          --location COMPOSER_1_LOCATION \
           --format="value(config.dagGcsPrefix)"
      

      Sostituisci:

      • COMPOSER_1_ENV con il nome dell'ambiente Airflow gestito (prima generazione legacy).
      • COMPOSER_1_LOCATION con la regione in cui si trova l'ambiente.
    2. Nell'output, rimuovi la cartella /dags. Il risultato è l'URI del bucket dell'ambiente Airflow gestito (prima generazione legacy).

      Ad esempio, modifica gs://us-central1-example-916807e1-bucket/dags in gs://us-central1-example-916807e1-bucket.

  2. Crea uno snapshot dell'ambiente Airflow gestito (prima generazione legacy):

    gcloud composer environments snapshots save \
      COMPOSER_1_ENV \
      --location COMPOSER_1_LOCATION \
      --snapshot-location "COMPOSER_1_SNAPSHOTS_FOLDER"
    

    Sostituisci:

    • COMPOSER_1_ENV con il nome dell'ambiente Airflow gestito (prima generazione legacy).
    • COMPOSER_1_LOCATION con la regione in cui si trova l'ambiente Airflow gestito (prima generazione legacy).
    • COMPOSER_1_SNAPSHOTS_FOLDER con l'URI del bucket dell'ambiente Airflow gestito (prima generazione legacy). In questa guida, salvi lo snapshot nel bucket dell'ambiente Airflow gestito (prima generazione legacy), ma puoi selezionare una posizione diversa, se vuoi. Se specifichi una località personalizzata, gli account di servizio di entrambi gli ambienti devono disporre delle autorizzazioni di lettura e scrittura per qualsiasi località disponibile per gli account di servizio di entrambi gli ambienti.

Crea un ambiente Airflow gestito (terza generazione)

Crea un ambiente Airflow gestito (terza generazione). Puoi iniziare con un preset dell'ambiente che corrisponda alle esigenze di risorse previste e in un secondo momento scalare e ottimizzare ulteriormente l'ambiente.

Non è necessario specificare gli override della configurazione e le variabili di ambiente perché li sostituirai in un secondo momento quando carichi lo snapshot dell'ambiente Airflow gestito (prima generazione legacy).

Carica lo snapshot nell'ambiente Airflow gestito (terza generazione)

Console

Per caricare lo snapshot nell'ambiente Airflow gestito (terza generazione):

  1. Nellaconsole, vai alla pagina Ambienti. Google Cloud

    Vai ad Ambienti

  2. Nell'elenco degli ambienti, fai clic sul nome dell'ambiente Airflow gestito (terza generazione). Si apre la pagina Dettagli ambiente.

  3. Fai clic su Carica snapshot.

  4. Nella finestra di dialogo Carica snapshot, fai clic su Sfoglia.

  5. Seleziona la cartella contenente lo snapshot. Se utilizzi la località predefinita per questa guida, questa cartella si trova nel bucket dell'ambiente Airflow gestito (prima generazione legacy) nella cartella /snapshots e il suo nome è il timestamp dell'operazione di salvataggio dello snapshot. Ad esempio, us-central1-example-916807e1-bucket/snapshots_example-project_us-central1_example-environment/2022-01-05T18-59-00.

  6. Fai clic su Carica e attendi che Airflow gestito carichi lo snapshot.

gcloud

Carica lo snapshot dell'ambiente Airflow gestito (prima generazione legacy) nell'ambiente Airflow gestito (terza generazione):

gcloud composer environments snapshots load \
  COMPOSER_3_ENV \
  --location COMPOSER_3_LOCATION \
  --snapshot-path "SNAPSHOT_PATH"

Sostituisci:

  • COMPOSER_3_ENV con il nome dell'ambiente Airflow gestito (terza generazione).
  • COMPOSER_3_LOCATION con la regione in cui si trova l'ambiente Airflow gestito (terza generazione).
  • SNAPSHOT_PATH con l'URI del bucket dell'ambiente Airflow gestito (prima generazione legacy), seguito dal percorso dello snapshot. Ad esempio, gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00.

Riattiva i DAG nell'ambiente Airflow gestito (terza generazione)

Puoi utilizzare una delle seguenti opzioni:

  • Nell'interfaccia web di Airflow, vai a DAG e riattiva manualmente tutti i DAG uno alla volta.

  • Utilizza lo script composer_dags per riattivare tutti i DAG:

    python3 composer_dags.py --environment COMPOSER_3_ENV \
      --project PROJECT_ID \
      --location COMPOSER_3_LOCATION \
      --operation unpause
    

    Sostituisci:

    • COMPOSER_3_ENV con il nome dell'ambiente Airflow gestito (terza generazione).
    • PROJECT_ID con l'ID progetto.
    • COMPOSER_3_LOCATION con la regione in cui si trova l'ambiente.
  • (Versioni di Airflow 2.9.1 e successive) Se si verificano errori di quota durante la riattivazione di un numero elevato di DAG, puoi utilizzare i seguenti comandi dell'interfaccia a riga di comando di Airflow per riattivare tutti i DAG contemporaneamente:

    gcloud composer environments run COMPOSER_3_ENV dags unpause \
      --project PROJECT_ID \
      --location COMPOSER_3_LOCATION \
      -- -y --treat-dag-id-as-regex ".*"
    
  • (Versioni di Airflow precedenti alla 2.9.1) Se si verificano errori di quota durante la riattivazione di un numero elevato di DAG, è possibile riattivare i DAG utilizzando l' API REST di Airflow. Consulta anche Provare l'API nella documentazione di Airflow.

Verifica la presenza di errori nei DAG

  1. Nell'interfaccia web di Airflow, vai a DAG e verifica la presenza di errori di sintassi dei DAG segnalati.

  2. Verifica che le esecuzioni dei DAG siano pianificate all'ora corretta.

  3. Attendi che le esecuzioni dei DAG avvengano nell'ambiente Airflow gestito (terza generazione) e verifica se sono andate a buon fine. Se l'esecuzione di un DAG è andata a buon fine, non riattivarla nell'ambiente Airflow gestito (prima generazione legacy). In caso contrario, nell'ambiente Airflow gestito (prima generazione legacy) si verifica un'esecuzione di DAG per la stessa data e ora.

  4. Se l'esecuzione di un DAG specifico non va a buon fine, prova a risolvere il problema del DAG finché non viene eseguito correttamente in Airflow gestito (terza generazione).

Monitora l'ambiente Airflow gestito (terza generazione)

Dopo aver trasferito tutti i DAG e la configurazione all'ambiente Airflow gestito (terza generazione), monitoralo per verificare la presenza di potenziali problemi, esecuzioni di DAG non riuscite e l'integrità generale dell'ambiente.

Se l'ambiente Airflow gestito (terza generazione) viene eseguito senza problemi per un periodo di tempo sufficiente, valuta la possibilità di eliminare l'ambiente Airflow gestito (prima generazione legacy).

Passaggi successivi