In Cloud Storage gespeicherte Daten

Cloud Composer 1 Cloud Composer 2

Auf dieser Seite wird beschrieben, welche Daten von Cloud Composer für Ihre Umgebung in Cloud Storage gespeichert werden.

Beim Erstellen einer Umgebung wird von Cloud Composer ein Cloud Storage-Bucket erstellt und Ihrer Umgebung zugeordnet. Der Name des Buckets basiert auf der Umgebungsregion, dem Namen und einer zufälligen ID wie us-central1-b1-6efabcde-bucket.

Cloud Composer synchronisiert bestimmte Ordner im Bucket Ihrer Umgebung mit Airflow-Komponenten, die in Ihrer Umgebung ausgeführt werden. Wenn Sie beispielsweise eine Datei mit dem Code Ihres Airflow-DAG im Bucket der Umgebung aktualisieren, erhalten die Airflow-Komponenten auch die aktualisierte Version. Cloud Composer verwendet Cloud Storage FUSE für die Synchronisierung.

Ordner im Cloud Storage-Bucket

Ordner Speicherpfad Zugeordnetes Verzeichnis Beschreibung
DAG gs://bucket-name/dags /home/airflow/gcs/dags Speichert die DAGs für Ihre Umgebung.
Plug‑ins gs://bucket-name/plugins /home/airflow/gcs/plugins Speichert Ihre benutzerdefinierten Plug-ins, wie z. B. benutzerdefinierte interne Airflow-Operatoren, Hooks, Sensoren oder Oberflächen.
Daten gs://bucket-name/data /home/airflow/gcs/data Speichert die Daten, die Aufgaben generieren und verwenden.
Logs gs://bucket-name/logs /home/airflow/gcs/logs Speichert die Airflow-Logs für Aufgaben. Logs sind auch in der Airflow-Weboberfläche und auf dem Tab Logs in der Google Cloud Console verfügbar.

Cloud Composer synchronisiert die Ordner dags/ und plugins/ unidirektional. Unidirektionale Synchronisierung bedeutet, dass lokale Änderungen in diesen Ordnern auf einer Airflow-Komponente überschrieben werden. Die Ordner data/ und logs/ werden bidirektional synchronisiert.

Die Datensynchronisierung ist letztendlich konsistent. Verwenden Sie XComs, um Nachrichten von einem Operator an einen anderen zu senden.

Überlegungen zur Kapazität

Daten aus den Ordnern dags/, plugins/ und data/ werden mit Airflow-Planern und -Workern synchronisiert.

In Airflow 2 wird der Inhalt des Ordners plugins/ auch mit dem Airflow-Webserver synchronisiert. In Airflow 1 werden die Inhaltsordner dags/ und plugins/ nur dann mit dem Airflow-Webserver synchronisiert, wenn die DAG-Serialisierung deaktiviert ist. Andernfalls wird die Synchronisierung nicht ausgeführt.

Je mehr Daten in diesen Ordnern abgelegt werden, desto mehr Speicherplatz ist im lokalen Speicher der Airflow-Komponenten belegt. Wenn zu viele Daten in dags/ und plugins/ gespeichert werden, kann dies zu Betriebsstörungen und folgenden Problemen führen:

  • Ein Worker oder Planer hat keinen lokalen Speicher mehr und wird entfernt, weil nicht genügend Speicherplatz auf dem lokalen Laufwerk der Komponente vorhanden ist.

  • Die Synchronisierung der Dateien aus den Ordnern dags/ und plugins/ mit Workern und Planern dauert sehr lange.

  • Das Synchronisieren von Dateien aus den Ordnern dags/ und plugins/ mit Workern und Planern wird unmöglich. Sie speichern beispielsweise eine 2-GB-Datei im Ordner dags/, aber das lokale Laufwerk eines Airflow-Workers kann nur 1 GB aufnehmen. Während der Synchronisierung ist der lokale Speicher des Workers aufgebraucht und die Synchronisierung kann nicht abgeschlossen werden.

DAGs und Plug-ins-Ordner

Speichern Sie die DAGs, Plug-ins und Python-Module in den Ordnern dags/ oder plugins/, um DAG-Ausführungsfehler zu vermeiden, auch wenn die Python-Module keine DAGs oder Plug-ins enthalten.

Sie verwenden beispielsweise einen DataFlowPythonOperator, der auf eine py_file-Dataflow-Pipeline verweist. Diese py_file enthält keine DAGs oder Plug-ins. Sie müssen sie aber trotzdem im Ordner dags/ oder plugins/ speichern.

Datenordner

Es gibt Szenarien, in denen bestimmte Dateien aus dem Ordner data/ mit einer bestimmten Airflow-Komponente synchronisiert werden. Das ist beispielsweise der Fall, wenn Cloud Composer während des folgenden Zeitraums zum ersten Mal versucht, eine bestimmte Datei zu lesen:

  • DAG-Parsing: Wenn eine Datei beim DAG-Parsing zum ersten Mal gelesen wird, synchronisiert Cloud Composer sie mit dem Planer, der den DAG analysiert.

  • DAG-Ausführung: Wenn eine Datei während der DAG-Ausführung zum ersten Mal gelesen wird, synchronisiert Cloud Composer sie mit dem Worker, der die Ausführung ausführt.

Airflow-Komponenten haben nur begrenzten lokalen Speicherplatz. Daher sollten Sie heruntergeladene Dateien löschen, um Speicherplatz in Ihren Komponenten freizugeben. Beachten Sie, dass die lokale Speichernutzung auch vorübergehend steigen kann, wenn Sie gleichzeitige Aufgaben haben, die dieselbe Datei auf einen einzelnen Airflow-Worker herunterladen.

Logordner

Der Ordner logs/ wird mithilfe der Cloud Storage API von Airflow-Workern mit dem Bucket der Umgebung synchronisiert.

Das Cloud Storage API-Kontingent wird nach der Menge der verschobenen Daten berechnet. Die Anzahl der Airflow-Aufgaben, die Ihr System ausführt, kann also die Nutzung der Cloud Storage API erhöhen: Je mehr Aufgaben Sie ausführen, desto größer sind die Logdateien.

Synchronisierung mit dem Webserver

Airflow 2 verwendet die DAG-Serialisierung standardmäßig. Der Ordner plugins/ wird automatisch mit dem Webserver synchronisiert, damit Plug-ins über die Airflow-UI geladen werden können. Sie können die DAG-Serialisierung in Airflow 2 nicht deaktivieren.

In Airflow 1 wird die DAG-Serialisierung unterstützt und in Cloud Composer standardmäßig aktiviert.

  • Wenn die DAG-Serialisierung aktiviert ist, werden die Dateien aus den Ordnern dags/ und plugins/ nicht mit dem Webserver synchronisiert.
  • Wenn die DAG-Serialisierung deaktiviert ist, werden die Dateien aus dags/ und plugins/ mit dem Webserver synchronisiert.

Nächste Schritte