作者 | Maxime Beauchemin / Airbnb |
---|---|
開発元 | Apache Software Foundation |
初版 | 2015年6月3日 |
リポジトリ | |
プログラミング 言語 | Python |
対応OS | Windows、macOS、Linux |
対応言語 | Python |
種別 | ワークフロー管理プラットフォーム |
ライセンス | Apache License 2.0 |
公式サイト |
airflow |
Apache Airflowは、データエンジニアリングパイプライン用のオープンソースのワークフロー管理プラットフォームである。2014年10月[1]にAirbnbで開発が始まり、ますます複雑化する社内のワークフローを管理するためのソリューションとして作られた。Airflowを開発したことで、Airbnbはワークフローをプログラムで作成・スケジュールし、組み込みのAirflowユーザーインターフェイス経由でワークフローを監視できるようになった[2][3]。プロジェクトは当初からオープンソースとして公開され、2016年3月にはApache Incubatorプロジェクトになり、2019年1月にはトップレベルのApache Software Foundationプロジェクトになった。
AirflowはPythonで書かれており、ワークフローはPythonスクリプト経由で作成される。Airflowは「configuration as code」の原則に基づいて設計されている。XMLなどのマークアップ言語を使用する「configuration as code」に基づいたワークフロープラットフォームは他にも存在するが、Pythonを使用することにより、開発者がライブラリとクラスをインポートして、ワークフローを容易に作成できるようになっている。
Airflowは、ワークフローのオーケストレーションを管理するために、有向非巡回グラフ(DAG)を使用している。タスクとその依存関係はPythonで定義され、Airflowはそのスケジューリングと実行を管理する。DAGは、定義されたスケジュール(例:1時間毎、1日毎)や外部イベントのトリガー(例:Hive上でのファイルの作成[4])により実行できる。従来のOozieやAzkabanなどのDAGベースのスケジューラは、複数の構成ファイルやファイルシステムツリーに依存する傾向があったが、Airflowでは、通常1つのPythonファイルとしてDAGを記述できる[5]。
コアのオープンソースプロジェクトに関する補助サービスの提供者としては、3つのプロバイダーがよく知られている。Astronomerは、AirflowのSaaSツールと、Kubernetesにデプロイ可能な、モニタリング・アラート・DevOps・クラスター管理を支援するAirflowスタックを提供している[6]。Google Cloud Platform(GCP)は、プラットフォーム上で実行されるAirflowのマネージドバージョンとして、Cloud Composerを提供しており、他のGCPサービスとよく統合されている[7]。Amazon Web Servicesは、2020年11月からApache Airflowのマネージドワークフローを提供している[8]。