Umgebungen für die DAG-Serialisierung konfigurieren

In einer normalen Cloud Composer-Umgebung werden gerichtete azyklische Graphen (DAGs) kontinuierlich vom Airflow-Planer und vom Airflow-Webserver verarbeitet. Sie können die Zuverlässigkeit und Leistung des Airflow-Webservers verbessern, indem Sie die DAG-Serialisierung aktivieren. Dadurch wird der Planer angewiesen, DAG-Dateien zu verarbeiten, bevor sie an den Webserver gesendet werden.

So gehts:

Ohne DAG-Serialisierung werden DAGs gleichzeitig vom Planer und dem Webserver verarbeitet. Der Webserver lädt das gesamte DAG-Bag, sobald es gestartet wird. Wenn Sie die DAG-Serialisierung aktivieren, wird der Planer alle DAG-Dateien vor dem Start des Webservers parsen. Die Ergebnisse werden in einer serialisierten DAG-Tabelle gespeichert. Der Webserver lädt dann jeden DAG bei Bedarf aus der Tabelle zur Verarbeitung. Durch die Serialisierung von DAGs wird die CPU- und Speicherauslastung vom Webserver reduziert, insbesondere bei der Verarbeitung einer großen Anzahl von DAGs.

Voraussetzungen und Einschränkungen

  • Die DAG-Serialisierung kann nur in Cloud Composer-Umgebungen aktiviert werden, die Composer Version 1.8.2 oder höher UND Airflow-Version 1.10.3 verwenden. Informationen zu allen verfügbaren Versionen finden Sie in der Liste der Cloud Composer-Versionen.

  • Die DAG-Serialisierung kann nicht gleichzeitig mit dem asynchronen Laden von DAGs aktiviert werden.

  • Wenn Sie die DAG-Serialisierung aktivieren, werden alle Airflow-Webserver-Plug-ins für Cloud Composer deaktiviert. Dies hat keine Auswirkungen auf Planer- oder Worker-Plug-ins, einschließlich Airflow-Operatoren und Sensoren.

DAG-Serialisierung aktivieren

Zum Aktivieren der DAG-Serialisierung müssen Sie die folgenden Konfigurationsparameter angeben:

Bereich Schlüssel Wert
core store_serialized_dags True
core store_dag_code True
core min_serialized_dag_update_interval 30
scheduler dag_dir_list_interval 30

[core] min_serialized_dag_update_interval steuert, wie häufig der serialisierte DAG in der Datenbank aktualisiert wird. [scheduler] dag_dir_list_interval steuert, wie häufig entfernte DAGs aus der Datenbank gelöscht werden. Wir empfehlen, diese auf 30 Sekunden zu setzen, da eine hohe Aktualisierungshäufigkeit die Leistung negativ beeinträchtigen kann.

Airflow-Konfiguration überschreiben

Es gibt zwei Möglichkeiten, Airflow-Konfigurationen zu überschreiben:

DAG-Serialisierung deaktivieren

Deaktivieren Sie die DAG-Serialisierung mit Airflow-Konfigurationsüberschreibungen, um [core] store_serialized_dags und [core] store_dag_code auf False zu setzen.

Verweise

Weitere Informationen zur DAG-Serialisierung finden Sie im entsprechenden Artikel in der Airflow-Dokumentation.