【アパッチエアフロー】

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で生まれたツールで、データの流れ(フロー)を空気(エア)のようにスムーズに制御するイメージだよ
← 用語集にもどる