DAG のシリアル化環境の構成

通常の Cloud Composer 環境では、有向非巡回グラフ(DAG)は Airflow スケジューラとウェブサーバーによって継続的に処理されます。Airflow ウェブサーバーの信頼性とパフォーマンスを向上させるには、DAG のシリアル化を有効にして、ウェブサーバーに送信する前に DAG ファイルをスケジューラに処理させます。

仕組み

DAG のシリアル化なしでは、DAG はスケジューラとウェブサーバーに同時に処理され、ウェブサーバーが起動するとすぐに DAG バッグの全体を読み込みます。 DAG のシリアル化を有効にすると、ウェブサーバーが起動する前にすべての DAG ファイルがスケジューラに解析され、その結果がシリアル化された DAG テーブルに保存されます。その後、ウェブサーバーはオンデマンドで各 DAG を処理するためにテーブルから読み込みます。 この方法で DAG をシリアル化すると、特に多数の DAG を処理する場合に、ウェブサーバーの CPU とメモリの使用量が削減されます。

前提条件と制限事項

  • DAG のシリアル化は、Composer バージョン 1.8.2 以降と Airflow バージョン 1.10.3 以降を使用する Cloud Composer 環境でのみ有効にできます。利用可能なすべてのバージョンについては、Cloud Composer のバージョン リストをご覧ください。

  • DAG のシリアル化は、非同期 DAG 読み込みと同時には有効にできません。

  • DAG のシリアル化を有効にすると、Cloud Composer のすべての Airflow ウェブサーバー プラグインが無効になります。これは、Airflow 演算子、センサーなどを含む、スケジューラまたはワーカーのプラグインには影響しません。

DAG のシリアル化を有効にする

DAG のシリアル化を有効にするには、次の構成パラメータを指定する必要があります。

セクション キー
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 はシリアル化された DAG がデータベースで更新される頻度を制御し、[scheduler] dag_dir_list_interval はデータベースから削除された DAG が削除される頻度を制御します。更新頻度が高い場合はパフォーマンスに悪影響が及ぶ可能性があるため、これらを 30 秒に設定することをおすすめします。

Airflow 構成をオーバーライドする

Airflow 構成をオーバーライドするには、次の 2 つの方法があります。

DAG のシリアル化の無効化

DAG のシリアル化を無効にするには、Airflow 構成のオーバーライドを使用して、[core] store_serialized_dags[core] store_dag_codeFalse に設定します。

参照

DAG のシリアル化の詳細については、Airflow のドキュメントの関連記事をご覧ください。