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

Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)

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

Da A Metodo Guida
Managed Airflow (Gen 3), Airflow 2 Managed Airflow (Gen 3), Airflow 3 Trasferimento manuale affiancato Guida alla migrazione manuale
Managed Airflow (Gen 2) Managed Airflow (Gen 3) Affiancata, utilizzando lo script di migrazione Guida alla migrazione degli script
Managed Airflow (Gen 2) Managed Airflow (Gen 3) Affiancate, utilizzando gli snapshot Guida alla migrazione degli snapshot
Managed Airflow (legacy Gen 1), Airflow 2 Managed Airflow (Gen 3) Affiancate, utilizzando gli snapshot Questa guida
Managed Airflow (legacy Gen 1), Airflow 2 Managed Airflow (Gen 2) Affiancate, utilizzando gli snapshot Guida alla migrazione degli snapshot
Managed Airflow (legacy Gen 1), Airflow 2 Managed Airflow (Gen 2) Trasferimento manuale affiancato Guida alla migrazione manuale
Managed Airflow (legacy Gen 1), Airflow 1 Managed Airflow (Gen 2), Airflow 2 Affiancate, utilizzando gli snapshot Guida alla migrazione degli snapshot
Managed Airflow (legacy Gen 1), Airflow 1 Managed Airflow (Gen 2), Airflow 2 Trasferimento manuale affiancato Guida alla migrazione manuale
Managed Airflow (legacy Gen 1), Airflow 1 Managed Airflow (legacy Gen 1), Airflow 2 Trasferimento manuale affiancato Guida alla migrazione manuale

Prima di iniziare

  • Managed Airflow supporta la migrazione affiancata da Managed Airflow (legacy di prima generazione) a Managed Airflow (di terza generazione). Non è possibile eseguire l'upgrade da Managed Airflow (legacy di 1ª gen.) a Managed Airflow (di 3ª gen.) sul posto.

  • Consulta l'elenco delle differenze tra Managed Airflow (legacy di prima generazione), Managed Airflow (di seconda generazione) e Managed Airflow (di terza generazione).

  • La dimensione massima del database Airflow che supporta gli snapshot è 20 GB. Se il database del tuo ambiente occupa più di 20 GB, riduci le dimensioni del database Airflow.

  • Il numero totale di oggetti nelle cartelle /dags, /plugins e /data nel bucket dell'ambiente deve essere inferiore a 100.000 per creare snapshot.

  • Se utilizzi il meccanismo XCom per trasferire i file, assicurati di utilizzarlo in conformità alle linee guida di Airflow. Il trasferimento di file di grandi dimensioni o di un numero elevato di file utilizzando XCom influisce sulle prestazioni del database Airflow e può causare errori durante il caricamento degli snapshot o l'upgrade dell'ambiente. Valuta la possibilità di utilizzare alternative come Cloud Storage per trasferire grandi volumi di dati.

Assicurati che i tuoi DAG siano compatibili con Managed Airflow (Gen 3)

Assicurati che i tuoi DAG siano compatibili con Managed Airflow (Gen 3) seguendo questi suggerimenti:

  • L'[elenco dei pacchetti][cc-versions] nell'ambiente Managed Airflow (Gen 3) può essere diverso da quello nell'ambiente Managed Airflow (Gen 1 legacy). Ciò potrebbe influire sulla compatibilità dei tuoi DAG con Managed Airflow (Gen 3).

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

  • In Managed Airflow (Gen 3), il cluster dell'ambiente si trova nel progetto tenant. Assicurati che i tuoi DAG siano compatibili con questa modifica. In particolare, i workload KubernetesPodOperator ora vengono scalati indipendentemente dall'ambiente e non è possibile utilizzare le configurazioni di affinità dei pod.

  • In Managed Airflow (Gen 3), non è possibile accedere direttamente al database Airflow. Assicurati che i tuoi DAG siano compatibili con questa modifica.

Mettere in pausa i DAG nell'ambiente Managed Airflow (legacy di prima generazione)

Per evitare esecuzioni DAG duplicate, metti in pausa tutti i DAG nell'ambiente Managed Airflow (Legacy Gen 1) prima di salvare lo snapshot. Ignora il DAG di monitoraggio dell'attività (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 tutti i DAG manualmente.

  • 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 del tuo ambiente Managed Airflow (legacy di prima generazione).
    • 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 sospensione di un numero elevato di DAG, puoi utilizzare i seguenti comandi dell'interfaccia a riga di comando di Airflow per sospendere 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 sospensione di un numero elevato di DAG, è possibile sospenderli utilizzando l'API REST di Airflow. Consulta anche la sezione Prova l'API nella documentazione di Airflow.

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

Console

Crea uno snapshot del tuo ambiente:

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

    Vai ad Ambienti

  2. Nell'elenco degli ambienti, fai clic sul nome del tuo ambiente Managed Airflow (Legacy Gen 1). Viene visualizzata 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 Managed Airflow (Legacy Gen 1), ma puoi selezionare una posizione diversa, se vuoi.

  5. Attendi che Managed Airflow crei lo snapshot.

gcloud

  1. Recupera l'URI del bucket del tuo ambiente Managed Airflow (1ª gen. 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 del tuo ambiente Managed Airflow (legacy di prima gen.)
      • 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 Managed Airflow (legacy di prima generazione).

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

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

    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 del tuo ambiente Managed Airflow (legacy di prima generazione).
    • COMPOSER_1_LOCATION con la regione in cui si trova l'ambiente Managed Airflow (Legacy Gen 1).
    • COMPOSER_1_SNAPSHOTS_FOLDER con l'URI del bucket dell'ambiente Managed Airflow (legacy di prima generazione). In questa guida, salvi lo snapshot nel bucket dell'ambiente Managed Airflow (legacy Gen 1), ma puoi selezionare una posizione diversa, se vuoi. Se specifichi una posizione personalizzata, i service account di entrambi gli ambienti devono disporre delle autorizzazioni di lettura e scrittura per qualsiasi posizione disponibile per i service account di entrambi gli ambienti.

Crea un ambiente Managed Airflow (Gen 3)

Crea un ambiente Managed Airflow (Gen 3). Puoi iniziare con un preset dell'ambiente che corrisponda alle richieste di risorse previste e in seguito scalare e ottimizzare ulteriormente l'ambiente.

Non è necessario specificare gli override della configurazione e le variabili di ambiente perché li sostituisci in un secondo momento quando carichi lo snapshot dell'ambiente Managed Airflow (Legacy Gen 1).

Carica lo snapshot nell'ambiente Managed Airflow (Gen 3)

Console

Per caricare lo snapshot nell'ambiente Managed Airflow (Gen 3):

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

    Vai ad Ambienti

  2. Nell'elenco degli ambienti, fai clic sul nome dell'ambiente Managed Airflow (Gen 3). Viene visualizzata 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 con lo snapshot. Se utilizzi la località predefinita per questa guida, questa cartella si trova nel bucket dell'ambiente Managed Airflow (Legacy Gen 1) 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 Managed Airflow carichi lo snapshot.

gcloud

Carica lo snapshot dell'ambiente Managed Airflow (legacy di prima generazione) nell'ambiente Managed Airflow (di 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 Managed Airflow (Gen 3).
  • COMPOSER_3_LOCATION con la regione in cui si trova l'ambiente Managed Airflow (Gen 3).
  • SNAPSHOT_PATH con l'URI del bucket dell'ambiente Managed Airflow (1ª gen. 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 Managed Airflow (Gen 3)

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 Managed Airflow (Gen 3).
    • 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 della CLI 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 riattivarli utilizzando l'API REST di Airflow. Consulta anche la sezione Prova l'API nella documentazione di Airflow.

Controlla la presenza di errori DAG

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

  2. Controlla che le esecuzioni del DAG siano pianificate all'ora corretta.

  3. Attendi l'esecuzione dei DAG nell'ambiente Managed Airflow (Gen 3) e verifica se sono andati a buon fine. Se l'esecuzione di un DAG è riuscita, non riattivarla nell'ambiente Managed Airflow (Legacy Gen 1); in caso contrario, nell'ambiente Managed Airflow (Legacy Gen 1) si verifica un'esecuzione del DAG per la stessa ora e data.

  4. Se un'esecuzione di DAG specifica non va a buon fine, prova a risolvere i problemi relativi al DAG finché non viene eseguita correttamente in Managed Airflow (Gen 3).

Monitora l'ambiente Managed Airflow (Gen 3)

Dopo aver trasferito tutti i DAG e la configurazione all'ambiente Managed Airflow (Gen 3), monitoralo per rilevare potenziali problemi, esecuzioni di DAG non riuscite e l'integrità generale dell'ambiente.

Se l'ambiente Managed Airflow (Gen 3) funziona senza problemi per un periodo di tempo sufficiente, valuta la possibilità di eliminare l'ambiente Managed Airflow (Gen 1 legacy).

Passaggi successivi