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 1 esistenti a Cloud Composer 2 e Airflow 2.
Questa guida alla migrazione utilizza la funzionalità Istantanee.
Altre guide alla migrazione
Da | A | Metodo | Guida |
---|---|---|---|
Cloud Composer 1, Airflow 2 | Cloud Composer 2, Airflow 2 | Accanto, utilizzando gli snapshot | Guida alla migrazione (snapshot) |
Cloud Composer 1, Airflow 1 | Cloud Composer 2, Airflow 2 | Accanto, utilizzando gli snapshot | Questa guida (snapshot) |
Cloud Composer 1, Airflow 2 | Cloud Composer 2, Airflow 2 | Trasferimento manuale affiancato | Guida alla migrazione manuale |
Cloud Composer 1, Airflow 1 | Cloud Composer 2, Airflow 2 | Trasferimento manuale affiancato | Guida alla migrazione manuale |
Airflow 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 in situ.
Consulta l'elenco delle differenze tra Cloud Composer 1 e Cloud Composer 2.
La dimensione massima del database Airflow che supporta gli snapshot è di 20 GB. Se il database del tuo ambiente occupa più di 20 GB, riduci le dimensioni del database Airflow.
Per creare gli snapshot, il numero totale di oggetti nelle cartelle
/dags
,/plugins
e/data
nel bucket dell'ambiente deve essere inferiore a 100.000.Se utilizzi il meccanismo XCom per trasferire i file, assicurati di utilizzarlo in base alle linee guida di Airflow. Il trasferimento di file di grandi dimensioni o di un numero elevato di file utilizzando XCom influisce sul rendimento 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.
Poiché Cloud Composer 2 utilizza Airflow 2, la migrazione include il passaggio dei DAG e della configurazione dell'ambiente ad Airflow 2. Consulta la guida alla migrazione da Airflow 1 ad Airflow 2 per informazioni sulle modifiche che non sono più supportate tra Airflow 1 e Airflow 2 in Cloud Composer.
In questa guida, combini la migrazione ad Airflow 2 e la migrazione a Cloud Composer 2 in un'unica procedura di migrazione. In questo modo, non è necessario eseguire la migrazione a un ambiente Cloud Composer 1 con Airflow 2 prima di eseguire la migrazione a Cloud Composer 2.
Passaggio 1: esegui l'upgrade ad Airflow 1.10.15
Se il tuo ambiente utilizza una versione di Airflow precedente alla 1.10.15, esegui l'upgrade dell'ambiente a una versione di Cloud Composer che utilizza Airflow 1.10.15 e supporta gli snapshot.
Passaggio 2: controlla la compatibilità con Airflow 2
Per verificare la presenza di potenziali conflitti con Airflow 2, consulta la guida sull'upgrade ad Airflow 2.0 e versioni successive, nella sezione relativa all'upgrade dei DAG.
Un problema comune che potresti riscontrare riguarda i percorsi di importazione non compatibili. Per ulteriori informazioni sulla risoluzione di questo problema di compatibilità, consulta la sezione relativa ai provider di backport nella guida all'upgrade ad Airflow 2.0 e versioni successive.
Passaggio 3: assicurati che i DAG siano pronti per Airflow 2
Prima di trasferire i DAG nell'ambiente Cloud Composer 2, assicurati che:
I DAG vengono eseguiti correttamente e non ci sono altri problemi di compatibilità.
I DAG utilizzino dichiarazioni di importazione corrette.
Ad esempio, la nuova dichiarazione di importazione per
BigQueryCreateDataTransferOperator
può avere il seguente aspetto:from airflow.providers.google.cloud.operators.bigquery_dts \ import BigQueryCreateDataTransferOperator
I DAG sono stati sottoposti a upgrade per Airflow 2. Questa modifica è compatibile con Airflow 1.10.14 e versioni successive.
Passaggio 4: metti in pausa i DAG nell'ambiente Cloud Composer 1
Per evitare esecuzioni duplicate dei 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 dell'ambiente Cloud Composer 1.PROJECT_ID
con l'ID progetto.COMPOSER_1_LOCATION
con la regione in cui si trova l'ambiente.
Passaggio 5: salva lo snapshot dell'ambiente Cloud Composer 1
Console
Crea uno snapshot del tuo ambiente:
Nella console Google Cloud, vai alla pagina Environments (Ambienti).
Nell'elenco degli ambienti, fai clic sul nome del tuo ambiente Cloud Composer 1. Viene visualizzata la pagina Dettagli dell'ambiente.
Fai clic su Crea snapshot.
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.
Attendi che Cloud Composer crei lo snapshot.
gcloud
Recupera l'URI del bucket del tuo ambiente Cloud Composer 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 Cloud Composer 1.COMPOSER_1_LOCATION
con la regione in cui si trova l'ambiente.
Nell'output, rimuovi la cartella
/dags
. Il risultato è l'URI del bucket del tuo ambiente Cloud Composer 1.Ad esempio, cambia
gs://us-central1-example-916807e1-bucket/dags
ings://us-central1-example-916807e1-bucket
.
Crea uno snapshot del tuo 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 dell'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 del tuo 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 6: crea un ambiente Cloud Composer 2
Crea un ambiente Cloud Composer 2. Puoi iniziare con un ambiente preimpostato che corrisponda alle tue richieste di risorse previste e in un secondo momento scalare e ottimizzare ulteriormente l'ambiente.
Non è necessario specificare le sostituzioni di configurazione e le variabili di ambiente, poiché le sostituirai in un secondo momento quando caricherai lo snapshot dell'ambiente Cloud Composer 1.
Alcune opzioni di configurazione di Airflow 1 utilizzano un nome e una sezione diversi in Airflow 2. Per ulteriori informazioni, consulta Modifiche alla configurazione.
Passaggio 7: carica lo snapshot nell'ambiente Cloud Composer 2
Console
Per caricare lo snapshot nell'ambiente Cloud Composer 2:
Nella console Google Cloud, vai alla pagina Environments (Ambienti).
Nell'elenco degli ambienti, fai clic sul nome del tuo ambiente Cloud Composer 2. Viene visualizzata la pagina Dettagli dell'ambiente.
Fai clic su Carica snapshot.
Nella finestra di dialogo Carica snapshot, fai clic su Sfoglia.
Seleziona la cartella con lo snapshot. Se utilizzi la posizione predefinita per questa guida, la cartella si trova nel bucket dell'ambiente Cloud Composer 1 nella cartella
/snapshots
e il suo nome corrisponde al 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
.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 del tuo 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 8: 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 per uno.
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 Airflow 2.9.1 e successive) Se si verificano errori di quota durante la rimozione della messa in pausa di un numero elevato di DAG, puoi utilizzare i seguenti comandi della CLI Airflow per rimuovere la messa in pausa di 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 rimozione della messa in pausa di un numero elevato di DAG, è possibile rimuovere la messa in pausa dei DAG utilizzando l'API REST Airflow. Consulta anche la sezione Provare l'API nella documentazione di Airflow.
Passaggio 9: controlla se sono presenti errori DAG
Nell'interfaccia web di Airflow, vai a DAG e controlla se sono stati segnalati errori di sintassi dei DAG.
Verifica che le esecuzioni del DAG siano pianificate all'ora corretta.
Attendi che le esecuzioni del DAG vengano eseguite nell'ambiente Cloud Composer 2 e controlla se sono andate a buon fine. Se un'esecuzione di DAG è andata a buon fine, non riprendere la messa in pausa nell'ambiente Cloud Composer 1. In caso contrario, nell'ambiente Cloud Composer 1 verrà eseguita un'esecuzione di DAG per la stessa data e ora.
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 10: monitora l'ambiente Cloud Composer 2
Dopo aver trasferito tutti i DAG e la configurazione nell'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
- Risoluzione dei problemi dei DAG
- Risoluzione dei problemi di creazione dell'ambiente
- Risoluzione dei problemi relativi agli aggiornamenti dell'ambiente
- Utilizzare i pacchetti di backport