Managed Airflow (terza generazione) | Managed Airflow (seconda generazione) | Managed Airflow (prima generazione legacy)
Questa pagina spiega come trasferire DAG, dati e configurazione dagli ambienti Managed Airflow (prima generazione legacy) e Airflow 2 esistenti ad Airflow gestito (terza generazione) e Airflow 2, utilizzando gli snapshot.
Altre guide alla migrazione
| Da | A | Metodo | Guida |
|---|---|---|---|
| Managed Airflow (terza generazione), Airflow 2 | Airflow 3, Managed Airflow (terza generazione) | 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 Gen 1), Airflow 2 | Managed Airflow (terza generazione) | Affiancato, utilizzando gli snapshot | Questa guida |
| Managed Airflow (Legacy Gen 1), Airflow 2 | Managed Airflow (seconda generazione) | Affiancato, utilizzando gli snapshot | Guida alla migrazione con snapshot |
| Managed Airflow (Legacy Gen 1), Airflow 2 | Managed Airflow (seconda generazione) | Trasferimento manuale affiancato | Guida alla migrazione manuale |
| Managed Airflow (Legacy Gen 1), Airflow 1 | Airflow 2, Managed Airflow (seconda generazione) | Affiancato, utilizzando gli snapshot | Guida alla migrazione con snapshot |
| Managed Airflow (Legacy Gen 1), Airflow 1 | Airflow 2, Managed Airflow (seconda generazione) | 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 (prima generazione legacy) a Managed Airflow (terza generazione). Non è possibile eseguire l'upgrade in-place da Managed Airflow (prima generazione legacy) a Managed Airflow (terza generazione).
Consulta l'elenco delle differenze tra Managed Airflow (prima generazione legacy), Managed Airflow (seconda generazione) e Managed Airflow (terza generazione).
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.
Il numero totale di oggetti nelle cartelle
/dags,/pluginse/datanel bucket dell'ambiente deve essere inferiore a 100.000 per creare gli 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 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.
Assicurati che i DAG siano compatibili con Managed Airflow (terza generazione)
Assicurati che i DAG siano compatibili con Managed Airflow (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 Managed Airflow (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 Managed Airflow (terza generazione), il cluster dell'ambiente si trova nel progetto tenant. Assicurati che i DAG siano compatibili con questa modifica. In particolare,
KubernetesPodOperatori 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 pauseSostituisci:
COMPOSER_1_ENVcon il nome dell'ambiente Airflow gestito (prima generazione legacy).PROJECT_IDcon l'ID progetto.COMPOSER_1_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 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:
Nella Google Cloud console, vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome dell'ambiente Airflow gestito (prima generazione legacy). Si apre 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 dell'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 dell'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 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 poi 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):
Nella Google Cloud console, vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome dell'ambiente Airflow gestito (terza generazione). Si apre 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 Airflow gestito (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 (terza generazione):
gcloud composer environments snapshots load \
COMPOSER_3_ENV \
--location COMPOSER_3_LOCATION \
--snapshot-path "SNAPSHOT_PATH"
Sostituisci:
COMPOSER_3_ENVcon il nome dell'ambiente Airflow gestito (terza generazione).COMPOSER_3_LOCATIONcon la regione in cui si trova l'ambiente Airflow gestito (terza 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.
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 unpauseSostituisci:
COMPOSER_3_ENVcon il nome dell'ambiente Airflow gestito (terza generazione).PROJECT_IDcon l'ID progetto.COMPOSER_3_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_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
Nell'interfaccia web di Airflow, vai a DAG e verifica la presenza di errori di sintassi dei DAG segnalati.
Verifica che le esecuzioni DAG siano pianificate all'ora corretta.
Attendi che le esecuzioni DAG avvengano nell'ambiente Airflow gestito (terza generazione) e verifica se sono andate a buon fine. Se un'esecuzione 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 DAG per la stessa data e ora.
Se l'esecuzione di un DAG specifico non riesce, prova a risolvere il problema del DAG finché non viene eseguito correttamente in Managed Airflow (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 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
- Risoluzione dei problemi dei DAG
- Risoluzione dei problemi di creazione dell'ambiente
- Risoluzione dei problemi relativi agli aggiornamenti dell'ambiente