Umgebungen zu Managed Airflow (Gen 3) migrieren (Migrationsskript)

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

Auf dieser Seite wird beschrieben, wie Sie DAGs, Daten und Konfigurationen aus Ihrer vorhandenen Managed Airflow-Umgebung (2. Generation) in eine neue Managed Airflow-Umgebung (3. Generation) migrieren. Dazu verwenden Sie das Migrationsskript.

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 Dieser Leitfaden
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 Anleitung zur Migration von Snapshots
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

Migrationsskript

Das Migrationsskript ist ein Python-Skript für Side-by-Side-Migrationen, mit dem der Migrationsprozess von Managed Airflow (Gen 2) zu Managed Airflow (Gen 3) automatisiert wird. Dabei werden Umgebungs-Snapshots verwendet, um die Konfiguration der Umgebung in die neue Umgebung zu übertragen.

Das Skript führt die folgenden Aktionen aus:

  1. Ruft die Konfiguration der Managed Airflow-Umgebung (Gen 2) ab.

  2. Erstellt eine Managed Airflow-Umgebung (Gen 3) mit einer Konfiguration, die der abgerufenen Konfiguration entspricht.

    Da Managed Airflow-Umgebungen (3. Generation) eine andere Architektur haben, müssen einige Parameter möglicherweise angepasst werden, um den Unterschieden Rechnung zu tragen. Die meisten Parameter der Umgebung lassen sich auch später anpassen.

  3. Pausiert alle DAGs in der Managed Airflow-Umgebung (Gen 2) einzeln. Nur DAGs, die in der Managed Airflow-Umgebung (Gen 2) nicht pausiert wurden, werden später nicht pausiert.

  4. Speichert einen Snapshot der Managed Airflow-Quellumgebung (Gen 2). Der Snapshot wird am Standardspeicherort für Snapshots gespeichert, nämlich im Bucket der Managed Airflow-Umgebung (Gen 2).

  5. Lädt den Snapshot in die Managed Airflow-Umgebung (Gen 3).

    Das Skript prüft nicht die Kompatibilität von benutzerdefinierten PyPI-Paketen, Umgebungsvariablen und Überschreibungen von Airflow-Konfigurationsoptionen mit der Managed Airflow-Umgebung (3. Generation).

    Bei Konflikten schlägt die Migration nach dem Erstellen der Managed Airflow (Gen 3)-Umgebung während des Ladens des Snapshots fehl. In diesem Fall können Sie entweder die Konfiguration Ihrer Managed Airflow (Gen 2)-Umgebung anpassen, um den Konflikt zu beheben, oder ohne das Migrationsskript migrieren und das Laden benutzerdefinierter PyPI-Pakete, Umgebungsvariablen oder Airflow-Konfigurationsüberschreibungen beim Laden des Snapshots überspringen.

  6. Hebt die Pausierung der DAGs in der Managed Airflow-Umgebung (Gen 3) auf. Wenn einige DAGs bereits pausiert waren, bevor Sie das Skript ausgeführt haben, bleiben sie pausiert.

Für das Skript gelten die folgenden Einschränkungen:

  • Mit dem Skript wird immer eine neue Managed Airflow-Umgebung (Gen 3) erstellt. Es ist nicht möglich, den Snapshot in eine vorhandene Managed Airflow-Umgebung (Gen 3) zu laden. Dazu können Sie Snapshots verwenden, ohne das Migrationsskript zu verwenden.

  • Mit dem Skript wird eine Managed Airflow-Umgebung (Gen 3) nur in derselben Region und demselben Projekt wie die Managed Airflow-Umgebung (Gen 2) erstellt.

  • Sie können Snapshots nur in die gleiche oder eine spätere Version von Airflow laden. Sie können beispielsweise keinen Snapshot aus Airflow 2.10.2 in Airflow 2.9.3 laden.

  • Nur Managed Airflow-Umgebungen (2. Generation) können mit dem Migrationsskript migriert werden.

Hinweis

  • Da das Migrationsskript eine Umgebung erstellt und dann einen Snapshot speichert und lädt, kann der Migrationsprozess über eine Stunde dauern.

  • Das Skript verwendet Snapshots. Snapshots werden unterstützt

  • in Managed Airflow (Gen 2) Version 2.0.9 und höher.

  • Für Ihr Konto ist eine IAM-Rolle erforderlich, mit der Umgebungen erstellt, Snapshots gespeichert und Snapshots geladen werden können.

  • 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, halten Sie sich an die Airflow-Richtlinien. Das Übertragen großer Dateien oder einer großen Anzahl von Dateien mit XCom wirkt sich auf die Leistung der Airflow-Datenbank aus und kann zu Fehlern beim Laden von Snapshots oder beim Aktualisieren Ihrer Umgebung führen. Erwägen Sie die Verwendung von Alternativen wie Cloud Storage, um große Datenmengen zu übertragen.

Zu Managed Airflow (Gen 3) migrieren

In diesem Abschnitt wird der Migrationsprozess mit dem Migrationsskript beschrieben.

Unterschiede zwischen Managed Airflow (Gen 2) und Managed Airflow (Gen 3)

Liste der Unterschiede zwischen Managed Airflow (Gen 2) und Managed Airflow (Gen 3)

Achten Sie darauf, dass in Ihrer Umgebung keine Funktionen verwendet werden, die in Managed Airflow (Gen 3) noch nicht verfügbar sind, und dass Sie mit der Verwendung und Konfiguration von Funktionen vertraut sind, die speziell für Managed Airflow (Gen 3) gelten.

Prüfen, ob Ihre DAGs mit Managed Airflow (Gen 3) kompatibel sind

Prüfen Sie, ob Ihre DAGs mit Managed Airflow (Gen 3) kompatibel sind, indem Sie die folgenden Empfehlungen beachten:

  • Die Paketliste in der Managed Airflow-Umgebung (Gen 3) kann sich von der in Ihrer Managed Airflow-Umgebung (Gen 2) unterscheiden. Dies kann sich auf die Kompatibilität Ihrer DAGs mit Managed Airflow (3. Generation) auswirken.

  • In Managed Airflow (Gen 3) befindet sich der Cluster der Umgebung im Mandantenprojekt. Achten Sie darauf, dass Ihre DAGs mit dieser Änderung kompatibel sind. Insbesondere werden KubernetesPodOperator-Arbeitslasten jetzt unabhängig von Ihrer Umgebung skaliert und es ist nicht möglich, Pod-Affinitätskonfigurationen zu verwenden.

Auf Konfigurationskompatibilität prüfen

Sie können eine Upgradeprüfung durchführen, um zu sehen, ob die Konfiguration Ihrer Managed Airflow-Umgebung (2. Generation) mit Managed Airflow (3. Generation) kompatibel ist. Wir empfehlen, alle blockierenden Konflikte, die bei dieser Prüfung gemeldet werden, vor Beginn der Migration zu beheben.

Abhängigkeiten des Skripts installieren

  • Für das Skript ist Python-Version 3.8 oder höher erforderlich.

  • Im Migrationsskript werden die gcloud CLI- und curl-Dienstprogramme verwendet. Achten Sie darauf, dass beide Dienstprogramme auf Ihrem Computer installiert sind.

Skript herunterladen

Laden Sie das Migrationsskript (composer_migrate.py) aus dem Repository auf GitHub herunter.

In der gcloud CLI autorisieren

Autorisieren in der gcloud CLI:

gcloud auth login

Vorschau der Parameter der neuen Umgebung

Sie können sich die Parameter der Managed Airflow-Umgebung (3. Generation) vor der Migration ansehen. So können Sie sehen, wie die Konfiguration der Managed Airflow-Umgebung (2. Generation) mit Managed Airflow (3. Generation) übereinstimmt.

Überschreibungen der Airflow-Konfigurationsoptionen, benutzerdefinierte PyPI-Pakete und Umgebungsvariablen werden aus dem Snapshot der Umgebung geladen und nicht in der Vorschau angezeigt.

Maximieren

Führen Sie dazu diesen Befehl aus:

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID.
  • COMPOSER_2_ENV: Der Name Ihrer Managed Airflow (Gen 2)-Umgebung.
  • LOCATION: die Region, in der sich die Managed Airflow-Umgebung (Gen 2) befindet. Die Managed Airflow (Gen 3)-Umgebung wird in derselben Region erstellt.
  • COMPOSER_3_AIRFLOW_VERSION: Die Airflow-Version der Managed Airflow (Gen 3)-Umgebung. Diese Version muss dieselbe oder eine neuere Version als in der Managed Airflow-Umgebung (Gen 2) sein und eine der Versionen sein, die in Managed Airflow (Gen 3) verfügbar sind.

Beispiel:

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

Umgebungsstatus prüfen

Achten Sie darauf, dass die Managed Airflow-Umgebung (Gen 2), die Sie migrieren möchten, fehlerfrei ist.

Wenn Ihre Umgebung nicht fehlerfrei ist, schlägt die Migration nach dem Erstellen einer neuen Managed Airflow-Umgebung (3. Generation) fehl, da kein Snapshot erstellt werden kann.

Weitere Informationen zum Prüfen des Umgebungs- und Datenbankstatus finden Sie unter Monitoring-Dashboard verwenden.

Migrationsskript ausführen

Führen Sie dazu diesen Befehl aus:

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID.
  • COMPOSER_2_ENV: Der Name Ihrer Managed Airflow (Gen 2)-Umgebung.
  • LOCATION: die Region, in der sich die Managed Airflow-Umgebung (Gen 2) befindet. Die Managed Airflow (Gen 3)-Umgebung wird in derselben Region erstellt.
  • COMPOSER_3_AIRFLOW_VERSION: Die Airflow-Version der Managed Airflow (Gen 3)-Umgebung. Diese Version muss dieselbe oder eine neuere Version als in der Managed Airflow-Umgebung (Gen 2) sein und eine der Versionen sein, die in Managed Airflow (Gen 3) verfügbar sind.

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 3) 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 (Gen 2)-Umgebung nicht auf. Andernfalls wird in der Managed Airflow (Gen 2)-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 Managed Airflow (Gen 3) ausgeführt wird.

Managed Airflow-Umgebung (Gen 3) überwachen

Überwachen Sie Ihre Managed Airflow-Umgebung (3. Generation) auf potenzielle Probleme, fehlgeschlagene DAG-Ausführungen und den allgemeinen Umgebungsstatus.

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

Nächste Schritte