好,今天我們來架 airflow 吧 ~
airflow 對於資料 ETL 排程的管理來說,設計得好可以讓管理變得簡單。
首先,production 環境要的資源相對嚴謹,而且我也聽說比較好的做法是架在 kubernetes 上,我們這次先來架可以測試 airflow 、讓 DAG 在上面跑的實驗環境吧。
在 docker 上跑 airflow 的官方文件 : https://airflow.apache.org/docs/apache-airflow/stable/howto/docker-compose/index.html
其中官方也有特別說明,因為安全性考量,若要跑在 production 環境,請使用 kubernetes + 官方的 helm chart。
所以以下的實作,我們用在實驗場景下就好。
curl -LfO 'https://airflow.apache.org/docs/apache-airflow/3.1.0/docker-compose.yaml'
mkdir -p ./dags ./logs ./plugins ./config
echo -e "AIRFLOW_UID=$(id -u)" > .env
docker compose up airflow-init
docker compose up
服務跑在 : http://localhost:8080
帳號密碼預設 airflow/airflow,雖然是實驗環境,但我們還是可以練習改登入帳密,在docker-compose.yaml 的 292、293行。
改完後再 docker compose down, docker compose up 試著登入看看!
(註 : 如果改後還是可以用預設的帳密登入的話,請使用 docker compose down --volumes --remove-orphans
清除相關 volumes 後,再進行 docker compose up)