Managed Airflow (terza generazione) | Managed Airflow (seconda generazione) | Managed Airflow (prima generazione legacy)
Questa pagina spiega come trasferire DAG, dati e configurazione dagli ambienti Airflow 1 e Managed Airflow (prima generazione legacy) esistenti ad Airflow 2 e Managed Airflow (seconda generazione).
Questa guida alla migrazione utilizza la funzionalità Snapshot.
Altre guide alla migrazione
| Da | A | Metodo | Guida |
|---|---|---|---|
| Airflow gestito (terza generazione), Airflow 2 | Airflow gestito (terza generazione), Airflow 3 | Trasferimento manuale affiancato | Guida alla migrazione manuale |
| Managed Airflow (seconda generazione) | Managed Airflow (terza generazione) | Affiancato, utilizzando lo script di migrazione | Guida alla migrazione con script |
| Managed Airflow (seconda generazione) | Managed Airflow (terza generazione) | Affiancato, utilizzando gli snapshot | Guida alla migrazione con snapshot |
| Managed Airflow (legacy di prima generazione), Airflow 2 | Managed Airflow (terza generazione) | Affiancato, utilizzando gli snapshot | Guida alla migrazione con snapshot |
| Managed Airflow (legacy di prima generazione), Airflow 2 | Managed Airflow (seconda generazione) | Affiancato, utilizzando gli snapshot | Guida alla migrazione con snapshot |
| Managed Airflow (legacy di prima generazione), Airflow 2 | Managed Airflow (seconda generazione) | Trasferimento manuale affiancato | Guida alla migrazione manuale |
| Managed Airflow (legacy di prima generazione), Airflow 1 | Airflow gestito (seconda generazione), Airflow 2 | Affiancato, utilizzando gli snapshot | Questa guida |
| Managed Airflow (legacy di prima generazione), Airflow 1 | Airflow gestito (seconda generazione), Airflow 2 | Trasferimento manuale affiancato | Guida alla migrazione manuale |
| Managed Airflow (legacy di prima generazione), Airflow 1 | Managed Airflow (legacy di prima generazione), Airflow 2 | Trasferimento manuale affiancato | Guida alla migrazione manuale |
Prima di iniziare
Gli snapshot sono supportati in Managed Airflow (seconda generazione) versione 2.0.9 e successive. Managed Airflow (Legacy Gen 1) supporta il salvataggio degli snapshot dell'ambiente nella versione 1.18.5.
Managed Airflow supporta la migrazione affiancata da Managed Airflow (prima generazione legacy) a Managed Airflow (seconda generazione). Non è possibile eseguire l'upgrade in-place da Managed Airflow (prima generazione legacy) a Managed Airflow (seconda generazione).
Consulta l'elenco delle differenze tra Managed Airflow (Legacy Gen 1) e Managed Airflow (Gen 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 snapshot, il numero totale di oggetti nelle cartelle
/dags,/pluginse/datanel bucket dell'ambiente deve essere inferiore a 100.000.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 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é Managed Airflow (seconda generazione) 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 causano interruzioni tra Airflow 1 e Airflow 2 in Managed Airflow.
In questa guida, combini la migrazione ad Airflow 2 e la migrazione a Managed Airflow (seconda generazione) in un'unica procedura di migrazione. In questo modo, non devi eseguire la migrazione a un ambiente Airflow gestito (prima generazione legacy) con Airflow 2 prima di eseguire la migrazione ad Airflow gestito (seconda generazione).
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 Managed Airflow che utilizza Airflow 1.10.15 e supporta gli snapshot.
Passaggio 2: verifica la compatibilità con Airflow 2
Per verificare la presenza di potenziali conflitti con Airflow 2, consulta la guida Eseguire l'upgrade ad Airflow 2.0+ nella sezione relativa all' upgrade dei DAG.
Un problema comune che potresti riscontrare è correlato a percorsi di importazione incompatibili. Per ulteriori informazioni su come risolvere questo problema di compatibilità, consulta la sezione relativa ai provider di backport nella guida Eseguire l'upgrade ad Airflow 2.0+.
Passaggio 3: assicurati che i DAG siano pronti per Airflow 2
Prima di trasferire i DAG al tuo ambiente Airflow gestito (seconda generazione), assicurati che:
I DAG vengano eseguiti correttamente e non ci siano problemi di compatibilità rimanenti.
I DAG utilizzino le istruzioni di importazione corrette.
Ad esempio, la nuova istruzione di importazione per
BigQueryCreateDataTransferOperatorpuò essere simile alla seguente:from airflow.providers.google.cloud.operators.bigquery_dts \ import BigQueryCreateDataTransferOperatorI DAG siano stati sottoposti all'upgrade per Airflow 2 . Questa modifica è compatibile con Airflow 1.10.14 e versioni successive.
Passaggio 4: 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.
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 pauseSostituisci:
COMPOSER_1_ENVcon il nome del tuo ambiente Airflow gestito (prima generazione legacy).PROJECT_IDcon l'ID progetto.COMPOSER_1_LOCATIONcon la regione in cui si trova l'ambiente.
Passaggio 5: salva lo snapshot dell'ambiente Airflow gestito (prima generazione legacy)
Console
Crea uno snapshot del tuo ambiente:
Nella Google Cloud console, vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome del tuo ambiente Airflow gestito (prima generazione legacy). Viene visualizzata la pagina Dettagli 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 Airflow gestito (prima generazione legacy), ma puoi selezionare una posizione diversa, se vuoi.
Attendi che Managed Airflow crei lo snapshot.
gcloud
Recupera l'URI del bucket dell'ambiente Airflow gestito (prima generazione legacy):
Esegui questo comando:
gcloud composer environments describe COMPOSER_1_ENV \ --location COMPOSER_1_LOCATION \ --format="value(config.dagGcsPrefix)"Sostituisci:
COMPOSER_1_ENVcon il nome del tuo ambiente Airflow gestito (prima generazione legacy).COMPOSER_1_LOCATIONcon la regione in cui si trova l'ambiente.
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/dagsings://us-central1-example-916807e1-bucket.
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_ENVcon il nome del tuo ambiente Airflow gestito (prima generazione legacy).COMPOSER_1_LOCATIONcon la regione in cui si trova l'ambiente Airflow gestito (prima generazione legacy).COMPOSER_1_SNAPSHOTS_FOLDERcon 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 posizione personalizzata, i service account di entrambi gli ambienti devono disporre delle autorizzazioni di lettura e scrittura per la posizione specificata.
Passaggio 6: crea un ambiente Airflow gestito (seconda generazione)
Crea un ambiente Airflow gestito (seconda 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 devi specificare gli override della configurazione e le variabili di ambiente, poiché li sostituirai in un secondo momento quando carichi lo snapshot dell'ambiente Airflow gestito (prima generazione legacy).
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 Airflow gestito (seconda generazione)
Console
Per caricare lo snapshot nell'ambiente Airflow gestito (seconda generazione):
Nella Google Cloud console, vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome del tuo ambiente Airflow gestito (seconda generazione). Viene visualizzata la pagina Dettagli ambiente.
Fai clic su Carica snapshot.
Nella finestra di dialogo Carica snapshot, fai clic su Sfoglia.
Seleziona la cartella contenente lo snapshot. Se utilizzi la località predefinita per questa guida, questa cartella si trova nel bucket dell'ambiente Managed Airflow (prima generazione legacy) nella cartella
/snapshotse 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.Fai clic su Carica e attendi che Managed Airflow carichi lo snapshot.
gcloud
Carica lo snapshot dell'ambiente Airflow gestito (prima generazione legacy) nell'ambiente Airflow gestito (seconda generazione):
gcloud composer environments snapshots load \
COMPOSER_2_ENV \
--location COMPOSER_2_LOCATION \
--snapshot-path "SNAPSHOT_PATH"
Sostituisci:
COMPOSER_2_ENVcon il nome del tuo ambiente Airflow gestito (seconda generazione).COMPOSER_2_LOCATIONcon la regione in cui si trova l'ambiente Airflow gestito (seconda generazione).SNAPSHOT_PATHcon 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.
Passaggio 8: riattiva i DAG nell'ambiente Airflow gestito (seconda 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_2_ENV \ --project PROJECT_ID \ --location COMPOSER_2_LOCATION \ --operation unpauseSostituisci:
COMPOSER_2_ENVcon il nome del tuo ambiente Airflow gestito (seconda generazione).PROJECT_IDcon l'ID progetto.COMPOSER_2_LOCATIONcon 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_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 riattivare i DAG utilizzando l' API REST di Airflow. Consulta anche Provare l'API nella documentazione di Airflow.
Passaggio 9: verifica la presenza di errori nei DAG
Nell'interfaccia web di Airflow, vai a DAG e verifica la presenza di errori di sintassi dei DAG segnalati.
Verifica che le esecuzioni dei DAG siano pianificate all'ora corretta.
Attendi che le esecuzioni dei DAG avvengano nell'ambiente Airflow gestito (seconda 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.
Se l'esecuzione di un DAG specifico non riesce, prova a risolvere i problemi del DAG finché non viene eseguito correttamente in Managed Airflow (seconda generazione).
Passaggio 10: monitora l'ambiente Airflow gestito (seconda generazione)
Dopo aver trasferito tutti i DAG e la configurazione all'ambiente Airflow gestito (seconda 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 (seconda 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
- Risoluzione dei problemi dei DAG
- Risoluzione dei problemi di creazione dell'ambiente
- Risoluzione dei problemi relativi agli aggiornamenti dell'ambiente
- Utilizzo dei pacchetti di backport