Apache Airflow 入門

Python 中的 Apache Airflow 入門

Mike Metzger

Data Engineer

什麼是工作流程?

  • 工作流程(Workflow)-為完成特定資料工程流程的一組步驟

 

  • 範例:下載檔案、複製資料、篩選資訊,並寫入資料庫

從下載檔案到寫入資料庫的資料工程連續步驟流程圖

Python 中的 Apache Airflow 入門

什麼是 Airflow?

Airflow-協調工作流程的平台:

  • 建立
  • 排程
  • 監控

 

Apache Airflow 標誌

   

代表建立、排程與監控工作流程的圖示

Python 中的 Apache Airflow 入門

什麼是 Airflow?

  • 可執行任何語言寫的程式,但工作流程以 Python 撰寫
  • 以 Dags 表示工作流程
  • 可透過網頁介面、程式碼、命令列,或 REST API 存取
  • 用於 ETL 管線、ML 工作流程、自動化等

 

Apache Airflow 標誌

Python 中的 Apache Airflow 入門

Dags 快速介紹

Dag-表示執行工作流程所需一切的模型。

  • 由各個任務及其相依關係組成
  • 建立時可設定名稱、email、擁有者等細節

由相依箭頭連結任務的範例 Dag

Python 中的 Apache Airflow 入門

Airflow 元件

  • Scheduler-觸發排程的工作流程並提交任務
  • API Server-提供一致且安全的 Airflow 平台存取
  • Dag processor-由排程器讀取以判斷要在何時執行哪些任務
  • Metadata database-儲存 Dags 與任務的狀態

Airflow 元件示意圖:scheduler、API server、Dag processor 與 metadata database

Python 中的 Apache Airflow 入門

在 Airflow UI 執行工作流程

Airflow Dags 檢視,顯示已載入的兩個 Dag 與操作選項

Python 中的 Apache Airflow 入門

在 Airflow UI 執行工作流程

Airflow Dags 檢視,已反白觸發播放按鈕

Python 中的 Apache Airflow 入門

在 Airflow UI 執行工作流程

Airflow 觸發 Dag 彈出視窗,顯示預設執行選項與 Trigger 按鈕

Python 中的 Apache Airflow 入門

在 Airflow UI 執行工作流程

Airflow Dags 檢視,最新一次成功執行以綠色勾勾標示

Python 中的 Apache Airflow 入門

在 Airflow UI 執行工作流程

Airflow Dag 執行的任務檢視,列出各任務細節(如 generate_random_number)

Python 中的 Apache Airflow 入門

一起來練習吧!

Python 中的 Apache Airflow 入門

Preparing Video For Download...