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

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

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

In diesem Migrationsleitfaden wird die Funktion Snapshots verwendet.

Weitere Migrationsleitfäden

Von Bis Methode Leitfaden
Cloud Composer 1, Airflow 2 Cloud Composer 2, Airflow 2 Im Vergleich, mit Snapshots In diesem Leitfaden (Snapshots)
Cloud Composer 1, Airflow 1 Cloud Composer 2, Airflow 2 Im Vergleich, mit Snapshots Migrationsleitfaden (Snapshots)
Cloud Composer 1, Airflow 2 Cloud Composer 2, Airflow 2 Parallele, manuelle Übertragung Anleitung zur manuellen Migration
Cloud Composer 1, Airflow 1 Cloud Composer 2, Airflow 2 Parallele, manuelle Übertragung Anleitung zur manuellen Migration
Airflow 1 Airflow 2 Parallele, manuelle Übertragung Anleitung zur manuellen Migration

Hinweise

  • Snapshots werden in Cloud Composer 2 Version 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.

  • Liste der Unterschiede zwischen Cloud Composer 1 und Cloud Composer 2

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

  • Die Gesamtzahl der Objekte in den Ordnern /dags, /plugins und /data im Bucket der Umgebung muss unter 100.000 liegen,damit Snapshots erstellt werden können.

  • Wenn Sie den XCom-Mechanismus zum Übertragen von Dateien verwenden, achten Sie darauf, dass Sie ihn gemäß den Airflow-Richtlinien verwenden. Die Übertragung großer Dateien oder einer großen Anzahl von Dateien über XCom wirkt sich auf die Leistung der Airflow-Datenbank aus und kann zu Fehlern beim Laden von Snapshots oder beim Upgraden Ihrer Umgebung führen. Für die Übertragung großer Datenmengen können Sie Alternativen wie Cloud Storage verwenden.

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

Um doppelte DAG-Ausführungen zu vermeiden, sollten Sie alle DAGs in Ihrer Cloud Composer 1-Umgebung pausieren, bevor Sie den Snapshot speichern.

Sie haben folgende Möglichkeiten:

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

  • Verwenden Sie das Script 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.
  • (Airflow-Versionen 2.9.1 und höher) Wenn beim Pausieren einer großen Anzahl von DAGs Kontingentfehler auftreten, können Sie mit den folgenden Airflow-Befehlen für die Befehlszeile alle DAGs gleichzeitig pausieren:

    gcloud composer environments run COMPOSER_1_ENV dags pause \
      --project PROJECT_ID \
      --location COMPOSER_1_LOCATION \
      -- -y --treat-dag-id-as-regex ".*"
    
  • (Airflow-Versionen älter als 2.9.1) Wenn beim Pausieren einer großen Anzahl von DAGs Fehler beim Kontingent auftreten, können Sie DAGs mit der Airflow REST API pausieren. Weitere Informationen finden Sie auch unter API testen in der Airflow-Dokumentation.

Schritt 2: 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 im Bucket 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. Rufen Sie den Bucket-URI Ihrer Cloud Composer 1-Umgebung ab:

    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 der 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 des Buckets der 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 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 des Buckets Ihrer Cloud Composer 1-Umgebung. In dieser Anleitung speichern Sie den Snapshot im Bucket der Cloud Composer 1-Umgebung. Sie können aber auch einen anderen Speicherort auswählen. Wenn Sie einen benutzerdefinierten Speicherort angeben, müssen die Dienstkonten beider Umgebungen Lese- und Schreibberechtigungen für den angegebenen Speicherort haben.

Schritt 3: Cloud Composer 2-Umgebung erstellen

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

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

Schritt 4: 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 Durchsuchen.

  5. Wählen Sie den Ordner mit dem Snapshot aus. Wenn Sie den Standardspeicherort für diesen Leitfaden verwenden, befindet sich dieser Ordner im Bucket Ihrer Cloud Composer 1-Umgebung im Ordner /snapshots. Sein Name ist der Zeitstempel des Vorgangs zum Speichern des Snapshots. Beispiel: us-central1-example-916807e1-bucket/snapshots_example-project_us-central1_example-environment/2022-01-05T18-59-00

  6. Klicken Sie auf Laden und warten Sie, bis Cloud Composer den Snapshot geladen hat.

gcloud

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

gcloud 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 durch den URI des Buckets Ihrer Cloud Composer 1-Umgebung gefolgt vom Pfad zum Snapshot. Beispiel: gs://us-central1-example-916807e1-bucket/snapshots/example-project_us-central1_example-environment_2022-01-05T18-59-00

Schritt 5: Pausierung von DAGs in der Cloud Composer 2-Umgebung aufheben

Sie haben folgende Möglichkeiten:

  • Rufen Sie in der Airflow-Weboberfläche die Seite DAGs auf und heben Sie die Pausierung aller DAGs einzeln auf.

  • Verwenden Sie das Script 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.
  • (Airflow-Versionen 2.9.1 und höher) Wenn beim Aufheben der Pausierung einer großen Anzahl von DAGs Kontingentfehler auftreten, können Sie mit den folgenden Airflow-Befehlen für die Befehlszeile alle DAGs gleichzeitig pausieren:

    gcloud composer environments run COMPOSER_2_ENV dags unpause \
      --project PROJECT_ID \
      --location COMPOSER_2_LOCATION \
      -- -y --treat-dag-id-as-regex ".*"
    
  • (Airflow-Versionen älter als 2.9.1) Wenn beim Aufheben der Pausierung einer großen Anzahl von DAGs Kontingentfehler auftreten, können Sie die Pausierung mithilfe der Airflow REST API aufheben. Weitere Informationen finden Sie auch unter API testen in der Airflow-Dokumentation.

Schritt 6: 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 die DAG-Ausführungen für den 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 eine bestimmte DAG-Ausführung fehlschlägt, versuchen Sie, eine Fehlerbehebung für den DAG durchzuführen, bis er erfolgreich in Cloud Composer 2 ausgeführt wird.

Schritt 7: 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.

Nächste Schritte