In Cloud Storage gespeicherte Daten

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

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 z. B. 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 auch Airflow-Komponenten 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 Google Cloud console verfügbar.

Cloud Composer synchronisiert Ordner unidirektional: vom Bucket zu Airflow-Komponenten. Unidirektionale Synchronisierung bedeutet, dass lokale Änderungen in diesen Ordnern in einer Airflow-Komponente überschrieben werden.

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 den Airflow-Planern und -Workern synchronisiert.

Der Inhalt des Ordners plugins/ wird mit dem Airflow-Webserver synchronisiert.

Je mehr Daten in diese Ordner eingefügt werden, desto mehr Speicherplatz wird im lokalen Speicher der Airflow-Komponenten belegt. Wenn zu viele Daten in dags/ und plugins/ gespeichert werden, kann dies zu Problemen führen, z. B.:

  • Ein Worker oder ein Scheduler hat nicht mehr genügend lokalen Speicherplatz und wird entfernt, weil auf der lokalen Festplatte der Komponente nicht genügend Speicherplatz vorhanden ist.

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

  • Das Synchronisieren von Dateien aus den Ordnern dags/ und plugins/ mit Workern und Planern ist nicht mehr möglich. Sie speichern beispielsweise eine 2 GB große Datei im Ordner dags/, aber auf der lokalen Festplatte eines Airflow-Workers ist nur 1 GB verfügbar. Während der Synchronisierung geht dem Worker der lokale Speicherplatz aus und die Synchronisierung kann nicht abgeschlossen werden.

Ordner für DAGs und Plug-ins

Speichern Sie zur Vermeidung von DAG-Laufzeitfehlern Ihre DAGs, Plug-ins und Python-Module im Ordner dags/ oder plugins/. Dies gilt auch dann, wenn die Python-Module keine DAGs oder Plug-ins enthalten.

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

Datenordner

Es gibt Szenarien, in denen bestimmte Dateien aus dem Ordner data/ mit einer bestimmten Airflow-Komponente synchronisiert werden. Wenn Cloud Composer beispielsweise zum ersten Mal versucht, eine bestimmte Datei zu lesen, geschieht dies in folgenden Fällen:

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

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

Airflow-Komponenten haben nur begrenzten lokalen Speicherplatz. Löschen Sie daher heruntergeladene Dateien, um Speicherplatz in Ihren Komponenten freizugeben. Die lokale Speichernutzung kann auch vorübergehend ansteigen, wenn Sie gleichzeitige Aufgaben haben, bei denen dieselbe Datei auf einen einzelnen Airflow-Worker heruntergeladen wird.

Ordner „Logs“

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

Das Cloud Storage API-Kontingent wird anhand 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 Ihre Logdateien.

Synchronisierung mit dem Webserver

Der Ordner plugins/ wird automatisch mit dem Webserver synchronisiert, sodass Plugins von der Airflow-Benutzeroberfläche geladen werden können. In Cloud Composer 3 können Sie Webserver-Plug-ins nach Bedarf deaktivieren und aktivieren, ohne Dateien aus dem Bucket der Umgebung zu löschen.

Nächste Schritte