In Cloud Storage gespeicherte Daten

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

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

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 der 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 zur 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 unterliegt der Eventual Consistency. 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 auch der Inhalt des Ordners plugins/ 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 wird im lokalen Speicher der Airflow-Komponenten belegt. Das Speichern zu vieler Daten in dags/ und plugins/ kann Ihren Betrieb stören und unter anderem zu folgenden Problemen führen:

  • Einem Worker oder Planer geht der lokale Speicher aus und der Speicher wird entfernt, weil auf dem lokalen Laufwerk der Komponente nicht genügend Speicherplatz vorhanden ist.

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

  • Die Synchronisierung von Dateien aus den Ordnern dags/ und plugins/ mit Workern und Planern wird nicht mehr möglich. Beispiel: Sie speichern eine Datei mit 2 GB im Ordner dags/, aber das lokale Laufwerk eines Airflow-Workers kann nur 1 GB Platz haben. Während der Synchronisierung ist der lokale Speicher für den Worker aufgebraucht und die Synchronisierung kann nicht abgeschlossen werden.

Ordner für DAGs und Plug-ins

Speichern Sie Ihre DAGs, Plug-ins und Python-Module in den Ordnern dags/ oder plugins/, um Fehler bei der DAG-Ausführung zu vermeiden. Dies gilt auch dann, wenn die Python-Module keine DAGs oder Plug-ins enthalten.

Sie verwenden beispielsweise eine DataFlowPythonOperator, die auf eine Dataflow-Pipeline vom Typ py_file verweist. py_file enthält keine DAGs oder Plug-ins, muss aber dennoch im Ordner dags/ oder plugins/ gespeichert werden.

Datenordner

In bestimmten Szenarien werden bestimmte Dateien aus dem Ordner data/ mit einer bestimmten Airflow-Komponente synchronisiert. Dies ist beispielsweise der Fall, wenn Cloud Composer versucht, eine bestimmte Datei zum ersten Mal 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.

Der lokale Speicher von Airflow-Komponenten ist begrenzt. Daher sollten Sie heruntergeladene Dateien löschen, um Speicherplatz in Ihren Komponenten freizugeben. Beachten Sie, dass die lokale Speichernutzung auch vorübergehend zunehmen kann, wenn gleichzeitig Aufgaben vorhanden sind, bei denen dieselbe Datei auf einen einzelnen Airflow-Worker heruntergeladen wird.

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. Daher kann die Anzahl der von Ihrem System ausgeführten Airflow-Aufgaben Ihre Cloud Storage API-Nutzung erhöhen: Je mehr Aufgaben Sie ausführen, desto größer sind die Logdateien.

Synchronisierung mit dem Webserver

In Airflow 2 wird standardmäßig die DAG-Serialisierung verwendet. 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