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.
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 | 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:
Ruft die Konfiguration der Managed Airflow-Umgebung (Gen 2) ab.
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.
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.
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).
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.
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,/pluginsund/dataim 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
Wechseln Sie in der Airflow-Weboberfläche zu DAGs und suchen Sie nach gemeldeten DAG-Syntaxfehlern.
Prüfen Sie, ob DAG-Ausführungen für den richtigen Zeitpunkt geplant sind.
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.
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.