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 (Legacy Gen 1)-Umgebungen (Airflow 1) zu Managed Airflow (Gen 2) (Airflow 2) übertragen.
In diesem Migrationsleitfaden wird die Funktion „Snapshots“ verwendet.
Weitere Migrationsleitfäden
| Von | An | Methode | Leitfaden |
|---|---|---|---|
| Managed Airflow (Gen 3), Airflow 2 | Managed Airflow (Gen 3), Airflow 3 | Parallele, manuelle Übertragung | Leitfaden zur manuellen Migration |
| Managed Airflow (Gen 2) | Managed Airflow (Gen 3) | Parallele Migration mit dem Migrationsskript | Leitfaden zur Migration mit Skript |
| Managed Airflow (Gen 2) | Managed Airflow (Gen 3) | Parallele Migration mit Snapshots | Leitfaden zur Migration mit Snapshots |
| Managed Airflow (Legacy Gen 1), Airflow 2 | Managed Airflow (Gen 3) | Parallele Migration mit Snapshots | Leitfaden zur Migration mit Snapshots |
| Managed Airflow (Legacy Gen 1), Airflow 2 | Managed Airflow (Gen 2) | Parallele Migration mit Snapshots | Leitfaden zur Migration mit Snapshots |
| Managed Airflow (Legacy Gen 1), Airflow 2 | Managed Airflow (Gen 2) | Parallele, manuelle Übertragung | Leitfaden zur manuellen Migration |
| Managed Airflow (Legacy Gen 1), Airflow 1 | Managed Airflow (Gen 2), Airflow 2 | Parallele Migration mit Snapshots | Dieser Leitfaden |
| Managed Airflow (Legacy Gen 1), Airflow 1 | Managed Airflow (Gen 2), Airflow 2 | Parallele, manuelle Übertragung | Leitfaden zur manuellen Migration |
| Managed Airflow (Legacy Gen 1), Airflow 1 | Managed Airflow (Legacy Gen 1), Airflow 2 | Parallele, manuelle Übertragung | Leitfaden zur manuellen Migration |
Hinweis
Snapshots werden in Managed Airflow (Gen 2) Version 2.0.9 und höher unterstützt. In Managed Airflow (Legacy Gen 1) können Umgebungs-Snapshots in Version 1.18.5 gespeichert werden.
Managed Airflow unterstützt die parallele Migration von Managed Airflow (Legacy Gen 1) zu Managed Airflow (Gen 2). Ein direktes Upgrade von Managed Airflow (Legacy Gen 1) zu Managed Airflow (Gen 2) ist nicht möglich.
Sehen Sie sich die Liste der Unterschiede zwischen Managed Airflow (Legacy Gen 1) und Managed Airflow (Gen 2) an.
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, reduzieren Sie die Größe der Airflow-Datenbank.
Die Gesamtzahl der Objekte in den Ordnern
/dags,/pluginsund/dataim Bucket der Umgebung muss weniger als 100.000 betragen,um Snapshots erstellen zu können.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. Erwägen Sie Alternativen wie Cloud Storage, um große Datenmengen zu übertragen.
Da Managed Airflow (Gen 2) Airflow 2 verwendet, umfasst die Migration das Wechseln Ihrer DAGs und der Umgebungskonfiguration zu Airflow 2. Informationen zu den funktionsgefährdenden Änderungen zwischen Airflow 1 und Airflow 2 in Managed Airflow finden Sie im Leitfaden für die Migration von Airflow 1 zu Airflow 2.
In diesem Leitfaden kombinieren Sie die Migration zu Airflow 2 und die Migration zu Managed Airflow (Gen 2) in einem Migrationsverfahren. Auf diese Weise müssen Sie vor der Migration zu Managed Airflow (Gen 2) nicht zu einer Managed Airflow (Legacy Gen 1)-Umgebung mit Airflow 2 migrieren.
Schritt 1: Upgrade auf Airflow 1.10.15 ausführen
Wenn Ihre Umgebung eine Airflow-Version vor 1.10.15 verwendet, führen Sie ein Upgrade Ihrer Umgebung auf eine Managed Airflow-Version durch, die Airflow 1.10.15 verwendet und Snapshots unterstützt.
Schritt 2: Kompatibilität mit Airflow 2 prüfen
Informationen zum Prüfen auf mögliche Konflikte mit Airflow 2 finden Sie im Leitfaden zum Upgrade auf Airflow 2.0 oder höher im Abschnitt Upgrade von DAGs.
Ein häufig auftretendes Problem steht mit inkompatiblen Importpfaden in Zusammenhang. Weitere Informationen zur Behebung dieses Kompatibilitätsproblems finden Sie im Leitfaden zum Upgrade auf Airflow 2.0 oder höher im Abschnitt zu Backport-Anbietern.
Schritt 3: Prüfen Sie, ob Ihre DAGs für Airflow 2 bereit sind.
Achten Sie vor der Übertragung von DAGs an Ihre Managed Airflow (Gen 2)-Umgebung auf Folgendes:
Ihre DAGs werden erfolgreich ausgeführt und es gibt keine weiteren Kompatibilitätsprobleme.
Ihre DAGs verwenden die richtigen Importanweisungen.
Die neue Importanweisung für
BigQueryCreateDataTransferOperatorkann beispielsweise so aussehen:from airflow.providers.google.cloud.operators.bigquery_dts \ import BigQueryCreateDataTransferOperatorIhre DAGs werden für Airflow 2 aktualisiert. Diese Änderung ist mit Airflow 1.10.14 und höheren Versionen kompatibel.
Schritt 4: DAGs in Ihrer Managed Airflow (Legacy Gen 1)-Umgebung pausieren
Um doppelte DAG-Ausführungen zu vermeiden, pausieren Sie alle DAGs in Ihrer Managed Airflow (Legacy Gen 1)-Umgebung, bevor Sie den Snapshot speichern.
Sie haben dazu folgende Möglichkeiten:
Wechseln Sie in der Airflow-Weboberfläche, 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 pauseErsetzen Sie:
COMPOSER_1_ENVdurch den Namen Ihrer Managed Airflow (Legacy Gen 1)-Umgebung.PROJECT_IDdurch die Projekt-ID.COMPOSER_1_LOCATIONdurch die Region, in der sich die Umgebung befindet.
Schritt 5: Snapshot Ihrer Managed Airflow (Legacy Gen 1)-Umgebung speichern
Console
Erstellen Sie einen Snapshot Ihrer Umgebung:
Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.
Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Managed Airflow (Legacy Gen 1)-Umgebung. Die Seite Umgebungsdetails wird geöffnet.
Klicken Sie auf Snapshot erstellen.
Klicken Sie im Dialogfeld Snapshot erstellen auf Senden. In diesem Leitfaden speichern Sie den Snapshot im Bucket der Managed Airflow (Legacy Gen 1)-Umgebung. Sie können aber auch einen anderen Speicherort auswählen.
Warten Sie, bis Managed Airflow den Snapshot erstellt hat.
gcloud
Rufen Sie den Bucket-URI Ihrer Managed Airflow (Legacy Gen 1)-Umgebung ab:
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_ENVdurch den Namen Ihrer Managed Airflow (Legacy Gen 1)-Umgebung.COMPOSER_1_LOCATIONdurch die Region, in der sich die Umgebung befindet.
Entfernen Sie in der Ausgabe den Ordner
/dags. Das Ergebnis ist der URI des Buckets Ihrer Managed Airflow (Legacy Gen 1)-Umgebung.Ändern Sie beispielsweise
gs://us-central1-example-916807e1-bucket/dagsings://us-central1-example-916807e1-bucket.
Erstellen Sie einen Snapshot Ihrer Managed Airflow (Legacy Gen 1)-Umgebung:
gcloud composer environments snapshots save \ COMPOSER_1_ENV \ --location COMPOSER_1_LOCATION \ --snapshot-location "COMPOSER_1_SNAPSHOTS_FOLDER"Ersetzen Sie:
COMPOSER_1_ENVdurch den Namen Ihrer Managed Airflow (Legacy Gen 1)-Umgebung.COMPOSER_1_LOCATIONdurch die Region, in der sich die Managed Airflow (Legacy Gen 1)-Umgebung befindet.COMPOSER_1_SNAPSHOTS_FOLDERdurch den URI des Buckets Ihrer Managed Airflow (Legacy Gen 1)-Umgebung. In diesem Leitfaden speichern Sie den Snapshot im Bucket der Managed Airflow (Legacy Gen 1)-Umgebung. 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 6: Managed Airflow (Gen 2)-Umgebung erstellen
Erstellen Sie eine Managed Airflow (Gen 2)-Umgebung. 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 diese später ersetzen, wenn Sie den Snapshot Ihrer Managed Airflow (Legacy Gen 1)-Umgebung laden.
Einige Konfigurationsoptionen von Airflow 1 verwenden in Airflow 2 einen anderen Namen und Abschnitt. Weitere Informationen finden Sie unter Konfigurationsänderungen.
Schritt 7: Snapshot in Ihre Managed Airflow (Gen 2)-Umgebung laden
Console
So laden Sie den Snapshot in Ihre Managed Airflow (Gen 2)-Umgebung:
Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.
Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Managed Airflow (Gen 2)-Umgebung. Die Seite Umgebungsdetails wird geöffnet.
Klicken Sie auf Snapshot laden.
Klicken Sie im Dialogfeld Snapshot laden auf Durchsuchen.
Wählen Sie den Ordner mit dem Snapshot aus. Wenn Sie für diesen Leitfaden den standardmäßigen Standort verwenden, befindet sich dieser Ordner im Bucket Ihrer Managed Airflow (Legacy Gen 1)-Umgebung 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.Klicken Sie auf Laden und warten Sie, bis Managed Airflow den Snapshot geladen hat.
gcloud
Laden Sie den Snapshot Ihrer Managed Airflow (Legacy Gen 1)-Umgebung in Ihre Managed Airflow (Gen 2)-Umgebung:
gcloud composer environments snapshots load \
COMPOSER_2_ENV \
--location COMPOSER_2_LOCATION \
--snapshot-path "SNAPSHOT_PATH"
Ersetzen Sie:
COMPOSER_2_ENVdurch den Namen Ihrer Managed Airflow (Gen 2)-Umgebung.COMPOSER_2_LOCATIONdurch die Region, in der sich die Managed Airflow (Gen 2)-Umgebung befindet.SNAPSHOT_PATHdurch den URI des Buckets Ihrer Managed Airflow (Legacy Gen 1)-Umgebung, 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 8: Pausierung von DAGs in der Managed Airflow (Gen 2)-Umgebung aufheben
Sie haben dazu folgende Möglichkeiten:
Wechseln Sie in der Airflow-Weboberfläche, zu DAGs und heben Sie die Pausierung aller DAGs manuell einzeln auf.
Verwenden Sie das composer_dags-Skript, um die Pausierung aller DAGs aufzuheben:
python3 composer_dags.py --environment COMPOSER_2_ENV \ --project PROJECT_ID \ --location COMPOSER_2_LOCATION \ --operation unpauseErsetzen Sie:
COMPOSER_2_ENVdurch den Namen Ihrer Managed Airflow (Gen 2)-Umgebung.PROJECT_IDdurch die Projekt-ID.COMPOSER_2_LOCATIONdurch 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 unter Trying the API in der Airflow Dokumentation.
Schritt 9: 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 zum richtigen Zeitpunkt geplant sind.
Warten Sie, bis die DAG-Ausführungen in der Managed Airflow (Gen 2)-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 (Legacy Gen 1)-Umgebung nicht auf. Andernfalls wird in der Managed Airflow (Legacy Gen 1)-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 2) ausgeführt wird.
Schritt 10: Managed Airflow (Gen 2)-Umgebung überwachen
Nachdem Sie alle DAGs und Konfigurationen in die Managed Airflow (Gen 2)-Umgebung ü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
- Fehlerbehebung bei DAGs
- Fehlerbehebung beim Erstellen der Umgebung
- Fehlerbehebung bei Umgebungsupdates
- Backport-Pakete verwenden