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 erläutert, wie Sie DAGs, Daten und Konfigurationen aus Ihrer vorhandenen Managed Airflow (Gen 2)-Umgebung mit dem Migrationsskript in eine neue Managed Airflow (Gen 3)-Umgebung migrieren.

Von An Methode Leitfaden
Managed Airflow (Gen 3), Airflow 2 Managed Airflow (Gen 3), Airflow 3 Parallele, manuelle Übertragung Anleitung zur manuellen Migration
Managed Airflow (Gen 2) Managed Airflow (Gen 3) Parallele Migration mit dem Migrationsskript Dieser Leitfaden
Managed Airflow (Gen 2) Managed Airflow (Gen 3) Parallele Migration mit Snapshots Migrationsanleitung für Snapshots
Managed Airflow (Legacy Gen 1), Airflow 2 Managed Airflow (Gen 3) Parallele Migration mit Snapshots Migrationsanleitung für Snapshots
Managed Airflow (Legacy Gen 1), Airflow 2 Managed Airflow (Gen 2) Parallele Migration mit Snapshots Migrationsanleitung für Snapshots
Managed Airflow (Legacy Gen 1), Airflow 2 Managed Airflow (Gen 2) Parallele, manuelle Übertragung Anleitung zur manuellen Migration
Managed Airflow (Legacy Gen 1), Airflow 1 Managed Airflow (Gen 2), Airflow 2 Parallele Migration mit Snapshots Migrationsanleitung für Snapshots
Managed Airflow (Legacy Gen 1), Airflow 1 Managed Airflow (Gen 2), Airflow 2 Parallele, manuelle Übertragung Anleitung zur manuellen Migration
Managed Airflow (Legacy Gen 1), Airflow 1 Managed Airflow (Legacy Gen 1), Airflow 2 Parallele, manuelle Übertragung Anleitung zur manuellen Migration

Informationen zum Migrationsskript

Das Migrationsskript ist ein Python-Skript für parallele Migrationen, mit dem der Migrationsprozess von Managed Airflow (Gen 2) zu Managed Airflow (Gen 3) automatisiert wird. Es verwendet Umgebungssnapshots, 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 (Gen 2)-Umgebung ab.

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

    Da Managed Airflow (Gen 3)-Umgebungen eine andere Architektur haben, müssen einige Parameter möglicherweise angepasst werden, um die Unterschiede auszugleichen. Sie können die meisten Parameter der Umgebung auch später anpassen.

  3. Pausiert alle DAGs in der Managed Airflow (Gen 2)-Umgebung einzeln. Nur DAGs, deren Pausierung in der Managed Airflow (Gen 2)-Umgebung aufgehoben wurde, werden später wieder aktiviert.

  4. Speichert einen Snapshot der Managed Airflow (Gen 2)-Quellumgebung. Der Snapshot wird am standardmäßigen Speicherort für Snapshots gespeichert, im Bucket der Managed Airflow (Gen 2)-Umgebung.

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

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

    Bei Konflikten schlägt die Migration nach der Erstellung 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 (Gen 3)-Umgebung auf. Wenn einige DAGs bereits pausiert waren, bevor Sie das Skript ausgeführt haben, bleiben sie pausiert.

Das Skript hat die folgenden Einschränkungen:

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

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

  • Sie können Snapshots nur in derselben oder einer späteren Version von Airflow laden. Sie können beispielsweise keinen Snapshot von Airflow 2.10.2 in Airflow 2.9.3 laden.

  • Mit dem Migrationsskript können nur Managed Airflow (Gen 2)-Umgebungen migriert werden.

Hinweis

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

  • Das Skript verwendet Snapshots. Snapshots werden unterstützt

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

  • Ihr Konto benötigt eine IAM-Rolle, 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, müssen Sie die Größe der Airflow-Datenbank reduzieren.

  • Die Gesamtzahl der Objekte in den Ordnern /dags, /plugins und /data im Bucket der Umgebung muss weniger als 100.000 betragen,um Snapshots zu erstellen.

  • Wenn Sie den XCom-Mechanismus zum Übertragen von Dateien verwenden, müssen Sie sicherstellen, dass Sie ihn gemäß den Airflow-Richtlinien verwenden. 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 Upgrade Ihrer Umgebung führen. Verwenden Sie 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)

Sehen Sie sich die Liste der Unterschiede zwischen Managed Airflow (Gen 2) und Managed Airflow (Gen 3) an.

Achten Sie darauf, dass Ihre Umgebung keine Funktionen verwendet, die in Managed Airflow (Gen 3) noch nicht verfügbar sind, und dass Sie wissen, wie Sie Funktionen verwenden und konfigurieren, die spezifisch für Managed Airflow (Gen 3) sind.

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

Achten Sie darauf, dass Ihre DAGs mit Managed Airflow (Gen 3) kompatibel sind. Beachten Sie dazu die folgenden Vorschläge:

  • Die Liste der Pakete in der Managed Airflow (Gen 3)-Umgebung kann sich von der in Ihrer Managed Airflow (Gen 2)-Umgebung unterscheiden. Dies kann sich auf die Kompatibilität Ihrer DAGs mit Managed Airflow (Gen 3) 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.

Konfigurationskompatibilität prüfen

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

Abhängigkeiten des Skripts installieren

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

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

Skript herunterladen

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

In der gcloud CLI autorisieren

So autorisieren Sie sich in der gcloud CLI:

gcloud auth login

Vorschau der Parameter der neuen Umgebung ansehen

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

Überschreibungen der Airflow-Konfigurationsoption, 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 (Gen 2)-Umgebung 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 (Gen 2)-Umgebung sein und eine der Versionen in Managed Airflow (Gen 3) verfügbaren Versionen sein.

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

Umgebungszustand prüfen

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

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

Weitere Informationen zum Prüfen des Umgebungs- und Datenbankzustands 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 (Gen 2)-Umgebung 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 (Gen 2)-Umgebung sein und eine der Versionen in Managed Airflow (Gen 3) verfügbaren Versionen sein.

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 (Gen 3)-Umgebung erfolgt sind, und prüfen Sie, ob sie erfolgreich waren. Wenn eine DAG-Ausführung erfolgreich war, heben Sie die 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 (Gen 3)-Umgebung überwachen

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

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

Nächste Schritte