Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)
Questa pagina spiega come trasferire DAG, dati e configurazione dagli ambienti Managed Airflow (legacy di prima generazione) e Airflow 2 esistenti a Managed Airflow (di terza generazione) e Airflow 2 utilizzando gli snapshot.
Altre guide alla migrazione
| Da | A | Metodo | Guida |
|---|---|---|---|
| Managed Airflow (Gen 3), Airflow 2 | Managed Airflow (Gen 3), Airflow 3 | Trasferimento manuale affiancato | Guida alla migrazione manuale |
| Managed Airflow (Gen 2) | Managed Airflow (Gen 3) | Affiancata, utilizzando lo script di migrazione | Guida alla migrazione degli script |
| Managed Airflow (Gen 2) | Managed Airflow (Gen 3) | Affiancate, utilizzando gli snapshot | Guida alla migrazione degli snapshot |
| Managed Airflow (legacy Gen 1), Airflow 2 | Managed Airflow (Gen 3) | Affiancate, utilizzando gli snapshot | Questa guida |
| Managed Airflow (legacy Gen 1), Airflow 2 | Managed Airflow (Gen 2) | Affiancate, utilizzando gli snapshot | Guida alla migrazione degli snapshot |
| Managed Airflow (legacy Gen 1), Airflow 2 | Managed Airflow (Gen 2) | Trasferimento manuale affiancato | Guida alla migrazione manuale |
| Managed Airflow (legacy Gen 1), Airflow 1 | Managed Airflow (Gen 2), Airflow 2 | Affiancate, utilizzando gli snapshot | Guida alla migrazione degli snapshot |
| Managed Airflow (legacy Gen 1), Airflow 1 | Managed Airflow (Gen 2), Airflow 2 | 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 (legacy di prima generazione) a Managed Airflow (di terza generazione). Non è possibile eseguire l'upgrade da Managed Airflow (legacy di 1ª gen.) a Managed Airflow (di 3ª gen.) sul posto.
Consulta l'elenco delle differenze tra Managed Airflow (legacy di prima generazione), Managed Airflow (di seconda generazione) e Managed Airflow (di terza generazione).
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,/pluginse/datanel 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. Valuta la possibilità di utilizzare alternative come Cloud Storage per trasferire grandi volumi di dati.
Assicurati che i tuoi DAG siano compatibili con Managed Airflow (Gen 3)
Assicurati che i tuoi DAG siano compatibili con Managed Airflow (Gen 3) seguendo questi suggerimenti:
L'[elenco dei pacchetti][cc-versions] nell'ambiente Managed Airflow (Gen 3) può essere diverso da quello nell'ambiente Managed Airflow (Gen 1 legacy). Ciò potrebbe influire sulla compatibilità dei tuoi DAG con Managed Airflow (Gen 3).
Managed Airflow carica gli override della configurazione, le variabili di ambiente e i pacchetti PyPI dallo snapshot dell'ambiente Managed Airflow (legacy di prima generazione) in Managed Airflow (di terza generazione) senza modificarli o adattarli per la compatibilità. Se i pacchetti PyPI personalizzati causano conflitti di dipendenza, puoi saltare la loro installazione quando carichi lo snapshot.
In Managed Airflow (Gen 3), il cluster dell'ambiente si trova nel progetto tenant. Assicurati che i tuoi DAG siano compatibili con questa modifica. In particolare, i workload
KubernetesPodOperatorora vengono scalati indipendentemente dall'ambiente e non è possibile utilizzare le configurazioni di affinità dei pod.In Managed Airflow (Gen 3), non è possibile accedere direttamente al database Airflow. Assicurati che i tuoi DAG siano compatibili con questa modifica.
Mettere in pausa i DAG nell'ambiente Managed Airflow (legacy di prima generazione)
Per evitare esecuzioni DAG duplicate, metti in pausa tutti i DAG nell'ambiente Managed Airflow (Legacy Gen 1)
prima di salvare lo snapshot. Ignora il DAG di monitoraggio dell'attività (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 tutti i DAG manualmente.
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 Managed Airflow (legacy di prima generazione).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 sospensione di un numero elevato di DAG, puoi utilizzare i seguenti comandi dell'interfaccia a riga di comando di 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.
Salva lo snapshot dell'ambiente Managed Airflow (legacy di prima generazione)
Console
Crea uno snapshot del tuo ambiente:
Nella console Google Cloud , vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome del tuo ambiente Managed Airflow (Legacy Gen 1). 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 Managed Airflow (Legacy Gen 1), ma puoi selezionare una posizione diversa, se vuoi.
Attendi che Managed Airflow crei lo snapshot.
gcloud
Recupera l'URI del bucket del tuo ambiente Managed Airflow (1ª gen. 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 Managed Airflow (legacy di prima gen.)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 Managed Airflow (legacy di prima generazione).Ad esempio, modifica
gs://us-central1-example-916807e1-bucket/dagsings://us-central1-example-916807e1-bucket.
Crea uno snapshot dell'ambiente Managed Airflow (legacy di prima generazione):
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 Managed Airflow (legacy di prima generazione).COMPOSER_1_LOCATIONcon la regione in cui si trova l'ambiente Managed Airflow (Legacy Gen 1).COMPOSER_1_SNAPSHOTS_FOLDERcon l'URI del bucket dell'ambiente Managed Airflow (legacy di prima generazione). In questa guida, salvi lo snapshot nel bucket dell'ambiente Managed Airflow (legacy Gen 1), 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 qualsiasi posizione disponibile per i service account di entrambi gli ambienti.
Crea un ambiente Managed Airflow (Gen 3)
Crea un ambiente Managed Airflow (Gen 3). Puoi iniziare con un preset dell'ambiente che corrisponda alle richieste di risorse previste e in seguito scalare e ottimizzare ulteriormente l'ambiente.
Non è necessario specificare gli override della configurazione e le variabili di ambiente perché li sostituisci in un secondo momento quando carichi lo snapshot dell'ambiente Managed Airflow (Legacy Gen 1).
Carica lo snapshot nell'ambiente Managed Airflow (Gen 3)
Console
Per caricare lo snapshot nell'ambiente Managed Airflow (Gen 3):
Nella console Google Cloud , vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome dell'ambiente Managed Airflow (Gen 3). Viene visualizzata la pagina Dettagli 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 località predefinita per questa guida, questa cartella si trova nel bucket dell'ambiente Managed Airflow (Legacy Gen 1) 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 Managed Airflow (legacy di prima generazione) nell'ambiente Managed Airflow (di 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 Managed Airflow (Gen 3).COMPOSER_3_LOCATIONcon la regione in cui si trova l'ambiente Managed Airflow (Gen 3).SNAPSHOT_PATHcon l'URI del bucket dell'ambiente Managed Airflow (1ª gen. 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 Managed Airflow (Gen 3)
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 Managed Airflow (Gen 3).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 della CLI 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 riattivarli utilizzando l'API REST di Airflow. Consulta anche la sezione Prova l'API nella documentazione di Airflow.
Controlla la presenza di errori DAG
Nell'interfaccia web di Airflow, vai a DAG e verifica la presenza di errori di sintassi dei DAG segnalati.
Controlla che le esecuzioni del DAG siano pianificate all'ora corretta.
Attendi l'esecuzione dei DAG nell'ambiente Managed Airflow (Gen 3) e verifica se sono andati a buon fine. Se l'esecuzione di un DAG è riuscita, non riattivarla nell'ambiente Managed Airflow (Legacy Gen 1); in caso contrario, nell'ambiente Managed Airflow (Legacy Gen 1) si verifica un'esecuzione del DAG per la stessa ora e data.
Se un'esecuzione di DAG specifica non va a buon fine, prova a risolvere i problemi relativi al DAG finché non viene eseguita correttamente in Managed Airflow (Gen 3).
Monitora l'ambiente Managed Airflow (Gen 3)
Dopo aver trasferito tutti i DAG e la configurazione all'ambiente Managed Airflow (Gen 3), monitoralo per rilevare potenziali problemi, esecuzioni di DAG non riuscite e l'integrità generale dell'ambiente.
Se l'ambiente Managed Airflow (Gen 3) funziona senza problemi per un periodo di tempo sufficiente, valuta la possibilità di eliminare l'ambiente Managed Airflow (Gen 1 legacy).
Passaggi successivi
- Risoluzione dei problemi dei DAG
- Risoluzione dei problemi di creazione dell'ambiente
- Risoluzione dei problemi relativi agli aggiornamenti dell'ambiente