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

Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)

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

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 (Gen 2) a Managed Airflow (Gen 3). 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 Managed Airflow (2ª gen.).

  2. Crea un ambiente Managed Airflow (Gen 3) con una configurazione corrispondente a quella ottenuta.

    Poiché gli ambienti Managed Airflow (3ª gen.) hanno un'architettura diversa, alcuni parametri potrebbero essere modificati per corrispondere 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 Managed Airflow (Gen 2) uno alla volta. Solo i DAG che sono stati riattivati nell'ambiente Managed Airflow (Gen 2) verranno riattivati in un secondo momento.

  4. Salva uno snapshot dell'ambiente Managed Airflow (Gen 2) di origine. Lo snapshot viene salvato nella località predefinita per gli snapshot, ovvero nel bucket dell'ambiente Managed Airflow (Gen2).

  5. Carica lo snapshot nell'ambiente Managed Airflow (Gen 3).

    Lo script non verifica la compatibilità dei pacchetti PyPI personalizzati, delle variabili di ambiente e degli override delle opzioni di configurazione di Airflow con l'ambiente Managed Airflow (Gen 3).

    In caso di conflitti, la migrazione non va a buon fine dopo la creazione dell'ambiente Managed Airflow (Gen 3), durante il processo di caricamento dello snapshot. In questo caso, puoi modificare la configurazione del tuo ambiente Managed Airflow (Gen 2) per risolvere il conflitto oppure eseguire la migrazione senza lo script di migrazione e saltare il caricamento di pacchetti PyPI personalizzati, variabili di ambiente o override della configurazione Airflow quando carichi lo snapshot.

  6. Riattiva i DAG nell'ambiente Managed Airflow (Gen 3). 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 Managed Airflow (Gen 3). Non è possibile caricare lo snapshot in un ambiente Managed Airflow (Gen 3) esistente. Per farlo, puoi eseguire la migrazione utilizzando gli snapshot, senza utilizzare lo script di migrazione.

  • Lo script crea un ambiente Managed Airflow (Gen 3) solo nella stessa regione e progetto dell'ambiente Managed Airflow (Gen 2).

  • 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 (Gen 2) possono essere migrati 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 (Gen 2) versione 2.0.9 e successive.

  • Il tuo account richiede un ruolo IAM che possa creare ambienti, salvare snapshot e caricare snapshot.

  • 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, /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 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. Prendi in considerazione l'utilizzo di alternative come Cloud Storage per trasferire grandi volumi di dati.

Esegui la migrazione a Managed Airflow (Gen 3)

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

Controlla le differenze tra Managed Airflow (Gen 2) e Managed Airflow (Gen 3)

Consulta l'elenco delle differenze tra Managed Airflow (Gen 2) e Managed Airflow (Gen 3).

Assicurati che il tuo ambiente non utilizzi funzionalità non ancora disponibili in Managed Airflow (Gen 3) e di sapere come utilizzare e configurare le funzionalità specifiche di Managed Airflow (Gen 3).

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 nell'ambiente Managed Airflow (Gen 3) può essere diverso da quello nell'ambiente Managed Airflow (Gen 2). Ciò potrebbe influire sulla compatibilità dei tuoi DAG con Managed Airflow (Gen 3).

  • 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 KubernetesPodOperator ora vengono scalati indipendentemente dal tuo 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 Managed Airflow (Gen 2) è compatibile con Managed Airflow (Gen 3). Ti consigliamo di risolvere tutti i conflitti bloccanti segnalati da questo controllo prima di iniziare la migrazione.

Installare le dipendenze dello script

  • Lo script richiede Python versione 3.8 e successive.

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

Scarica lo script

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

Autorizzare in gcloud CLI

Autorizza in gcloud CLI:

gcloud auth login

Visualizzare l'anteprima dei parametri del nuovo ambiente

Prima di eseguire la migrazione, puoi visualizzare l'anteprima dei parametri dell'ambiente Managed Airflow (Gen 3). Puoi utilizzarlo per vedere come la configurazione dell'ambiente Managed Airflow (Gen 2) corrisponde a Managed Airflow (Gen 3).

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 del tuo ambiente Managed Airflow (Gen 2).
  • LOCATION: la regione in cui si trova l'ambiente Managed Airflow (Gen 2). L'ambiente Managed Airflow (Gen 3) verrà creato nella stessa regione.
  • COMPOSER_3_AIRFLOW_VERSION: la versione di Airflow dell'ambiente Managed Airflow (Gen 3). Questa versione deve essere uguale o successiva a quella dell'ambiente Managed Airflow (Gen 2) e deve essere una delle versioni disponibili in Managed Airflow (Gen 3).

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 Managed Airflow (Gen 2) di cui vuoi eseguire la migrazione sia integro.

Se l'ambiente non è integro, il processo di migrazione non andrà a buon fine dopo la creazione di un nuovo ambiente Managed Airflow (Gen 3) perché non sarà possibile creare uno snapshot.

Per saperne di più sui modi per controllare l'integrità dell'ambiente e del database, consulta Utilizzare la dashboard di monitoraggio.

Esegui 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 del tuo ambiente Managed Airflow (Gen 2).
  • LOCATION: la regione in cui si trova l'ambiente Managed Airflow (Gen 2). L'ambiente Managed Airflow (Gen 3) verrà creato nella stessa regione.
  • COMPOSER_3_AIRFLOW_VERSION: la versione di Airflow dell'ambiente Managed Airflow (Gen 3). Questa versione deve essere uguale o successiva a quella dell'ambiente Managed Airflow (Gen 2) e deve essere una delle versioni disponibili in Managed Airflow (Gen 3).

Controlla la presenza di errori DAG

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

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

  3. 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 (Gen 2); se lo fai, nell'ambiente Managed Airflow (Gen 2) si verifica un'esecuzione del DAG per la stessa ora e data.

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

Monitora l'ambiente Managed Airflow (Gen 3) per rilevare potenziali problemi, esecuzioni DAG non riuscite e l'integrità complessiva 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 2).

Passaggi successivi