Esegui la migrazione degli ambienti a Cloud Composer 2 (da Airflow 1)

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Questa pagina spiega come trasferire i DAG, i dati e la configurazione dagli ambienti Cloud Composer 1, Airflow 1 a Cloud Composer 2, Airflow 2.

Altre guide alla migrazione

Da A Metodo Guida
Cloud Composer 1, Airflow 2 Cloud Composer 2, Airflow 2 Affiancato, utilizzando gli snapshot Guida alla migrazione (snapshot)
Cloud Composer 1, Airflow 1 Cloud Composer 2, Airflow 2 Affiancato, utilizzando gli snapshot Guida alla migrazione (snapshot)
Cloud Composer 1, Airflow 2 Cloud Composer 2, Airflow 2 Trasferimento manuale fianco a fianco Guida alla migrazione manuale
Cloud Composer 1, Airflow 1 Cloud Composer 2, Airflow 2 Trasferimento manuale fianco a fianco Questa guida (migrazione manuale)
Flusso d'aria 1 Flusso d'aria 2 Trasferimento manuale fianco a fianco Guida alla migrazione manuale

Prima di iniziare

  • Poiché Cloud Composer 2 utilizza Airflow 2, la migrazione include passando la configurazione dei DAG e dell'ambiente ad Airflow 2. Controllo la guida alla migrazione da Airflow 1 ad Airflow 2 per informazioni sulle modifiche che interrompono le modifiche tra Airflow 1 e Airflow 2 in con Cloud Composer.

  • In questa guida, combinerai la migrazione ad Airflow 2 e la migrazione a Cloud Composer 2 in un'unica procedura di migrazione. In questo modo, non è necessario per eseguire la migrazione a un ambiente Cloud Composer 1 con Airflow 2 prima che esegue la migrazione a Cloud Composer 2.

Passaggio 1: esegui l'upgrade ad Airflow 1.10.15

Se il tuo ambiente utilizza una versione Airflow precedente alla 1.10.15, eseguire l'upgrade dell'ambiente a un Versione di Cloud Composer che utilizza Airflow 1.10.15.

Passaggio 2: controlla la compatibilità con Airflow 2

Per verificare la presenza di potenziali conflitti con Airflow 2, utilizza gli script di controllo dell'upgrade forniti da Airflow nell'ambiente Airflow 1.10.15 esistente.

gcloud

  1. Esegui i controlli dell'upgrade tramite gcloud composer environments run . Alcuni controlli dell'upgrade pertinenti per Airflow autonomo Le versioni 1.10.15 non sono rilevanti per Cloud Composer. Le seguenti esclude questi controlli.

    gcloud composer environments run \
        COMPOSER_1_ENV  \
        --location=COMPOSER_1_LOCATION \
        upgrade_check \
        -- --ignore VersionCheckRule --ignore LoggingConfigurationRule \
        --ignore PodTemplateFileRule --ignore SendGridEmailerMovedRule
    

    Sostituisci:

    • COMPOSER_1_ENV con il nome del tuo ambiente Airflow 1.10.15.
    • COMPOSER_1_LOCATION con la regione in cui si trova l'ambiente.
  2. Verifica l'output del comando. Report di potenziali script di controllo degli aggiornamenti problemi di compatibilità negli ambienti esistenti.

  3. Implementare altre modifiche ai DAG, come descritto in Upgrade a Guida di Airflow 2.0+, nella sezione relativa eseguire l'upgrade dei DAG.

Passaggio 3: recupera l'elenco degli override della configurazione, dei pacchetti PyPI personalizzati e delle variabili di ambiente

Console

Ottieni l'elenco della configurazione del tuo ambiente Cloud Composer 1 override, pacchetti PyPI personalizzati e variabili di ambiente:

  1. Vai alla pagina Ambienti nella console Google Cloud:

    Vai ad Ambienti

  2. Seleziona il tuo ambiente Cloud Composer 1.

  3. Visualizza le variabili di ambiente nella scheda Variabili di ambiente.

  4. Visualizza gli override della configurazione nella Schede Override delle configurazioni di Airflow.

  5. Visualizza i pacchetti PyPI personalizzati nella scheda Pacchetti PyPI.

gcloud

Per ottenere l'elenco delle variabili di ambiente, esegui:

gcloud composer environments describe \
    COMPOSER_1_ENV \
    --location COMPOSER_1_LOCATION \
    --format="value(config.softwareConfig.envVariables)"

Per ottenere l'elenco degli override della configurazione Airflow dell'ambiente, esegui:

gcloud composer environments describe \
    COMPOSER_1_ENV \
    --location COMPOSER_1_LOCATION \
    --format="value(config.softwareConfig.airflowConfigOverrides)"

Per ottenere l'elenco dei pacchetti PyPI personalizzati, esegui:

gcloud composer environments describe \
    COMPOSER_1_ENV \
    --location COMPOSER_1_LOCATION \
    --format="value(config.softwareConfig.pypiPackages)"

Sostituisci:

  • COMPOSER_1_ENV con il nome del tuo ambiente Cloud Composer 1.
  • COMPOSER_1_LOCATION con la regione in cui dell'ambiente Cloud Composer 1.

Terraform

Ignora questo passaggio. La configurazione del tuo ambiente Cloud Composer 1 è già elenca gli override della configurazione, i pacchetti PyPI personalizzati e l'ambiente variabili per il tuo ambiente.

Passaggio 4: crea un ambiente Cloud Composer 2

In questo passaggio, crea un ambiente Cloud Composer 2. Puoi inizia con una preimpostazione di ambiente che corrisponde alle tue richieste di risorse previste per poi scalare e ottimizzare il tuo ambiente in un secondo momento. ulteriormente.

Console

Creare un ambiente Cloud Composer 2 e Specifica gli override della configurazione e le variabili di ambiente.

In alternativa, puoi eseguire l'override di Airflow configurazioni e le variabili di ambiente dopo per la creazione di un ambiente.

Alcune opzioni di configurazione di Airflow 1 utilizzano un nome diverso in Airflow 2. Per ulteriori informazioni, vedi Modifiche alla configurazione.

gcloud

Creare un ambiente Cloud Composer 2 e Specifica gli override della configurazione e le variabili di ambiente.

In alternativa, puoi eseguire l'override di Airflow configurazioni e le variabili di ambiente dopo per la creazione di un ambiente.

Alcune opzioni di configurazione di Airflow 1 utilizzano un nome diverso in Airflow 2. Per ulteriori informazioni, vedi Modifiche alla configurazione.

Terraform

Creare un ambiente Cloud Composer 2 basato sulla configurazione del Ambiente Cloud Composer 1:

  1. Copia la configurazione dell'ambiente Cloud Composer 1.
  2. Modifica il nome dell'ambiente.
  3. Usa il provider google-beta:

    resource "google_composer_environment" "example_environment_composer_2" {
      provider = google-beta
      # ...
    }
    
  4. Specifica un'immagine di Cloud Composer 2 nel blocco config.software_config:

    software_config {
      image_version = "composer-2.8.6-airflow-2.7.3"
      # ...
    }
    
  5. Se non è già impostato, specifica override della configurazione e variabili di ambiente.

  6. Specifica i pacchetti PyPI personalizzati nel blocco config.software_config.pypi_packages:

    software_config {
    
      # ...
    
      pypi_packages = {
        numpy = ""
        scipy = ">=1.1.0"
      }
    
    }
    

Passaggio 5: installa i pacchetti PyPI nell'ambiente Cloud Composer 2

Dopo aver creato l'ambiente Cloud Composer 2, installa PyPI personalizzato pacchetti.

Console

  1. Vai alla pagina Ambienti nella console Google Cloud:

    Vai ad Ambienti

  2. Seleziona il tuo ambiente Cloud Composer 2.

  3. Vai alla scheda Pacchetti PyPI e fai clic su Modifica.

  4. Copia i requisiti del pacchetto PyPI dal tuo ambiente Cloud Composer 1. Fai clic su Salva e attendi che l'ambiente venga aggiornato.

gcloud

  1. Crea un file requirements.txt con l'elenco dei pacchetti PyPI personalizzati:

      numpy
      scipy>=1.1.0
    
  2. Aggiorna l'ambiente e passa il file requirements.txt nel file :to il comando --update-pypi-packages-from-file:

    gcloud composer environments update COMPOSER_2_ENV \
      --location COMPOSER_2_LOCATION  \
      --update-pypi-packages-from-file requirements.txt
    

    Sostituisci:

    • COMPOSER_2_ENV con il nome del tuo ambiente Cloud Composer 2.
    • COMPOSER_2_LOCATION con la regione in cui dell'ambiente Cloud Composer 2.

Terraform

Ignora questo passaggio. Hai già installato i pacchetti PyPI personalizzati al momento della creazione dell'ambiente.

Passaggio 6: trasferisci variabili e pool

Airflow supporta l'esportazione di variabili e pool in file JSON. Puoi quindi importa questi file nel tuo ambiente Cloud Composer 2.

I comandi dell'interfaccia a riga di comando di Airflow utilizzati in questo passaggio operano sui file locali in Airflow worker. Per caricare o scaricare i file, utilizza la cartella /data nell' bucket Cloud Storage del tuo ambiente. Questa cartella si sincronizza con Directory /home/airflow/gcs/data/ nei worker di Airflow. Nell'interfaccia a riga di comando di Airflow specifica /home/airflow/gcs/data/ nel parametro FILEPATH.

gcloud

  1. Esporta variabili dall'ambiente Cloud Composer 1:

    gcloud composer environments run \
        COMPOSER_1_ENV \
        --location COMPOSER_1_LOCATION \
         variables -- -e /home/airflow/gcs/data/variables.json
    

    Sostituisci:

    • COMPOSER_1_ENV con il nome del tuo ambiente Cloud Composer 1.
    • COMPOSER_1_LOCATION con la regione in cui dell'ambiente Cloud Composer 1.
  2. Esporta i pool dal tuo ambiente Cloud Composer 1:

    gcloud composer environments run COMPOSER_1_ENV \
        --location COMPOSER_1_LOCATION \
         pool -- -e /home/airflow/gcs/data/pools.json
    

    Sostituisci:

    • COMPOSER_1_ENV con il nome del tuo ambiente Cloud Composer 1.
    • COMPOSER_1_LOCATION con la regione in cui dell'ambiente Cloud Composer 1.
  3. Recupera l'URI del bucket dell'ambiente Cloud Composer 2.

    1. Esegui questo comando:

      gcloud composer environments describe COMPOSER_2_ENV \
          --location COMPOSER_2_LOCATION \
           --format="value(config.dagGcsPrefix)"
      

      Sostituisci:

      • COMPOSER_2_ENV con il nome del tuo Cloud Composer 2 completamente gestito di Google Cloud.
      • COMPOSER_2_LOCATION con la regione in cui si trova l'ambiente in cui viene localizzato.
    2. Nell'output, rimuovi la cartella /dags. Il risultato è l'URI del bucket dell'ambiente Cloud Composer 2.

      Ad esempio, modifica gs://us-central1-example-916807e1-bucket/dags a gs://us-central1-example-916807e1-bucket.

  4. Trasferisci file JSON con variabili e pool in Cloud Composer 2 questo ambiente:

    gcloud composer environments storage data export \
        --destination=COMPOSER_2_BUCKET/data \
        --environment=COMPOSER_1_ENV \
        --location=COMPOSER_1_LOCATION \
        --source=variables.json
    
    gcloud composer environments storage data export \
        --destination=COMPOSER_2_BUCKET/data \
        --environment=COMPOSER_1_ENV \
        --location=COMPOSER_1_LOCATION \
        --source=pools.json
    

    Sostituisci:

    • COMPOSER_2_BUCKET con l'URI di Cloud Composer 2 del bucket di ambiente, ottenuto nel passaggio precedente.
    • COMPOSER_1_ENV con il nome del tuo ambiente Cloud Composer 1.
    • COMPOSER_1_LOCATION con la regione in cui dell'ambiente Cloud Composer 1.
  5. Importa variabili e pool in Cloud Composer 2:

    gcloud composer environments run \
        COMPOSER_2_ENV \
        --location COMPOSER_2_LOCATION \
        variables import \
        -- /home/airflow/gcs/data/variables.json
    
    gcloud composer environments run \
        COMPOSER_2_ENV \
        --location COMPOSER_2_LOCATION \
        pools import \
        -- /home/airflow/gcs/data/pools.json
    
  6. Verifica che le variabili e i pool siano importati:

    gcloud composer environments run \
        COMPOSER_2_ENV \
        --location COMPOSER_2_LOCATION \
        variables list
    
    gcloud composer environments run \
        COMPOSER_2_ENV \
        --location COMPOSER_2_LOCATION \
        pools list
    
  7. Rimuovi i file JSON dai bucket:

    gcloud composer environments storage data delete \
        variables.json \
        --environment=COMPOSER_2_ENV \
        --location=COMPOSER_2_LOCATION
    
    gcloud composer environments storage data delete \
        pools.json \
        --environment=COMPOSER_2_ENV \
        --location=COMPOSER_2_LOCATION
    
    gcloud composer environments storage data delete \
        variables.json \
        --environment=COMPOSER_1_ENV \
        --location=COMPOSER_1_LOCATION
    
    gcloud composer environments storage data delete \
        pools.json \
        --environment=COMPOSER_1_ENV \
        --location=COMPOSER_1_LOCATION
    

Passaggio 7: trasferisci altri dati dal bucket dell'ambiente Cloud Composer 1

Trasferisci plug-in e altri dati dal bucket dell'ambiente Cloud Composer 1.

gcloud

  1. Trasferisci i plug-in sul tuo nell'ambiente Cloud Composer 2. Per farlo, esporta i plug-in del bucket dell'ambiente Cloud Composer 1 nella cartella /plugins del tuo Bucket dell'ambiente Cloud Composer 2:

    gcloud composer environments storage plugins export \
        --destination=COMPOSER_2_BUCKET/plugins \
        --environment=COMPOSER_1_ENV \
        --location=COMPOSER_1_LOCATION
    
  2. Verifica che la cartella /plugins sia stata importata correttamente:

    gcloud composer environments storage plugins list \
        --environment=COMPOSER_2_ENV \
        --location=COMPOSER_2_LOCATION
    
  3. Esporta la cartella /data dal tuo ambiente Cloud Composer 1 all'ambiente Ambiente Airflow 2:

    gcloud composer environments storage data export \
        --destination=COMPOSER_2_BUCKET/data \
        --environment=COMPOSER_1_ENV \
        --location=COMPOSER_1_LOCATION
    
  4. Verifica che la cartella /data sia stata importata correttamente:

    gcloud composer environments storage data list \
        --environment=COMPOSER_2_ENV \
        --location=COMPOSER_2_LOCATION
    

Passaggio 8: trasferisci le connessioni

Airflow 1.10.15 non supporta l'esportazione delle connessioni. Per trasferire le connessioni, creare manualmente le connessioni nel tuo ambiente Cloud Composer 2 dal nell'ambiente Cloud Composer 1.

gcloud

  1. Per ottenere un elenco delle connessioni nel tuo ambiente Cloud Composer 1, esegui:

    gcloud composer environments run COMPOSER_1_ENV \
        --location COMPOSER_1_LOCATION \
         connections -- --list
    
  2. Per creare una nuova connessione nell'ambiente Cloud Composer 2, esegui connections Comando dell'interfaccia a riga di comando di Airflow tramite gcloud. Ad esempio:

    gcloud composer environments run \
        COMPOSER_2_ENV \
        --location COMPOSER_2_LOCATION \
        connections add \
        -- --conn-host postgres.example.com \
        --conn-port 5432 \
        --conn-type postgres \
        --conn-login example_user \
        --conn-password example_password \
        --conn-description "Example connection" \
        example_connection
    

Passaggio 9: trasferisci gli account utente

Questo passaggio spiega come trasferire gli utenti creandoli manualmente.

Airflow 1.10.15 non supporta l'esportazione degli utenti. Per trasferire utenti e connessioni, crea manualmente nuovi account utente nel tuo ambiente Airflow 2 dall'ambiente Cloud Composer 1.

UI di Airflow

  1. Per visualizzare un elenco di utenti nel tuo ambiente Cloud Composer 1:

    1. Apri l'interfaccia web di Airflow per il tuo ambiente Cloud Composer 1.

    2. Vai ad Amministrazione > Utenti.

  2. Per creare un utente nel tuo ambiente Cloud Composer 2:

    1. Apri l'interfaccia web di Airflow per il tuo ambiente Cloud Composer 2.

    2. Vai a Sicurezza > Elenca utenti.

    3. Fai clic su Add a new record (Aggiungi un nuovo record).

gcloud

  1. Non è possibile visualizzare un elenco di utenti tramite gcloud in Airflow 1. Usa la UI di Airflow.

  2. Per creare un nuovo account utente nel tuo ambiente Cloud Composer 2, esegui users create Comando dell'interfaccia a riga di comando di Airflow a gcloud. Ad esempio:

    gcloud composer environments run \
        COMPOSER_2_ENV \
        --location COMPOSER_2_LOCATION \
        users create \
        -- --username example_username \
        --firstname Example-Name \
        --lastname Example-Surname \
        --email example-user@example.com \
        --use-random-password \
        --role Op
    

    Sostituisci:

    • COMPOSER_2_ENV con il nome del tuo ambiente Cloud Composer 2.
    • COMPOSER_2_LOCATION con la regione in cui Cloud Composer 2 dell'ambiente di rete.
    • Tutti i parametri di configurazione utente con i relativi valori da Ambiente Cloud Composer 1, incluso il ruolo dell'utente.

Passaggio 10: assicurati che i DAG siano pronti per Airflow 2

Prima di trasferire i DAG nel tuo ambiente Cloud Composer 1, assicurati che:

  1. L'upgrade dei controlli degli script per i DAG viene eseguito correttamente e non ci sono altri problemi di compatibilità.

  2. I DAG utilizzano dichiarazioni di importazione corrette.

    Ad esempio, la nuova istruzione di importazione BigQueryCreateDataTransferOperator può avere il seguente aspetto:

    from airflow.providers.google.cloud.operators.bigquery_dts \
        import BigQueryCreateDataTransferOperator
    
  3. I tuoi DAG sono con upgrade eseguito per Airflow 2. Questa modifica è compatibile con Airflow 1.10.14 e versioni successive.

Passaggio 11: trasferisci i DAG all'ambiente Cloud Composer 2

Quando trasferisci i DAG tra i seguenti, potrebbero verificarsi i seguenti problemi ambienti:

  • Se un DAG è abilitato (non in pausa) in entrambi gli ambienti, ogni ambiente viene eseguito una copia del DAG, come pianificato. Ciò potrebbe causare un DAG duplicato e lo stesso tempo di esecuzione.

  • A causa di Recupero DAG, Airflow pianifica esecuzioni di DAG aggiuntive, a partire dalla data di inizio specificata nei tuoi DAG. Questo accade perché la nuova istanza Airflow non prende prendere in considerazione la cronologia delle esecuzioni di DAG da Cloud Composer 1 completamente gestito di Google Cloud. Ciò potrebbe comportare la pianificazione di un numero elevato di esecuzioni di DAG a partire dalla data di inizio specificata.

Impedisci esecuzioni di DAG duplicate

Nel tuo ambiente Cloud Composer 2, nell'ambiente Airflow 2, aggiungi un override dell'opzione di configurazione di Airflow per Opzione dags_are_paused_at_creation. Dopo aver apportato questa modifica, tutti i nuovi DAG sono in pausa per impostazione predefinita.

Sezione Chiave Valore
core dags_are_paused_at_creation True

Impedisci esecuzioni di DAG aggiuntive o mancanti

Per evitare interruzioni e sovrapposizioni in date di esecuzione disattiva rimettiti in pari con Cloud Composer 2. In questo modo, dopo aver caricato i DAG nell'ambiente Cloud Composer 2, Airflow non pianifica le esecuzioni di DAG che sono state sono già eseguiti nell'ambiente Cloud Composer 1. Aggiungi un override dell'opzione di configurazione di Airflow per Opzione catchup_by_default:

Sezione Chiave Valore
scheduler catchup_by_default False

Trasferisci i tuoi DAG nell'ambiente Cloud Composer 2

Per trasferire i DAG nell'ambiente Cloud Composer 2:

  1. Carica il DAG da Cloud Composer 1 all'ambiente Cloud Composer 2. Ignora il DAG airflow_monitoring.py.

  2. I DAG sono in pausa in dell'ambiente Cloud Composer 2 per via dell'override della configurazione. non vengono pianificate esecuzioni dei DAG.

  3. Nell'interfaccia web di Airflow, vai a DAG e controlla se sono stati segnalati errori di sintassi dei DAG.

  4. Nel momento in cui prevedi di trasferire il DAG:

    1. Metti in pausa i DAG nel tuo ambiente Cloud Composer 1.

    2. Riattiva i DAG nel tuo ambiente Cloud Composer 2.

    3. Verifica che le nuove esecuzioni dei DAG siano pianificate all'ora corretta.

    4. Attendi che le esecuzioni del DAG vengano eseguite nell'ambiente Cloud Composer 2 e per verificare che siano andati a buon fine. Se l'esecuzione di un DAG ha avuto esito positivo, non riattivala nell'ambiente Cloud Composer 1; se lo fai, un DAG per l'esecuzione nello stesso orario e nella stessa data si verifica in Cloud Composer 1 completamente gestito di Google Cloud.

  5. Se l'esecuzione di un DAG specifico non riesce, prova a risolvere i problemi del DAG finché non viene eseguito Cloud Composer 2.

    Se necessario, puoi sempre tornare alla versione Cloud Composer 1 del DAG ed eseguire le esecuzioni del DAG che non sono riuscite in Cloud Composer 2 da il tuo ambiente Cloud Composer 1:

    1. Metti in pausa il DAG nel tuo ambiente Cloud Composer 2.

    2. Riattiva il DAG nel tuo ambiente Cloud Composer 1. Questo le pianificazioni dei DAG recuperano il periodo di tempo in cui il DAG è stato messo in pausa nell'ambiente Cloud Composer 1.

Passaggio 12: monitora l'ambiente Cloud Composer 2

Dopo aver trasferito tutti i DAG e la configurazione a Cloud Composer 2 dell'ambiente, monitorare potenziali problemi, esecuzioni di DAG non riuscite e, l'integrità dell'ambiente. Se l'ambiente Cloud Composer 2 viene eseguito senza problemi per un periodo di tempo sufficiente, valuta la possibilità di eliminare Cloud Composer 1 completamente gestito di Google Cloud.

Passaggi successivi