In Cloud Storage gespeicherte Daten

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

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

Beim Erstellen einer Umgebung wird von Cloud Composer ein Cloud Storage-Bucket erstellt und Ihrer Umgebung zugeordnet. Der Name dieses 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 in der Bucket der Umgebung erhalten auch die 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 der Google Cloud Console verfügbar.

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

Die Datensynchronisierung unterliegt der Eventual Consistency. Nachrichten senden von einem Operator zum anderen, Verwenden Sie XComs.

Überlegungen zur Kapazität

Daten aus den Ordnern dags/, plugins/ und data/ werden mit Airflow synchronisiert Planer und Worker.

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

Je mehr Daten in diese Ordner verschoben werden, desto mehr Speicherplatz wird im lokalen Speicher der Airflow-Komponenten belegt. Wenn Sie zu viele Daten in dags/ und plugins/ speichern, kann das zu Unterbrechungen Ihrer Abläufe und zu Problemen wie den folgenden führen:

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

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

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

Ordner „DAGs“ und „Plug-ins“

Speichern Sie zur Vermeidung von Fehlern bei der DAG-Ausführung 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.

Angenommen, Sie verwenden eine DataFlowPythonOperator, die auf eine py_file-Dataflow-Pipeline verweist. Dass py_file keine DAGs oder Plug-ins, müssen aber im Ordner dags/ oder plugins/ gespeichert werden.

Datenordner

Es kann vorkommen, dass bestimmte Dateien aus dem Ordner data/ mit einer bestimmten Airflow-Komponente synchronisiert. Wenn beispielsweise Während der folgenden Phasen versucht Cloud Composer, eine bestimmte Datei zum ersten Mal zu lesen:

  • DAG-Parsing: Wenn eine Datei zum ersten Mal während des DAG-Parsings gelesen wird, Cloud Composer synchronisiert ihn 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 Cloud Composer sie mit dem Worker, der die Ausführung durchführt.

Airflow-Komponenten haben nur begrenzten lokalen Speicherplatz. Sie sollten daher heruntergeladene Dateien löschen, um Speicherplatz in Ihren Komponenten freizugeben. Die Nutzung des lokalen Speichers kann auch vorübergehend steigen, wenn Sie gleichzeitige Aufgaben haben, die dieselbe Datei auf einen einzelnen Airflow-Worker herunterladen.

Logordner

Der Ordner logs/ wird über die 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 auf Ihrem System ausgeführt werden, kann die Nutzung der Cloud Storage API erhöhen: Je mehr Aufgaben Sie ausführen, desto größer sind Ihre Protokolldateien.

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-Benutzeroberfläche geladen werden können. In Airflow 2 kann die DAG-Serialisierung nicht deaktiviert werden.

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

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

Nächste Schritte