【アパッチエアフロー】

Apache Airflow とは?

💡 データの流れを空の交通管制のように管理する
📌 このページのポイント
Airflow DAG(ワークフロー)の流れ 抽出 Extract 変換 Transform 集計A 集計B 書込 Load Web UI - リアルタイム監視 成功 成功 実行中 待機 スケジューラが自動実行 / 失敗時はリトライ・アラート
AirflowのDAGとWeb UIによる監視のイメージ
ひよこ ひよこ

Airflowってどういうときに使うの?

ペンギン先生 ペンギン先生

たとえば「毎朝5時にデータベースからデータを抽出して、加工して、分析用のテーブルに書き込む」みたいな定期的なデータ処理を自動化したいときに使うよ

ひよこ ひよこ

cronジョブじゃダメなの?

ペンギン先生 ペンギン先生

単純なジョブならcronでもいいけど、タスクAが終わったらタスクBを実行して、失敗したらリトライして...みたいな複雑な依存関係cronだと管理しきれないんだ。AirflowならDAGで依存関係を可視化できるよ

ひよこ ひよこ

おもしろい!DAGってよく聞くけど何?

ペンギン先生 ペンギン先生

有向非巡回グラフのことで、タスクの実行順序を一方向の矢印で表したものだよ。循環がないから「Aの次にB、Bの次にC」のように確実に順番通り実行できるんだ

ひよこ ひよこ

設定ファイルで書くの?

ペンギン先生 ペンギン先生

AirflowのユニークなところはPythonコードでDAGを定義するところだね。if文やfor文も使えるから、曜日によって処理を変えたり、動的にタスクを生成したりできるよ

ひよこ ひよこ

本番環境だと運用は大変?

ペンギン先生 ペンギン先生

自前で運用するとスケジューラやワーカーの管理が結構大変だね。だからAWSのMWAAやGCPのCloud Composerみたいなマネージドサービスを使う企業が多いよ。最近はDagsterPrefectといった新世代のツールも台頭してきているから、選択肢は広がっているね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Airflow」って出てきたら「データパイプラインPythonで管理するスケジューラ」と思えればだいたいOK!
📖 おまけ:英語の意味
「Apache Airflow」 = 気流・空気の流れ
💬 Airbnbで生まれたツールで、データの流れ(フロー)を空気(エア)のようにスムーズに制御するイメージだよ
← 用語集にもどる