CloudComposerで初めてAirflowを触ることになったのですが、そもそもAirflowがわからなかったのでまとめてみたいと思います。
Airflowとは?
ワークフロー管理ツールです。類似のもので言うとdigdagやargoなどが該当します。
ある処理を実行して、次にある処理を実行する...といった一連の処理を管理し、処理や外部への疎通など柔軟なワークフローを組むことが可能です。
具体的にはpythonでファイルを実装して処理順番を指定していきます。
airflowの構成
https://airflow.apache.org/docs/apache-airflow/stable/concepts/overview.html
より
DAGディレクトリはワークフローの設計図が保存されている場所です。
このDAGファイルをスケジューラー(executor)が見て、タスクを実行するためにworkerへ通知します。
workerはその情報をもとに処理を実行、監視します。
それぞれの状態(実行中など)はmetadatabaseに保存されます。
webserverは上記の情報をUIに表示したり、処理を受け取ってそれぞれに処理の実行などをそれぞれに通知します。
DAGとは?
処理と順番を記述されたワークフローです。
airflowではこの処理の単位をTaskと呼ぶので、Taskとその実行順番が記載されたものといっても良いと思います。
ざっくり書くとこんな感じ↓
このファイルの実態はpythonのファイルです。
図にある通り、TaskB,TaskCを並列実行(厳密にはちょっと準備が必要)させたりできます。
まとめ
Airflowを簡単にまとめてみました。
実際のソースコード云々は別にまとめたいと思います。
それでは良きAirflowライフを