In Cloud Storage gespeicherte Daten

Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)

Auf dieser Seite wird erläutert, welche Daten von Managed Service for Apache Airflow für Ihre Umgebung in Cloud Storage gespeichert werden.

Beim Erstellen einer Umgebung wird von Managed Airflow ein Cloud Storage Bucket erstellt und der Bucket Ihrer Umgebung zugeordnet. Der Name dieses Buckets basiert auf der Umgebungsregion, dem Namen und einer Zufallskennung wie z. B. us-central1-b1-6efabcde-bucket.

Managed Airflow 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 die Airflow-Komponenten die aktualisierte Version. Managed Airflow 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-UI und auf dem Tab Logs in der Google Cloud Console verfügbar.

Managed Airflow synchronisiert Ordner unidirektional: vom Bucket zu Airflow-Komponenten. Unidirektionale Synchronisierung bedeutet, dass lokale Änderungen in diesen Ordnern auf 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 Airflow-Planern und -Workern synchronisiert.

In Airflow 2 wird der Inhalt des Ordners plugins/ auch mit dem Airflow-Webserver synchronisiert. In Airflow 1 wird der Inhalt der Ordner 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. Wenn Sie zu viele Daten in dags/ und plugins/ speichern, kann dies zu Unterbrechungen und Problemen führen, z. B.:

  • Der lokale Speicher eines Workers oder Planers ist voll und er wird entfernt, weil nicht genügend Speicherplatz auf dem lokalen Laufwerk der Komponente vorhanden ist.

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

  • Die Synchronisierung von Dateien aus den Ordnern dags/ und plugins/ mit Workern und Planern ist nicht möglich. Beispiel: Sie speichern eine 2 GB große 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 voll und die Synchronisierung kann nicht abgeschlossen werden.

Ordner für DAGs und Plug-ins

Speichern Sie zur Vermeidung von DAG-Ausführungsfehlern Ihre DAGs, Plug-ins und Python-Module in den Ordnern dags/ oder plugins/. Dies gilt auch dann, wenn die Python-Module keine DAGs oder Plug-ins enthalten.

Beispiel: Sie verwenden einen DataFlowPythonOperator, der auf eine py_file-Dataflow-Pipeline verweist. Diese 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. Beispiel: Wenn Managed Service for Apache Airflow versucht, eine bestimmte Datei zum ersten Mal zu lesen, während:

  • DAG-Parsing: Wenn eine Datei während des DAG-Parsings zum ersten Mal gelesen wird, synchronisiert Managed Service for Apache Airflow sie mit dem Planer, der den DAG parst.

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

Airflow-Komponenten haben nur begrenzten lokalen Speicher. Löschen Sie daher heruntergeladene Dateien, um Speicherplatz auf den Festplatten Ihrer Komponenten freizugeben. Beachten Sie, dass die Speichernutzung auch vorübergehend ansteigen kann, wenn mehrere Tasks gleichzeitig dieselbe Datei auf einen einzelnen Airflow-Worker herunterladen.

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

In Airflow 2 wird die DAG-Serialisierung standardmäßig verwendet. Der Ordner plugins/ wird automatisch mit dem Webserver synchronisiert, damit Plug-ins von der 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 ist standardmäßig in Managed Airflow 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 den Ordnern dags/ und plugins/ mit dem Webserver synchronisiert.

Nächste Schritte