# job-manager-by-airflow Apach airflow * apache/airflow:3.1.2 * https://github.com/apache/airflow ![APP](./docs/images/app01.png) ## Apach airflowとは? データ処理やバッチ処理(ETL/ELT)などのワークフローを 管理・自動化するためのもっとも有名なプラットフォームです。 * **できること・強み** * Airflow は 本番の大規模ETLで強い * ワークフローをコード(Python)で記述できる(DAG) * スケジューラで定期実行できる * 失敗時のリトライ・アラートが強い * Web UIが強力 * プラグインが豊富で拡張性が高い * **前提・制限** *Airflowは「DAGどこまで実行した?」などの状態をデータベースで管理する仕組み です。そのため DBなしでは動きません。 ## Develop ### Dockerで構築する ```sh docker compose up -d ``` デフォユーザーは airflow / airflow Airflow は公式的には Linux / macOS 前提で作られていて、 systemd とか unix系コマンド前提の部分がけっこうあります。Windowsならばwslで実行してください #### 公式のDocker composeファイルを取得する方法 ```sh curl -LfO 'https://airflow.apache.org/docs/apache-airflow/stable/docker-compose.yaml' ``` ### 仮想環境 ```sh python -m venv venv # Linux source venv/bin/activate # # Windows # venv\Scripts\activate pip install -r requirements.txt ``` ## How To Use チュートリアル https://airflow.apache.org/docs/apache-airflow/stable/tutorial/fundamentals.html Airflowは、`dags/`フォルダ内に.pyファイルを置けば自動で読み込みます。