2017-01-05 55 views
5

大量のDAGを構成するためのベストプラクティスが何であるか気になるところが気になります。私たちのETLについては、論理的なグループに分類される多くのタスクがありますが、グループは互いに依存しています。次のうちどれがベストプラクティスと見なされますか?AIrflow - 複数ファイルにわたるDAG定義の分割

  • 、そのファイル内のすべてのタスクを持つ大規模なDAGファイル、複数のファイル間でDAGの定義(これを行うには?)
  • は、タスクのグループごとに1つずつ、複数のDAGを定義し、依存関係を設定
  • 分割ワンそれらの間でExternalTask​​Sensorを使用する

他の提案にもオープンしています。

答えて

5

DAGは単なるpythonファイルです。したがって、単一のダグ定義を複数のファイルに分割できます。異なるファイルには、dagオブジェクトを取り込み、そのdagオブジェクトを使用してタスクを作成するメソッドだけが必要です。

ただし、グローバルスコープ内の単一のdagオブジェクトのみにする必要があります。気流は、グローバルスコープ内のすべてのdagオブジェクトを個別のダグとしてピックアップします。

多くの場合、各ダッグをできるだけ簡潔にすることをお勧めします。しかし、そのような依存関係を設定する必要がある場合は、サブダグの使用を検討することもできます。これについての詳細:https://airflow.incubator.apache.org/concepts.html?highlight=subdag#scope

ExternalTask​​Sensorを使用することもできますが、ダッグの数が増えるにつれて、タスク間の外部依存関係を処理するのが難しくなる可能性があります。私はサブダッグがあなたのユースケースのために行く方法かもしれないと思う。

関連する問題