Airflow gestito (terza generazione) | Airflow gestito (seconda generazione) | Airflow gestito (prima generazione legacy)
Questa pagina spiega come trasferire DAG, dati e configurazione dagli ambienti Airflow 2 e Airflow gestito (prima generazione legacy) esistenti ad Airflow 2 e Airflow gestito (terza generazione), utilizzando gli snapshot.
Altre guide alla migrazione
| Da | A | Metodo | Guida |
|---|---|---|---|
| Airflow 2, Airflow gestito (terza generazione) | Airflow 3, Airflow gestito (terza generazione) | Trasferimento manuale affiancato | Guida alla migrazione manuale |
| Airflow gestito (seconda generazione) | Airflow gestito (terza generazione) | Affiancato, utilizzando lo script di migrazione | Guida alla migrazione con script |
| Airflow gestito (seconda generazione) | Airflow gestito (terza generazione) | Affiancato, utilizzando gli snapshot | Guida alla migrazione con snapshot |
| Airflow 2, Airflow gestito (prima generazione legacy) | Airflow gestito (terza generazione) | Affiancato, utilizzando gli snapshot | Questa guida |
| Airflow 2, Airflow gestito (prima generazione legacy) | Airflow gestito (seconda generazione) | Affiancato, utilizzando gli snapshot | Guida alla migrazione con snapshot |
| Airflow 2, Airflow gestito (prima generazione legacy) | Airflow gestito (seconda generazione) | Trasferimento manuale affiancato | Guida alla migrazione manuale |
| Airflow 1, Airflow gestito (prima generazione legacy) | Airflow 2, Airflow gestito (seconda generazione) | Affiancato, utilizzando gli snapshot | Guida alla migrazione con snapshot |
| Airflow 1, Airflow gestito (prima generazione legacy) | Airflow 2, Airflow gestito (seconda generazione) | Trasferimento manuale affiancato | Guida alla migrazione manuale |
| Airflow 1, Airflow gestito (prima generazione legacy) | Airflow 2, Airflow gestito (prima generazione legacy) | Trasferimento manuale affiancato | Guida alla migrazione manuale |
Prima di iniziare
Airflow gestito supporta la migrazione affiancata da Airflow gestito (prima generazione legacy) ad Airflow gestito (terza generazione). Non è possibile eseguire l'upgrade in-place da Airflow gestito (prima generazione legacy) ad Airflow gestito (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.
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 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 DAG siano compatibili con Airflow gestito (terza generazione)
Assicurati che i DAG siano compatibili con Airflow gestito (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 Airflow gestito (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 Airflow gestito (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:
Nellaconsole, vai alla pagina Ambienti. Google Cloud
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 Airflow gestito 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 in un secondo momento 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):
Nellaconsole, vai alla pagina Ambienti. Google Cloud
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 Airflow gestito 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 dei DAG siano pianificate all'ora corretta.
Attendi che le esecuzioni dei DAG avvengano nell'ambiente Airflow gestito (terza 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 va a buon fine, prova a risolvere il problema del DAG finché non viene eseguito correttamente in Airflow gestito (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 di 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