Migrazione degli ambienti a Managed Airflow (Gen 3) (script di migrazione)

Managed Airflow (terza generazione) | Managed Airflow (seconda generazione) | Managed Airflow (prima generazione legacy)

Questa pagina spiega come eseguire la migrazione di DAG, dati e configurazione dall'ambiente Airflow gestito (seconda generazione) esistente a un nuovo ambiente Airflow gestito (terza generazione) utilizzando lo script di 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 Questa guida
Managed Airflow (seconda generazione) Managed Airflow (terza generazione) Affiancato, utilizzando gli snapshot Guida alla migrazione degli snapshot
Managed Airflow (legacy di prima generazione), Airflow 2 Managed Airflow (terza generazione) Affiancato, utilizzando gli snapshot Guida alla migrazione degli snapshot
Managed Airflow (legacy di prima generazione), Airflow 2 Managed Airflow (seconda generazione) Affiancato, utilizzando gli snapshot Guida alla migrazione degli 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 Guida alla migrazione degli snapshot
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

Informazioni sullo script di migrazione

Lo script di migrazione è uno script Python per le migrazioni affiancate che automatizza il processo di migrazione da Managed Airflow (seconda generazione) a Managed Airflow (terza generazione). Utilizza gli snapshot dell'ambiente per trasferire la configurazione dell'ambiente al nuovo ambiente.

Lo script esegue le seguenti azioni:

  1. Ottiene la configurazione dell'ambiente Airflow gestito (seconda generazione).

  2. Crea un ambiente Airflow gestito (terza generazione) con una configurazione che corrisponde a quella ottenuta.

    Poiché gli ambienti Airflow gestito (terza generazione) hanno un' architettura diversa, alcuni parametri potrebbero essere modificati per adattarsi alle differenze. Puoi anche modificare la maggior parte dei parametri dell'ambiente in un secondo momento.

  3. Mette in pausa tutti i DAG nell'ambiente Airflow gestito (seconda generazione) uno alla volta. Solo i DAG che sono stati riattivati nell'ambiente Airflow gestito (seconda generazione) verranno riattivati in un secondo momento.

  4. Salva uno snapshot dell'ambiente Airflow gestito (seconda generazione) di origine. Lo snapshot viene salvato nella posizione predefinita per gli snapshot, ovvero nel bucket dell'ambiente Airflow gestito (seconda generazione).

  5. Carica lo snapshot nell'ambiente Airflow gestito (terza generazione).

    Lo script non controlla la compatibilità dei pacchetti PyPI personalizzati, delle variabili di ambiente e degli override delle opzioni di configurazione di Airflow con l'ambiente Airflow gestito (terza generazione).

    In caso di conflitti, la migrazione non riesce dopo la creazione dell'ambiente Airflow gestito (terza generazione), durante il processo di caricamento dello snapshot. In questo caso, puoi modificare la configurazione dell'ambiente Airflow gestito (seconda generazione) per risolvere il conflitto oppure eseguire la migrazione senza lo script di migrazione e saltare il caricamento dei pacchetti PyPI personalizzati, delle variabili di ambiente o degli override della configurazione di Airflow quando carichi lo snapshot.

  6. Riattiva i DAG nell'ambiente Airflow gestito (terza generazione). Se alcuni DAG erano già in pausa prima dell'esecuzione dello script, rimarranno in pausa.

Lo script presenta le seguenti limitazioni:

  • Lo script crea sempre un nuovo ambiente Airflow gestito (terza generazione). Non è possibile caricare lo snapshot in un ambiente Airflow gestito (terza generazione) esistente. Per farlo, puoi eseguire la migrazione utilizzando gli snapshot, senza utilizzare lo script di migrazione.

  • Lo script crea un ambiente Airflow gestito (terza generazione) solo nella stessa regione e nello stesso progetto dell'ambiente Airflow gestito (seconda generazione).

  • Puoi caricare gli snapshot solo nella stessa versione o in una versione successiva di Airflow. Ad esempio, non puoi caricare uno snapshot da Airflow 2.10.2 ad Airflow 2.9.3.

  • Solo gli ambienti Managed Airflow (seconda generazione) possono essere sottoposti a migrazione con lo script di migrazione.

Prima di iniziare

  • Poiché lo script di migrazione crea un ambiente, quindi salva e carica uno snapshot, il processo di migrazione può richiedere più di un'ora.

  • Lo script utilizza gli snapshot. Gli snapshot sono supportati

  • in Managed Airflow (seconda generazione) versione 2.0.9 e versioni successive.

  • Il tuo account richiede un ruolo IAM in grado di creare ambienti, salvare snapshot e caricare snapshot.

  • La dimensione massima del database Airflow che supporta gli snapshot è di 20 GB. Se il database dell'ambiente occupa più di 20 GB, riduci le dimensioni del database Airflow.

  • Il numero totale di oggetti nelle cartelle /dags, /plugins e /data nel 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 base alle linee guida di Airflow. Il trasferimento di file di grandi dimensioni o di un numero elevato di file tramite 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.

Eseguire la migrazione a Managed Airflow (terza generazione)

Questa sezione descrive il processo di migrazione utilizzando lo script di migrazione.

Controllare le differenze tra Managed Airflow (seconda generazione) e Managed Airflow (terza generazione)

Consulta l'elenco delle differenze tra Managed Airflow (seconda generazione) e Managed Airflow (terza generazione).

Assicurati che il tuo ambiente non utilizzi funzionalità non ancora disponibili in Managed Airflow (terza generazione) e di conoscere l'utilizzo e la configurazione delle funzionalità specifiche di Managed Airflow (terza generazione).

Assicurarsi 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 nell'ambiente Airflow gestito (terza generazione) può essere diverso da quello dell'ambiente Airflow gestito (seconda generazione). Ciò potrebbe influire sulla compatibilità dei DAG con Managed Airflow (terza generazione).

  • 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, KubernetesPodOperator i workload ora vengono scalati indipendentemente da l'ambiente e non è possibile utilizzare le configurazioni di affinità dei pod.

Verificare la compatibilità della configurazione

Puoi eseguire un controllo dell'upgrade per verificare se la configurazione dell'ambiente Airflow gestito (seconda generazione) è compatibile con Airflow gestito (terza generazione). Ti consigliamo di risolvere tutti i conflitti bloccanti segnalati da questo controllo prima di avviare la migrazione.

Installare le dipendenze dello script

  • Lo script richiede Python versione 3.8 e versioni successive.

  • Lo script di migrazione utilizza le utilità gcloud CLI e curl. Assicurati che entrambe le utilità siano installate sul tuo computer.

Scaricare lo script

Scarica lo script di migrazione (composer_migrate.py) dal suo repository su GitHub.

Autorizzare in gcloud CLI

Autorizza in gcloud CLI:

gcloud auth login

Visualizzare l'anteprima dei parametri del nuovo ambiente

Puoi visualizzare l'anteprima dei parametri dell'ambiente Airflow gestito (terza generazione) prima della migrazione. Puoi utilizzarlo per vedere come la configurazione dell'ambiente Airflow gestito (seconda generazione) corrisponde ad Airflow gestito (terza generazione).

Gli override delle opzioni di configurazione di Airflow, i pacchetti PyPI personalizzati e le variabili di ambiente vengono caricati dallo snapshot dell'ambiente e non vengono visualizzati nell'anteprima.

Espandi

Esegui questo comando:

python3 composer_migrate.py \
    --project PROJECT_ID \
    --location LOCATION \
    --source_environment COMPOSER_2_ENV \
    --target_environment COMPOSER_3_ENV \
    --target_airflow_version COMPOSER_3_AIRFLOW_VERSION \
    --dry_run

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto .
  • COMPOSER_2_ENV: il nome dell'ambiente Airflow gestito (seconda generazione).
  • LOCATION: la regione in cui si trova l'ambiente Airflow gestito (seconda generazione). L'ambiente Airflow gestito (terza generazione) verrà creato nella stessa regione.
  • COMPOSER_3_AIRFLOW_VERSION: la versione di Airflow dell'ambiente Airflow gestito (terza generazione). Questa versione deve essere la stessa o una versione successiva rispetto a quella dell' ambiente Airflow gestito (seconda generazione) e deve essere una delle versioni disponibili in Airflow gestito (terza generazione).

Esempio:

python3 composer_migrate.py \
    --project example-project \
    --location us-central1 \
    --source_environment example-composer-2-environment \
    --target_environment example-composer-3-environment \
    --target_airflow_version 2.10.2

Controllare l'integrità dell'ambiente

Assicurati che l'ambiente Airflow gestito (seconda generazione) di cui vuoi eseguire la migrazione sia integro.

Se l'ambiente non è integro, il processo di migrazione non riuscirà dopo la creazione di un nuovo ambiente Airflow gestito (terza generazione) perché non sarà possibile creare uno snapshot.

Per ulteriori informazioni su come controllare l'integrità dell'ambiente e del database, consulta la sezione Utilizzare la dashboard di monitoraggio.

Eseguire lo script di migrazione

Esegui questo comando:

python3 composer_migrate.py \
    --project PROJECT_ID \
    --location LOCATION \
    --source_environment COMPOSER_2_ENV \
    --target_environment COMPOSER_3_ENV \
    --target_airflow_version COMPOSER_3_AIRFLOW_VERSION

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto .
  • COMPOSER_2_ENV: il nome dell'ambiente Airflow gestito (seconda generazione).
  • LOCATION: la regione in cui si trova l'ambiente Airflow gestito (seconda generazione). L'ambiente Airflow gestito (terza generazione) verrà creato nella stessa regione.
  • COMPOSER_3_AIRFLOW_VERSION: la versione di Airflow dell'ambiente Airflow gestito (terza generazione). Questa versione deve essere la stessa o una versione successiva rispetto a quella dell' ambiente Airflow gestito (seconda generazione) e deve essere una delle versioni disponibili in Airflow gestito (terza generazione).

Verificare la presenza di errori nei DAG

  1. Nell'interfaccia web di Airflow, vai a DAG e controlla la presenza di errori di sintassi dei DAG segnalati.

  2. Verifica che le esecuzioni DAG siano pianificate all'ora corretta.

  3. Attendi l'esecuzione dei DAG nell'ambiente Airflow gestito (terza generazione) e verifica se sono andati a buon fine. Se un'esecuzione DAG è andata a buon fine, non riattivarla nell'ambiente Airflow gestito (seconda generazione). In caso contrario, verrà eseguita un'esecuzione DAG per la stessa data e ora nell'ambiente Airflow gestito (seconda generazione).

  4. 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).

Monitorare l'ambiente Airflow gestito (terza generazione)

Monitora l'ambiente Airflow gestito (terza generazione) per rilevare 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 (seconda generazione).

Passaggi successivi