1.9 KiB
1.9 KiB
Apache Airflow
データ処理やバッチ処理(ETL/ELT)などのワークフローを 管理・自動化するためのもっとも有名なプラットフォームです。
- できること・強み
- Airflow は 本番の大規模ETLで強い
- ワークフローをコード(Python)で記述できる(DAG)
- スケジューラで定期実行できる
- 失敗時のリトライ・アラートが強い
- Web UIが強力
- プラグインが豊富で拡張性が高い
ワークフローを記述する
Airflowの最大特徴はDAG(有向非巡回グラフ)という構造で 処理の流れをコード化できること。
DAG(Directed Acyclic Graph)とは “順序や依存関係を持つタスクの集合” のこと。
with DAG("my_etl_job") as dag:
extract >> transform >> load
- Directed(有向) → 流れに向きがある(A → B → C)
- Acyclic(非巡回) → ループしてはいけない(戻ってきてはいけない)
- Graph(グラフ) → ノード(タスク)と線(依存)で表す
flowchart LR
source1[("データソース1<br/>MySQL")]
source2[("データソース2<br/>API")]
source3[("データソース3<br/>CSV")]
extract["Extract<br/>データ抽出"]
transform["Transform<br/>データ変換"]
load["Load<br/>データ格納"]
dwh[("データウェア<br/>ハウス")]
source1 --> extract
source2 --> extract
source3 --> extract
extract --> transform
transform --> load
load --> dwh
Task(タスク)
DAG内で実行される個々の処理単位。 データ処理やスクリプト実行などを担当する