Umgebungen mithilfe von Snapshots zu Managed Airflow (Gen 2) migrieren (von Airflow 2)

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

Auf dieser Seite wird erläutert, wie Sie DAGs, Daten und Konfigurationen aus Ihren vorhandenen Managed Airflow-Umgebungen (Legacy Gen 1, Airflow 2) in Managed Airflow-Umgebungen (Gen 2, Airflow 2) übertragen.

In dieser Migrationsanleitung wird die Funktion Snapshots verwendet.

Weitere Migrationsleitfäden

Von An Methode Leitfaden
Managed Airflow (Gen 3), Airflow 2 Managed Airflow (Gen 3), Airflow 3 Manuelle Übertragung nebeneinander Anleitung zur manuellen Migration
Managed Airflow (Gen 2) Managed Airflow (Gen 3) Nebeneinander mit dem Migrationsskript Anleitung zur Skriptmigration
Managed Airflow (Gen 2) Managed Airflow (Gen 3) Nebeneinander mit Snapshots Anleitung zur Migration von Snapshots
Managed Airflow (Legacy Gen 1), Airflow 2 Managed Airflow (Gen 3) Nebeneinander mit Snapshots Anleitung zur Migration von Snapshots
Managed Airflow (Legacy Gen 1), Airflow 2 Managed Airflow (Gen 2) Nebeneinander mit Snapshots Dieser Leitfaden
Managed Airflow (Legacy Gen 1), Airflow 2 Managed Airflow (Gen 2) Manuelle Übertragung nebeneinander Anleitung zur manuellen Migration
Managed Airflow (Legacy Gen 1), Airflow 1 Managed Airflow (Gen 2), Airflow 2 Nebeneinander mit Snapshots Anleitung zur Migration von Snapshots
Managed Airflow (Legacy Gen 1), Airflow 1 Managed Airflow (Gen 2), Airflow 2 Manuelle Übertragung nebeneinander Anleitung zur manuellen Migration
Managed Airflow (Legacy Gen 1), Airflow 1 Managed Airflow (Legacy Gen 1), Airflow 2 Manuelle Übertragung nebeneinander Anleitung zur manuellen Migration

Hinweis

  • Snapshots werden in Managed Airflow (Gen 2) ab Version 2.0.9 unterstützt. In Managed Airflow (Legacy Gen 1) wird das Speichern von Umgebungs-Snapshots in Version 1.18.5 unterstützt.

  • Managed Airflow unterstützt die parallele Migration von Managed Airflow (Legacy Gen 1) zu Managed Airflow (Gen 2). Es ist nicht möglich, ein direktes Upgrade von Managed Airflow (Legacy Gen 1) auf Managed Airflow (Gen 2) durchzuführen.

  • Liste der Unterschiede zwischen Managed Airflow (Legacy Gen 1) und Managed Airflow (Gen 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 umfasst, verkleinern Sie die Airflow-Datenbank.

  • Die Gesamtzahl der Objekte in den Ordnern /dags, /plugins und /data im Bucket der Umgebung muss kleiner als 100.000 sein,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 mit XCom wirkt sich auf die Leistung der Airflow-Datenbank aus und kann beim Laden von Snapshots oder beim Aktualisieren Ihrer Umgebung zu Fehlern führen. Erwägen Sie die Verwendung von Alternativen wie Cloud Storage, um große Datenmengen zu übertragen.

Schritt 1: DAGs in Ihrer Managed Airflow-Umgebung (Legacy Gen 1) pausieren

Um doppelte DAG-Ausführungen zu vermeiden, pausieren Sie alle DAGs in Ihrer Managed Airflow-Umgebung (Legacy Gen 1), bevor Sie den Snapshot speichern.

Sie haben dazu folgende Möglichkeiten:

  • Rufen Sie die Airflow-Weboberfläche auf, wechseln Sie 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 Ihrer Managed Airflow-Umgebung (Legacy Gen 1).
    • 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 die folgenden Airflow-CLI-Befehle verwenden, um alle DAGs gleichzeitig zu 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 vor 2.9.1) Wenn beim Pausieren einer großen Anzahl von DAGs Kontingentfehler auftreten, können Sie DAGs mit der Airflow REST API pausieren. Weitere Informationen finden Sie in der Airflow-Dokumentation unter Trying the API.

Schritt 2: Snapshot Ihrer Managed Airflow-Umgebung (Legacy Gen 1) speichern

Console

Snapshot Ihrer Umgebung erstellen:

  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 Managed Airflow-Umgebung (Legacy Gen 1). 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 Managed Airflow-Umgebung (Legacy Gen 1). Sie können aber auch einen anderen Speicherort auswählen.

  5. Warten Sie, bis der Snapshot in Managed Airflow erstellt wurde.

gcloud

  1. Rufen Sie den Bucket-URI Ihrer Managed Airflow-Umgebung (Legacy Gen 1) 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 Ihrer Managed Airflow-Umgebung (Legacy Gen 1).
      • 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 Managed Airflow-Umgebung (Legacy Gen 1).

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

  2. Snapshot Ihrer Managed Airflow-Umgebung (Legacy Gen 1) erstellen:

    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 Ihrer Managed Airflow-Umgebung (Legacy Gen 1).
    • COMPOSER_1_LOCATION durch die Region, in der sich die Managed Airflow-Umgebung (Legacy Gen 1) befindet.
    • COMPOSER_1_SNAPSHOTS_FOLDER durch den URI des Buckets Ihrer Managed Airflow-Umgebung (Legacy Gen 1). In dieser Anleitung speichern Sie den Snapshot im Bucket der Managed Airflow-Umgebung (Legacy Gen 1). 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: Managed Airflow-Umgebung (Gen 2) erstellen

Managed Airflow-Umgebung (Gen 2) erstellen 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 sie später ersetzen, wenn Sie den Snapshot Ihrer Managed Airflow-Umgebung (Legacy Gen 1) laden.

Schritt 4: Snapshot in Ihre Managed Airflow-Umgebung (Gen 2) laden

Console

So laden Sie den Snapshot in Ihre Managed Airflow-Umgebung (Gen 2):

  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 Managed Airflow (Gen 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 diese Anleitung verwenden, befindet sich dieser Ordner in Ihrem Managed Airflow-Bucket (Legacy Gen 1) im Ordner /snapshots. Der Name ist der Zeitstempel des Speichervorgangs für den Snapshot. 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 der Snapshot in Managed Airflow geladen wurde.

gcloud

Laden Sie den Snapshot Ihrer Managed Airflow-Umgebung (Legacy Gen 1) in Ihre Managed Airflow-Umgebung (Gen 2):

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

Ersetzen Sie:

  • COMPOSER_2_ENV durch den Namen Ihrer Managed Airflow-Umgebung (2. Generation).
  • COMPOSER_2_LOCATION durch die Region, in der sich die Managed Airflow-Umgebung (2. Generation) befindet.
  • SNAPSHOT_PATH durch den URI des Buckets Ihrer Managed Airflow-Umgebung (Legacy Gen 1), 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: Pausierte DAGs in der Managed Airflow-Umgebung (Gen 2) reaktivieren

Sie haben dazu folgende Möglichkeiten:

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

  • Verwenden Sie das Skript composer_dags, um alle DAGs zu reaktivieren:

    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 Ihrer Managed Airflow-Umgebung (2. Generation).
    • 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 die folgenden Airflow-CLI-Befehle verwenden, um die Pausierung aller DAGs gleichzeitig aufzuheben:

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

Schritt 6: 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 für den richtigen Zeitpunkt geplant sind.

  3. Warten Sie, bis die DAG-Ausführungen in der Managed Airflow-Umgebung (Gen 2) erfolgt sind, und prüfen Sie, ob sie erfolgreich waren. Wenn eine DAG-Ausführung erfolgreich war, haben Sie ihre Pausierung in der Managed Airflow-Umgebung (Legacy Gen 1) nicht auf. Andernfalls wird in der Managed Airflow-Umgebung (Legacy Gen 1) 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 Managed Airflow (Gen 2) ausgeführt wird.

Schritt 7: Managed Airflow-Umgebung (Gen 2) überwachen

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

Wenn die Managed Airflow (Gen 2)-Umgebung für einen ausreichend langen Zeitraum problemlos ausgeführt wird, sollten Sie die Managed Airflow (Legacy Gen 1)-Umgebung vielleicht löschen.

Nächste Schritte