Esegui la migrazione degli ambienti a Cloud Composer 2 (da Airflow 2) utilizzando gli snapshot

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Questa pagina spiega come trasferire DAG, dati e configurazione dagli ambienti Cloud Composer 1 e Airflow 2 esistenti a Cloud Composer 2 e Airflow 2.

Questa guida alla migrazione utilizza la funzionalità Snapshot.

Altre guide alla migrazione

Da A Metodo Guida
Cloud Composer 2 Cloud Composer 3 Affiancata, utilizzando lo script di migrazione Guida alla migrazione degli script
Cloud Composer 2 Cloud Composer 3 Affiancate, utilizzando gli snapshot Guida alla migrazione degli snapshot
Cloud Composer 1, Airflow 2 Cloud Composer 3 Affiancate, utilizzando gli snapshot Guida alla migrazione degli snapshot
Cloud Composer 1, Airflow 2 Cloud Composer 2 Affiancate, utilizzando gli snapshot Questa guida
Cloud Composer 1, Airflow 2 Cloud Composer 2 Trasferimento manuale affiancato Guida alla migrazione manuale
Cloud Composer 1, Airflow 1 Cloud Composer 2, Airflow 2 Affiancate, utilizzando gli snapshot Guida alla migrazione degli snapshot
Cloud Composer 1, Airflow 1 Cloud Composer 2, Airflow 2 Trasferimento manuale affiancato Guida alla migrazione manuale
Cloud Composer 1, Airflow 1 Cloud Composer 1, Airflow 2 Trasferimento manuale affiancato Guida alla migrazione manuale

Prima di iniziare

  • Gli snapshot sono supportati in Cloud Composer 2 versione 2.0.9 e successive. Cloud Composer 1 supporta il salvataggio degli snapshot dell'ambiente nella versione 1.18.5.

  • Cloud Composer supporta la migrazione affiancata da Cloud Composer 1 a Cloud Composer 2. Non è possibile eseguire l'upgrade da Cloud Composer 1 a Cloud Composer 2 sul posto.

  • Consulta l'elenco delle differenze tra Cloud Composer 1 e Cloud Composer 2.

  • 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. Prendi in considerazione l'utilizzo di alternative come Cloud Storage per trasferire grandi volumi di dati.

Passaggio 1: metti in pausa i DAG nell'ambiente Cloud Composer 1

Per evitare esecuzioni duplicate di DAG, metti in pausa tutti i DAG nell'ambiente Cloud Composer 1 prima di salvare lo snapshot.

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 del tuo ambiente Cloud Composer 1.
    • 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 della CLI 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.

Passaggio 2: salva lo snapshot dell'ambiente Cloud Composer 1

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 Cloud Composer 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 Cloud Composer 1, ma puoi selezionare una posizione diversa, se vuoi.

  5. Attendi che Cloud Composer crei lo snapshot.

gcloud

  1. Recupera l'URI del bucket dell'ambiente Cloud Composer 1:

    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 Cloud Composer 1.
      • 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 Cloud Composer 1.

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

  2. Crea uno snapshot dell'ambiente Cloud Composer 1:

    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 Cloud Composer 1.
    • COMPOSER_1_LOCATION con la regione in cui si trova l'ambiente Cloud Composer 1.
    • COMPOSER_1_SNAPSHOTS_FOLDER con l'URI del bucket dell'ambiente Cloud Composer 1. In questa guida, salvi lo snapshot nel bucket dell'ambiente Cloud Composer 1, ma puoi selezionare una posizione diversa, se vuoi. Se specifichi una posizione personalizzata, gli account di servizio di entrambi gli ambienti devono disporre delle autorizzazioni di lettura e scrittura per la posizione specificata.

Passaggio 3: crea un ambiente Cloud Composer 2

Crea un ambiente Cloud Composer 2. Puoi iniziare con un preset dell'ambiente che corrisponda alle richieste di risorse previste e in un secondo momento scalare e ottimizzare ulteriormente l'ambiente.

Non devi specificare gli override di configurazione e le variabili di ambiente, poiché li sostituirai in un secondo momento quando carichi lo snapshot dell'ambiente Cloud Composer 1.

Passaggio 4: carica lo snapshot nell'ambiente Cloud Composer 2

Console

Per caricare lo snapshot nell'ambiente Cloud Composer 2:

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

    Vai ad Ambienti

  2. Nell'elenco degli ambienti, fai clic sul nome del tuo ambiente Cloud Composer 2. 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 posizione predefinita per questa guida, questa cartella si trova nel bucket dell'ambiente Cloud Composer 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 Cloud Composer carichi lo snapshot.

gcloud

Carica lo snapshot dell'ambiente Cloud Composer 1 nell'ambiente Cloud Composer 2:

gcloud composer environments snapshots load \
  COMPOSER_2_ENV \
  --location COMPOSER_2_LOCATION \
  --snapshot-path "SNAPSHOT_PATH"

Sostituisci:

  • COMPOSER_2_ENV con il nome del tuo ambiente Cloud Composer 2.
  • COMPOSER_2_LOCATION con la regione in cui si trova l'ambiente Cloud Composer 2.
  • SNAPSHOT_PATH con l'URI del bucket dell'ambiente Cloud Composer 1, 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.

Passaggio 5: riattiva i DAG nell'ambiente Cloud Composer 2

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_2_ENV \
      --project PROJECT_ID \
      --location COMPOSER_2_LOCATION \
      --operation unpause
    

    Sostituisci:

    • COMPOSER_2_ENV con il nome del tuo ambiente Cloud Composer 2.
    • PROJECT_ID con l'ID progetto.
    • COMPOSER_2_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_2_ENV dags unpause \
      --project PROJECT_ID \
      --location COMPOSER_2_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.

Passaggio 6: controlla se sono presenti 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 Cloud Composer 2 e verifica se sono andati a buon fine. Se l'esecuzione di un DAG è andata a buon fine, non riattivarla nell'ambiente Cloud Composer 1. In caso contrario, nell'ambiente Cloud Composer 1 si verifica un'esecuzione di DAG per la stessa ora e data.

  4. Se l'esecuzione di un DAG specifico non va a buon fine, prova a risolvere i problemi del DAG finché non viene eseguito correttamente in Cloud Composer 2.

Passaggio 7: monitora l'ambiente Cloud Composer 2

Dopo aver trasferito tutti i DAG e la configurazione all'ambiente Cloud Composer 2, monitoralo per rilevare potenziali problemi, esecuzioni di DAG non riuscite e l'integrità complessiva dell'ambiente.

Se l'ambiente Cloud Composer 2 funziona senza problemi per un periodo di tempo sufficiente, valuta la possibilità di eliminare l'ambiente Cloud Composer 1.

Passaggi successivi