読み方 : アパッチエアフロー

Apache Airflow

Apache Airflowとは?

複数の処理を決められた順序や条件に従って自動実行・監視するワークフロー管理ツール。米エアビーアンドビー(Airbnb)社が2014年に開発し、現在はアパッチソフトウェア財団(Apache Software Foundation)がオープンソースソフトウェアとして開発を引き継いでいる。
Apache Airflowのイメージ画像

データ分析の現場では、外部システムからデータを取得し、加工して、データウェアハウスへ格納し、レポートを生成するといった一連の処理を定期的に実行する必要がある。処理の数が増えると、実行順序の制御や失敗時の再実行管理が複雑になる。Airflowはこうしたパイプライン全体の定義・実行・監視を一元的に扱える仕組みを提供している。

Airflowの中心となる概念が「有向非循環グラフ」(DAGDirected Acyclic Graph)である。個々のタスクを矢印でつなぎ、「このタスクが完了したら次を実行する」という依存関係をグラフ構造で表現する。循環しない一方向の構造を持つため、処理が無限ループに陥ることがない。DAGPythonコードで記述し、タスク間の依存関係と実行スケジュールをあわせて定義する。

タスクの実装には「Operator」と呼ばれる部品を使う。データベースへのクエリ実行、Pythonスクリプトの呼び出し、外部APIへのリクエストクラウドサービスの操作など、用途別のOperatorが標準で用意されており、独自のOperatorを作成することもできる。dbtApache Sparkといった別のデータ処理ツールと組み合わせて運用されることも多い。

Webブラウザで操作できるWebユーザーインターフェースが付属しており、DAGの実行状況をグラフや一覧でリアルタイムに確認できる。失敗したタスクのみを再実行する操作も画面上から行え、ログ閲覧機能で原因調査もしやすい。スケジューリングcron形式で記述し、毎日・毎時といった定期実行のほか、別のDAGの完了を契機に次の処理を起動する連携も設定できる。

KubernetesやCeleryと組み合わせることで処理を複数サーバに分散でき、大規模なデータ処理にも対応できる。大手クラウドサービスでは「Google Cloud Composer」や「Amazon Managed Workflows for Apache Airflow」(MWAA)といったマネージドサービスも提供されており、インフラ管理の負担を抑えた形で導入することができる。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。