Zu Managed Airflow (Gen. 3) von Managed Airflow (Legacy Gen. 1) (Airflow 2) migrieren

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 2) mithilfe von Snapshots zu Managed Airflow (Gen 3) (Airflow 2) übertragen.

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 Anleitung zur Migration mit Skript
Managed Airflow (Gen 2) Managed Airflow (Gen 3) Parallele Migration mit Snapshots Anleitung zur Migration mit Snapshots
Managed Airflow (Legacy Gen 1), Airflow 2 Managed Airflow (Gen 3) Parallele Migration mit Snapshots Dieser Leitfaden
Managed Airflow (Legacy Gen 1), Airflow 2 Managed Airflow (Gen 2) Parallele Migration mit Snapshots Anleitung zur Migration mit 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 Anleitung zur Migration mit 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

Hinweis

  • Managed Airflow unterstützt die parallele Migration von Managed Airflow (Legacy Gen 1) zu Managed Airflow (Gen 3). Es ist nicht möglich, ein direktes Upgrade von Managed Airflow (Legacy Gen 1) auf Managed Airflow (Gen 3) durchzuführen.

  • Sehen Sie sich die Liste der Unterschiede zwischen Managed Airflow (Legacy Gen 1), Managed Airflow (Gen 2) und Managed Airflow (Gen 3) 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, 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 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. Verwenden Sie Alternativen wie Cloud Storage, um große Datenmengen zu übertragen.

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 Vorschläge beachten:

  • Die [Liste der Pakete][cc-versions] in der Managed Airflow (Gen 3)-Umgebung kann sich von der in Ihrer Managed Airflow (Legacy Gen 1)-Umgebung unterscheiden. Dies kann sich auf die Kompatibilität Ihrer DAGs mit Managed Airflow (Gen 3) auswirken.

  • Managed Airflow lädt Konfigurationsüberschreibungen, Umgebungsvariablen und PyPI-Pakete aus dem Snapshot Ihrer Managed Airflow (Legacy Gen 1)-Umgebung in Managed Airflow (Gen 3), ohne sie zu ändern oder an die Kompatibilität anzupassen. Wenn benutzerdefinierte PyPI-Pakete Abhängigkeitskonflikte verursachen, können Sie die Installation überspringen, wenn Sie den Snapshot laden.

  • In Managed Airflow (Gen 3) befindet sich der Cluster der Umgebung im Mandantenprojekt. Prüfen Sie, ob 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.

  • In Managed Airflow (Gen 3) kann nicht direkt auf die Airflow-Datenbank zugegriffen werden. Prüfen Sie, ob Ihre DAGs mit dieser Änderung kompatibel sind.

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. Überspringen Sie den DAG für die Liveness-Überwachung (airflow_monitoring). Er wird für Überwachungszwecke verwendet und ist nicht in Umgebungssnapshots enthalten.

Sie haben 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 pause
    

    Ersetzen Sie:

    • COMPOSER_1_ENV durch den Namen Ihrer Managed Airflow (Legacy Gen 1)-Umgebung.
    • PROJECT_ID durch die Projekt-ID.
    • COMPOSER_1_LOCATION durch die Region, in der sich die Umgebung befindet.
  • (Airflow-Versionen 2.9.1 und höher) Wenn beim Pausieren einer großen Anzahl von DAGs Kontingentfehler auftreten, können Sie alle DAGs gleichzeitig mit den folgenden Airflow CLI-Befehlen pausieren:

    gcloud composer environments run COMPOSER_1_ENV dags pause \
      --project PROJECT_ID \
      --location COMPOSER_1_LOCATION \
      -- -y --treat-dag-id-as-regex ".*"
    
  • (Airflow-Versionen vor 2.9.1) Wenn beim Pausieren einer großen Anzahl von DAGs Kontingentfehler auftreten, können Sie DAGs mit der Airflow REST API pausieren. Weitere Informationen finden Sie unter Trying the API in der Airflow Dokumentation.

Snapshot Ihrer Managed Airflow (Legacy Gen 1)-Umgebung speichern

Console

So erstellen Sie einen Snapshot Ihrer Umgebung:

  1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.

    Zu Umgebungen

  2. Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Managed Airflow (Legacy Gen 1)-Umgebung. Die Seite Umgebungsdetails wird geöffnet.

  3. Klicken Sie auf Snapshot erstellen.

  4. Klicken Sie im Dialogfeld Snapshot erstellen auf Senden. In dieser Anleitung speichern Sie den Snapshot im Bucket der Managed Airflow (Legacy Gen 1)-Umgebung. Sie können aber auch einen anderen Speicherort auswählen.

  5. Warten Sie, bis Managed Airflow den Snapshot erstellt hat.

gcloud

  1. Rufen Sie den Bucket-URI Ihrer Managed Airflow (Legacy Gen 1)-Umgebung ab:

    1. 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_ENV durch den Namen Ihrer Managed Airflow (Legacy Gen 1)-Umgebung.
      • COMPOSER_1_LOCATION durch die Region, in der sich die Umgebung befindet.
    2. 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/dags in gs://us-central1-example-916807e1-bucket.

  2. 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_ENV durch den Namen Ihrer Managed Airflow (Legacy Gen 1)-Umgebung.
    • COMPOSER_1_LOCATION durch die Region, in der sich die Managed Airflow (Legacy Gen 1)-Umgebung befindet.
    • COMPOSER_1_SNAPSHOTS_FOLDER durch den URI des Buckets Ihrer Managed Airflow (Legacy Gen 1)-Umgebung. In dieser Anleitung 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 alle Speicherorte haben, die für Dienst konten beider Umgebungen verfügbar sind.

Managed Airflow (Gen 3)-Umgebung erstellen

Erstellen Sie eine Managed Airflow (Gen 3)-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 sie später ersetzen, wenn Sie den Snapshot Ihrer Managed Airflow (Legacy Gen 1)-Umgebung laden.

Snapshot in Ihre Managed Airflow (Gen 3)-Umgebung laden

Console

So laden Sie den Snapshot in Ihre Managed Airflow (Gen 3)-Umgebung:

  1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.

    Zu Umgebungen

  2. Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Managed Airflow (Gen 3)-Umgebung. Die Seite Umgebungsdetails wird geöffnet.

  3. Klicken Sie auf Snapshot laden.

  4. Klicken Sie im Dialogfeld Snapshot laden auf Durchsuchen.

  5. Wählen Sie den Ordner mit dem Snapshot aus. Wenn Sie den Standardspeicherort für diese Anleitung 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.

  6. 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 3)-Umgebung:

gcloud composer environments snapshots load \
  COMPOSER_3_ENV \
  --location COMPOSER_3_LOCATION \
  --snapshot-path "SNAPSHOT_PATH"

Ersetzen Sie:

  • COMPOSER_3_ENV durch den Namen Ihrer Managed Airflow (Gen 3)-Umgebung.
  • COMPOSER_3_LOCATION durch die Region, in der sich die Managed Airflow (Gen 3)-Umgebung befindet.
  • SNAPSHOT_PATH durch 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.

Pausierung von DAGs in der Managed Airflow (Gen 3)-Umgebung aufheben

Sie haben folgende Möglichkeiten:

  • Wechseln Sie in der Airflow-Weboberfläche, zu DAGs und heben Sie die Pausierung aller DAGs einzeln manuell auf.

  • Verwenden Sie das composer_dags-Skript, um die Pausierung aller DAGs aufzuheben:

    python3 composer_dags.py --environment COMPOSER_3_ENV \
      --project PROJECT_ID \
      --location COMPOSER_3_LOCATION \
      --operation unpause
    

    Ersetzen Sie:

    • COMPOSER_3_ENV durch den Namen Ihrer Managed Airflow (Gen 3)-Umgebung.
    • PROJECT_ID durch die Projekt-ID.
    • COMPOSER_3_LOCATION durch 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 Pausierung aller DAGs gleichzeitig mit den folgenden Airflow CLI-Befehlen aufheben:

    gcloud composer environments run COMPOSER_3_ENV dags unpause \
      --project PROJECT_ID \
      --location COMPOSER_3_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.

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 zum 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 (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.

  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

Nachdem Sie alle DAGs und Konfigurationen in die Managed Airflow (Gen 3)-Umgebung übertragen haben, überwachen Sie diese auf potenzielle Probleme, fehlgeschlagene DAG-Ausführungen und den allgemeinen Umgebungsstatus.

Wenn die Managed Airflow (Gen 3)-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