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