Airflow 是用於編排 ETL/ELT 數據管線的開源標準。

使用 Airflow 進行 ETL/ELT 管線
提取-轉換-載入 (ETL) 和提取-載入-轉換 (ELT) 數據管線是 Apache Airflow 最常見的使用案例。在 2023 年 Apache Airflow 調查中,90% 的受訪者使用 Airflow 進行 ETL/ELT,以支援分析使用案例。
以下影片展示了 Airflow 中一個簡單的 ETL/ELT 管線,該管線從 CSV 檔案中提取氣候數據,以及從 API 中提取天氣數據,執行轉換,然後將結果載入到資料庫中,以支援儀表板。您可以在這裡找到此範例的程式碼。
為什麼要使用 Airflow 進行 ETL/ELT 管線?
Airflow 是將 ETL/ELT 管線定義為 Python 程式碼的事實標準。Airflow 在此使用案例中很受歡迎,因為它具有以下特點:
- 工具不可知:Airflow 可用於編排任何資料來源或目標的 ETL/ELT 管線。
- 可擴展:有許多 Airflow 模組可用於連接任何資料來源或目標,您可以為特定使用案例編寫自己的自訂運算子和 Hook。
- 動態:在 Airflow 中,您可以定義動態任務,這些任務充當佔位符,以便在運行時根據變化的輸入進行調整。
- 可擴充:Airflow 可以擴展以處理無限數量的任務和工作流程,只要有足夠的運算能力即可。
Airflow 用於 ETL/ELT 管線的功能
Airflow 具有幾個關鍵功能,使其成為 ETL/ELT 的絕佳選擇
- 資料集 (Datasets):在 Airflow 中,您可以根據 Airflow 實例中任何其他任務對資料集的更新,以資料驅動的方式排程您的 DAG。
- 物件儲存 (Object Storage):Airflow 物件儲存是對 Path API 的抽象化,簡化了與物件儲存系統(如 Amazon S3、Google Cloud Storage 和 Azure Blob Storage)的互動。
- Airflow Providers:Airflow Providers 使用額外的模組擴展了核心 Airflow 功能,以簡化與常用資料工具的整合。您可以在這裡找到活動 Providers 的列表。