Umgebungen mithilfe von Snapshots zu Cloud Composer 2 (aus Airflow 1) migrieren

Cloud Composer 1 Cloud Composer 2

Auf dieser Seite wird erläutert, wie Sie DAGs, Daten und Konfigurationen aus Ihren vorhandenen Cloud Composer 1-Umgebungen (Airflow 1) zu Cloud Composer 2 (Airflow 2) übertragen.

In dieser Migrationsanleitung wird die Funktion Snapshots verwendet, also Vorschau.

Weitere Migrationsanleitungen

From To Methode Leitfaden
Cloud Composer 1, Airflow 2 Cloud Composer 2, Airflow 2 Seite mithilfe von Snapshots nebeneinander verwenden Migrationsleitfaden (Snapshots)
Cloud Composer 1, Airflow 1 Cloud Composer 2, Airflow 2 Seite mithilfe von Snapshots nebeneinander verwenden Dieser Leitfaden (Snapshots)
Cloud Composer 1, Airflow 2 Cloud Composer 2, Airflow 2 Parallele, manuelle Übertragung Leitfaden für die manuelle Migration
Cloud Composer 1, Airflow 1 Cloud Composer 2, Airflow 2 Parallele, manuelle Übertragung Leitfaden für die manuelle Migration
Airflow 1 Airflow 2 Parallele, manuelle Übertragung Leitfaden für die manuelle Migration

Hinweis

  • Snapshots werden in Cloud Composer 2.0.9 und höher unterstützt. Cloud Composer 1 unterstützt das Speichern von Umgebungs-Snapshots in 1.18.5.

  • Cloud Composer unterstützt die parallele Migration von Cloud Composer 1 zu Cloud Composer 2. Es ist nicht möglich, ein direktes Upgrade von Cloud Composer 1 auf Cloud Composer 2 durchzuführen.

  • Sehen Sie sich die Liste der Unterschiede zwischen Cloud Composer 1 und Cloud Composer 2 an.

  • Die maximale Größe der Airflow-Datenbank, die Snapshots unterstützt, beträgt 20 GB. Wenn Ihre Umgebung mehr als 20 GB benötigt, reduzieren Sie die Größe der Airflow-Datenbank.

  • Da Cloud Composer 2 Airflow 2 verwendet, umfasst die Migration das Wechseln Ihrer DAGs und der Umgebungskonfiguration zu Airflow 2. Informationen zu den funktionsgefährdenden Änderungen zwischen Airflow 1 und Airflow 2 in Cloud Composer finden Sie im Leitfaden für die Migration von Airflow 1 zu Airflow 2.

  • In diesem Leitfaden kombinieren Sie die Migration zu Airflow 2 und die Migration zu Cloud Composer 2 in einem Migrationsverfahren. Auf diese Weise müssen Sie vor der Migration zu Cloud Composer 2 nicht zu einer Cloud Composer 1-Umgebung mit Airflow 2 migrieren.

Schritt 1: Upgrade auf Airflow 1.10.15 ausführen

Wenn Ihre Umgebung eine Airflow-Version vor 1.10.15 verwendet, führen Sie ein Upgrade Ihrer Umgebung auf eine Cloud Composer-Version aus, die Airflow 1.10.15 verwendet und Snapshots unterstützt.

Schritt 2: Kompatibilität mit Airflow 2 prüfen

Verwenden Sie Skripts zur Upgradeprüfung, die von Airflow in Ihrer vorhandenen Airflow 1.10.15-Umgebung bereitgestellt werden, um auf mögliche Konflikte mit Airflow 2 zu prüfen.

gcloud

  1. Führen Sie Upgradeprüfungen mit dem Befehl gcloud composer environments run aus. Einige Upgradeprüfungen, die für den eigenständigen Airflow 1.10.15 relevant sind, sind für Cloud Composer nicht relevant. Der folgende Befehl schließt diese Prüfungen aus.

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

    Ersetzen Sie:

    • COMPOSER_1_ENV durch den Namen Ihrer Airflow 1.10.15-Umgebung.
    • COMPOSER_1_LOCATION durch die Region, in der sich die Umgebung befindet.
  2. Prüfen Sie die Ausgabe des Befehls. Skripts zur Updateprüfung melden potenzielle Kompatibilitätsprobleme in vorhandenen Umgebungen.

  3. Implementieren Sie weitere Änderungen an DAGs, wie im Leitfaden zum Upgrade auf Airflow 2.0 oder höher im Abschnitt Upgrade von DAGs beschrieben beschrieben.

Schritt 3: Prüfen, ob DAGs für Airflow 2 bereit sind

Achten Sie vor der Übertragung von DAGs auf Ihre Cloud Composer 2-Umgebung auf Folgendes:

  1. Upgradeprüfungs-Skripts für Ihre DAGs werden erfolgreich ausgeführt und es gibt keine weiteren Kompatibilitätsprobleme.

  2. Ihre DAGs verwenden die richtigen Importanweisungen.

    Die neue Importanweisung für BigQueryCreateDataTransferOperator kann beispielsweise so aussehen:

    from airflow.providers.google.cloud.operators.bigquery_dts \
        import BigQueryCreateDataTransferOperator
    
  3. Ihre DAGs werden für Airflow 2 aktualisiert. Diese Änderung ist mit Airflow 1.10.14 und höheren Versionen kompatibel.

Schritt 4: DAGs in Ihrer Cloud Composer 1-Umgebung pausieren

Wenn Sie doppelte DAG-Ausführungen vermeiden möchten, pausieren Sie alle DAGs in Ihrer Cloud Composer 1-Umgebung, bevor Sie den Snapshot speichern.

Sie haben folgende Möglichkeiten:

  • Gehen Sie in der Airflow-Weboberfläche zu DAGs und pausieren Sie alle DAGs manuell.

  • Verwenden Sie das Skript Composer_dags, um alle DAGs zu pausieren:

    python3 composer_dags.py --environment COMPOSER_1_ENV \
      --project PROJECT_ID \
      --location COMPOSER_1_LOCATION \
      --operation pause
    

    Ersetzen Sie:

    • COMPOSER_1_ENV durch den Namen der Cloud Composer 1-Umgebung.
    • PROJECT_ID durch die Projekt-ID.
    • COMPOSER_1_LOCATION durch die Region, in der sich die Umgebung befindet.

Schritt 5: Snapshot Ihrer Cloud Composer-1-Umgebung speichern

Console

Erstellen Sie einen Snapshot Ihrer Umgebung:

  1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.

    Zur Seite Umgebungen“

  2. Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Cloud Composer 1-Umgebung. Die Seite Umgebungsdetails wird geöffnet.

  3. Klicken Sie auf Snapshot erstellen.

  4. Klicken Sie im Dialogfeld Snapshot erstellen auf Senden. In dieser Anleitung speichern Sie den Snapshot in der Cloud Composer-1-Umgebung. Sie können aber auch einen anderen Speicherort auswählen.

  5. Warten Sie, bis Cloud Composer den Snapshot erstellt hat.

gcloud

  1. Bucket-URI der Cloud Composer-1-Umgebung abrufen:

    1. Führen Sie dazu diesen Befehl aus:

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

      Ersetzen Sie:

      • COMPOSER_1_ENV durch den Namen Ihrer Cloud Composer-1-Umgebung.
      • COMPOSER_1_LOCATION durch die Region, in der sich die Umgebung befindet.
    2. Entfernen Sie in der Ausgabe den Ordner /dags. Das Ergebnis ist der URI Ihrer Cloud Composer-1-Umgebung.

      Ändern Sie beispielsweise gs://us-central1-example-916807e1-bucket/dags in gs://us-central1-example-916807e1-bucket.

  2. Erstellen Sie einen Snapshot Ihrer Cloud Composer-1-Umgebung:

    gcloud beta composer environments snapshots save \
      COMPOSER_1_ENV \
      --location COMPOSER_1_LOCATION \
      --snapshot-location "COMPOSER_1_SNAPSHOTS_FOLDER"
    

    Ersetzen Sie:

    • COMPOSER_1_ENV durch den Namen der Cloud Composer 1-Umgebung.
    • COMPOSER_1_LOCATION durch die Region, in der sich die Cloud Composer 1-Umgebung befindet.
    • COMPOSER_1_SNAPSHOTS_FOLDER durch den URI Ihres Cloud Composer 1-Umgebungen. In dieser Anleitung speichern Sie den Snapshot in der Cloud Composer 1-Umgebung. Sie können aber auch einen anderen Speicherort auswählen. Wenn Sie einen benutzerdefinierten Standort angeben, müssen die Dienstkonten beider Umgebungen Lese- und Schreibberechtigungen für den angegebenen Standort haben.

Schritt 5: Cloud Composer-2-Umgebung erstellen

Erstellen Sie eine Cloud Composer 2-Umgebung. Sie können mit einer Umgebungsvoreinstellung beginnen, die Ihre erwarteten Ressourcenanforderungen erfüllt, und Ihre Umgebung später weiter skalieren und optimieren.

Sie müssen keine Konfigurationsüberschreibungen und -variablen angeben, da Sie sie später ersetzen, wenn Sie den Snapshot Ihrer Cloud Composer-1-Umgebung laden.

Einige Konfigurationsoptionen von Airflow 1 verwenden in Airflow 2 einen anderen Namen und Abschnitt. Weitere Informationen finden Sie unter Konfigurationsänderungen.

Schritt 6: Snapshot in die Cloud Composer-2-Umgebung laden

Console

So laden Sie den Snapshot in Ihre Cloud Composer 2-Umgebung:

  1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.

    Zur Seite Umgebungen“

  2. Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Cloud Composer 2-Umgebung. Die Seite Umgebungsdetails wird geöffnet.

  3. Klicken Sie auf Snapshot laden.

  4. Klicken Sie im Dialogfeld Snapshot laden auf Suchen.

  5. Wählen Sie den Ordner mit dem Snapshot aus. Wenn Sie den Standardspeicherort für diese Anleitung verwenden, befindet sich dieser Ordner im Cloud Composer-1-Umgebungs-Bucket im Ordner /snapshots und sein Name ist der Zeitstempel des Snapshot-Speichervorgangs. Beispiel: us-central1-example-916807e1-bucket/snapshots_example-project_us-central1_example-environment/2022-01-05T18-59-00

  6. Klicken Sie auf Load (Laden) und warten Sie, bis Cloud Composer den Snapshot lädt.

gcloud

Laden Sie den Snapshot Ihrer Cloud Composer 1-Umgebung in Ihre Cloud Composer 2-Umgebung:

gcloud beta composer environments snapshots load \
  COMPOSER_2_ENV \
  --location COMPOSER_2_LOCATION \
  --snapshot-path "SNAPSHOT_PATH"

Ersetzen Sie:

  • COMPOSER_2_ENV durch den Namen der Cloud Composer 2-Umgebung.
  • COMPOSER_2_LOCATION durch die Region, in der sich die Cloud Composer 2-Umgebung befindet.
  • SNAPSHOT_PATH mit dem URI Ihrer Cloud Composer-1-Umgebung und dem Pfad zum Snapshot. Beispiel: gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00

Schritt 7: DAGs in der Cloud Composer 2-Umgebung wieder aktivieren

Sie haben folgende Möglichkeiten:

  • Gehen Sie in der Airflow-Weboberfläche zu DAGs und heben Sie die Pausierung aller DAGs manuell auf.

  • Verwenden Sie das Skript Composer_dags, um die Pausierung aller DAGs aufzuheben:

      python3 composer_dags.py --environment COMPOSER_2_ENV \
      --project PROJECT_ID \
      --location COMPOSER_2_LOCATION \
      --operation unpause
    

    Ersetzen Sie:

    • COMPOSER_2_ENV durch den Namen der Cloud Composer 2-Umgebung.
    • PROJECT_ID durch die Projekt-ID.
    • COMPOSER_2_LOCATION durch die Region, in der sich die Umgebung befindet.

Schritt 8: Auf DAG-Fehler prüfen

  1. Wechseln Sie in der Airflow-Weboberfläche zu DAGs und suchen Sie nach gemeldeten DAG-Syntaxfehlern.

  2. Prüfen Sie, ob DAG-Ausführungen zum richtigen Zeitpunkt geplant sind.

  3. Warten Sie, bis die DAG-Ausführungen in der Cloud Composer 2-Umgebung erfolgt sind, und prüfen Sie, ob sie erfolgreich waren. Wenn eine DAG-Ausführung erfolgreich war, haben Sie ihre Pausierung in der Cloud Composer 1-Umgebung nicht auf. Andernfalls wird in der Cloud Composer 1-Umgebung ein DAG zur selben Zeit und am selben Datum ausgeführt.

  4. Wenn ein bestimmter DAG fehlschlägt, versuchen Sie, den DAG zu beheben, bis er in Cloud Composer 2 erfolgreich ausgeführt wird.

Schritt 9: Cloud Composer 2-Umgebung überwachen

Nachdem Sie alle DAGs und Konfigurationen in die Cloud Composer 2-Umgebung übertragen haben, überwachen Sie diese auf potenzielle Probleme, fehlgeschlagene DAG-Ausführungen und den allgemeinen Umgebungsstatus.

Wenn die Cloud Composer 2-Umgebung für einen ausreichend langen Zeitraum problemlos ausgeführt wird, sollten Sie die Cloud Composer 1-Umgebung vielleicht löschen.

Weitere Informationen