Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Auf dieser Seite wird erläutert, wie Sie DAGs, Daten und Konfigurationen mithilfe des Migrationsscripts aus Ihrer vorhandenen Cloud Composer 2-Umgebung in eine neue Cloud Composer 3-Umgebung migrieren.
Weitere Migrationsleitfäden
Von | An | Methode | Leitfaden |
---|---|---|---|
Cloud Composer 2 | Cloud Composer 3 | Parallel mit dem Migrationsskript | In diesem Leitfaden |
Cloud Composer 2 | Cloud Composer 3 | Im Vergleich, mit Snapshots | Anleitung zur Migration von Snapshots |
Cloud Composer 1, Airflow 2 | Cloud Composer 3 | Im Vergleich, mit Snapshots | Anleitung zur Migration von Snapshots |
Cloud Composer 1, Airflow 2 | Cloud Composer 2 | Im Vergleich, mit Snapshots | Anleitung zur Migration von Snapshots |
Cloud Composer 1, Airflow 2 | Cloud Composer 2 | Parallele, manuelle Übertragung | Anleitung zur manuellen Migration |
Cloud Composer 1, Airflow 1 | Cloud Composer 2, Airflow 2 | Im Vergleich, mit Snapshots | Anleitung zur Migration von Snapshots |
Cloud Composer 1, Airflow 1 | Cloud Composer 2, Airflow 2 | Parallele, manuelle Übertragung | Anleitung zur manuellen Migration |
Cloud Composer 1, Airflow 1 | Cloud Composer 1, Airflow 2 | Parallele, manuelle Übertragung | Anleitung zur manuellen Migration |
Migrationsskript
Das Migrationsskript ist ein Python-Script für parallele Migrationen, das den Migrationsprozess von Cloud Composer 2 zu Cloud Composer 3 automatisiert. Dabei werden Umgebungs-Snapshots verwendet, um die Konfiguration der Umgebung in die neue Umgebung zu übertragen.
Das Script führt die folgenden Aktionen aus:
Ruft die Konfiguration der Cloud Composer 2-Umgebung ab.
Erstellt eine Cloud Composer 3-Umgebung mit einer Konfiguration, die der abgerufenen Konfiguration entspricht.
Da Cloud Composer 3-Umgebungen eine andere Architektur haben, müssen einige Parameter möglicherweise angepasst werden, um den Unterschieden Rechnung zu tragen. Die meisten Parameter der Umgebung können Sie auch später anpassen.
Alle DAGs in der Cloud Composer 2-Umgebung werden einzeln pausiert. Die Pausierung wird später nur für DAGs aufgehoben, die in der Cloud Composer 2-Umgebung pausiert wurden.
Speichert einen Snapshot der Quell-Cloud Composer 2-Umgebung. Der Snapshot wird am Standardspeicherort für Snapshots gespeichert, dem Bucket der Cloud Composer 2-Umgebung.
Lädt den Snapshot in die Cloud Composer 3-Umgebung.
Das Script prüft nicht die Kompatibilität benutzerdefinierter PyPI-Pakete, Umgebungsvariablen und Airflow-Konfigurationsoptionsüberschreibungen mit der Cloud Composer 3-Umgebung.
Bei Konflikten schlägt die Migration nach dem Erstellen der Cloud Composer 3-Umgebung beim Laden des Snapshots fehl. In diesem Fall können Sie entweder die Konfiguration Ihrer Cloud Composer 2-Umgebung anpassen, um den Konflikt zu beheben, oder ohne Migrationsskript migrieren und das Laden benutzerdefinierter PyPI-Pakete, Umgebungsvariablen oder Airflow-Konfigurationsüberschreibungen beim Laden des Snapshots überspringen.
Heben Sie die Pausierung der DAGs in der Cloud Composer 3-Umgebung auf. Wenn einige DAGs bereits pausiert waren, bevor Sie das Script ausgeführt haben, bleiben sie pausiert.
Für das Script gelten die folgenden Einschränkungen:
Das Script erstellt immer eine neue Cloud Composer 3-Umgebung. Es ist nicht möglich, den Snapshot in eine vorhandene Cloud Composer 3-Umgebung zu laden. Dazu können Sie mithilfe von Snapshots migrieren, ohne das Migrationsskript zu verwenden.
Das Script erstellt eine Cloud Composer 3-Umgebung nur in derselben Region und im selben Projekt wie die Cloud Composer 2-Umgebung.
Sie können Snapshots nur in derselben oder einer höheren 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 Cloud Composer 2-Umgebungen migriert werden.
Hinweise
Da das Migrationsskript eine Umgebung erstellt und dann einen Snapshot speichert und lädt, kann der Migrationsprozess mehr als eine Stunde dauern.
Das Script verwendet Snapshots. Snapshots werden unterstützt
in Cloud Composer 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 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 Richtlinien von Airflow 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 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.
Zu Cloud Composer 3 migrieren
In diesem Abschnitt wird der Migrationsprozess mit dem Migrationsskript beschrieben.
Unterschiede zwischen Cloud Composer 2 und Cloud Composer 3
Liste der Unterschiede zwischen Cloud Composer 2 und Cloud Composer 3
Achten Sie darauf, dass in Ihrer Umgebung keine Funktionen verwendet werden, die in Cloud Composer 3 noch nicht verfügbar sind. Außerdem sollten Sie mit der Verwendung und Konfiguration von Cloud Composer 3-spezifischen Funktionen vertraut sein.
Prüfen, ob Ihre DAGs mit Cloud Composer 3 kompatibel sind
So sorgen Sie dafür, dass Ihre DAGs mit Cloud Composer 3 kompatibel sind:
Die Liste der Pakete in der Cloud Composer 3-Umgebung kann sich von der in Ihrer Cloud Composer 2-Umgebung unterscheiden. Dies kann sich auf die Kompatibilität Ihrer DAGs mit Cloud Composer 3 auswirken.
In Cloud Composer 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.
Abhängigkeiten des Scripts installieren
Für das Script ist Python Version 3.8 oder höher erforderlich.
Das Migrationsskript verwendet die gcloud CLI und
curl
-Dienstprogramme. 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 Sie in der gcloud CLI:
gcloud auth login
Parameter der neuen Umgebung in der Vorschau ansehen
Sie können sich eine Vorschau der Parameter der Cloud Composer 3-Umgebung ansehen, bevor Sie migrieren. So können Sie sehen, wie die Konfiguration der Cloud Composer 2-Umgebung mit Cloud Composer 3 übereinstimmt.
Überschreibungen von 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
: den Namen Ihrer Cloud Composer 2-Umgebung.LOCATION
: die Region, in der sich die Cloud Composer 2-Umgebung befindet. Die Cloud Composer 3-Umgebung wird in derselben Region erstellt.COMPOSER_3_AIRFLOW_VERSION
: die Airflow-Version der Cloud Composer 3-Umgebung. Diese Version muss mit der Version in der Cloud Composer 2-Umgebung identisch oder höher sein und zu den in Cloud Composer 3 verfügbaren Versionen gehören.
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
Status der Umgebung prüfen
Die Cloud Composer 2-Umgebung, die Sie migrieren möchten, muss betriebsbereit sein.
Wenn Ihre Umgebung nicht fehlerfrei ist, schlägt der Migrationsprozess nach dem Erstellen einer neuen Cloud Composer 3-Umgebung fehl, da kein Snapshot erstellt werden kann.
Weitere Informationen zum Überprüfen des Zustands der Umgebung und der Datenbank 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
: den Namen Ihrer Cloud Composer 2-Umgebung.LOCATION
: die Region, in der sich die Cloud Composer 2-Umgebung befindet. Die Cloud Composer 3-Umgebung wird in derselben Region erstellt.COMPOSER_3_AIRFLOW_VERSION
: die Airflow-Version der Cloud Composer 3-Umgebung. Diese Version muss mit der Version in der Cloud Composer 2-Umgebung identisch oder höher sein und zu den in Cloud Composer 3 verfügbaren Versionen gehören.
DAG-Fehler prüfen
Wechseln Sie in der Airflow-Weboberfläche zu DAGs und suchen Sie nach gemeldeten DAG-Syntaxfehlern.
Prüfen Sie, ob die DAG-Ausführungen für den richtigen Zeitpunkt geplant sind.
Warten Sie, bis die DAG-Ausführungen in der Cloud Composer 3-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 2-Umgebung nicht auf. Andernfalls wird in der Cloud Composer 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 Cloud Composer 3 ausgeführt wird.
Cloud Composer 3-Umgebung überwachen
Überwachen Sie Ihre Cloud Composer 3-Umgebung auf potenzielle Probleme, fehlgeschlagene DAG-Ausführungen und den allgemeinen Umgebungsstatus.
Wenn die Cloud Composer 3-Umgebung für einen ausreichend langen Zeitraum problemlos ausgeführt wird, sollten Sie die Cloud Composer 2-Umgebung vielleicht löschen.