開源專案
apache/airflow avatar
apache/airflow

Apache Airflow:以程式碼編寫、排程與監控工作流程

Apache Airflow - 以程式設計方式編寫、排程和監控工作流程的平台

46,864 個 Star17,845 個 ForkPythonApache-2.0

秒懂

它是什麼?
根據倉庫 README,說明 Airflow 平台的實際定義、支援環境、安裝限制與版本策略。
適合誰用?
README 將 Apache Airflow 描述為以程式碼編寫、排程與監控工作流程的平台,並列出測試環境矩陣、嚴格的 SemVer 版本策略與基於約束檔案的依賴管理方式。專案由社群維護,已知使用組織約 500 家。
可以商用嗎?
可以。Apache-2.0 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫在最近一天內有新的提交。
用什麼語言寫的?
主要是 Python(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

倉庫對專案的定義

根據 README,Apache Airflow 是一個以程式碼編寫、排程與監控工作流程的平台。專案的核心主張是:當工作流程以程式碼定義時,它們會變得更易於維護、版本化、測試與協作。排程器依照指定的依賴關係在一組 worker 上執行任務;指令列工具被描述為能讓對 DAG 的複雜操作變簡單;使用者介面則用於視覺化生產環境中的管線執行、監控進度並在需要時排解問題。README 沒有提供這些元件的安裝或設定細節,相關內容指向官方檔案。入門指南的連結指向官方穩定版檔案,包括安裝、快速開始與完整教學。

在 apache-airflow-deep-analysis 的第 1 個檢查點,應把 DAG、scheduler、worker、airflow db migrate、airflow standalone、Python 與本節談到的能力連在一起看。先確認 README 明確列出的設定、命令或元件,再以一個小型輸入觀察實際結果;若結果需要額外服務、特定版本或尚未說明的設定,就把該依賴寫入部署清單。這樣可以把專案宣稱、可重現步驟和尚未證實的範圍分開,避免以單次成功啟動推論完整的生產能力。

專案重點與原則

README 指出,Airflow 最適合基本靜態、變化緩慢的工作流程,也就是每次執行的 DAG 結構都相似的場景。除了傳統資料管線外,README 將 Airflow 描述為被廣泛用於編排機器學習工作流程,包括訓練、重新訓練、評估與部署,並且越來越常用於編排 agentic 與基於 LLM 的工作負載,協調 AI 管線的步驟(例如資料準備、工具呼叫、模型呼叫、評估),而不是自身充當 agent。Airflow 不是串流解決方案,但常被用於分批拉取串流上的資料來處理即時資料。任務應盡量具冪等性,且不應在任務間傳遞大量資料,但可以透過 XCom 傳遞中繼資料。專案列出的三項原則是動態、可擴充與彈性,其中彈性依賴 Jinja 模板引擎。

在 apache-airflow-deep-analysis 的第 2 個檢查點,應把 DAG、scheduler、worker、airflow db migrate、airflow standalone、Python 與本節談到的能力連在一起看。先確認 README 明確列出的設定、命令或元件,再以一個小型輸入觀察實際結果;若結果需要額外服務、特定版本或尚未說明的設定,就把該依賴寫入部署清單。這樣可以把專案宣稱、可重現步驟和尚未證實的範圍分開,避免以單次成功啟動推論完整的生產能力。

支援的環境

倉庫用一張表列出了主開發版、穩定版 3.3.0 與已棄用版 2.11.2 的測試環境。Python 支援範圍:主版與穩定版為 3.10 至 3.14,棄用版為 3.10 至 3.12。平台為 AMD64 與 ARM64,其中棄用版的 ARM64 標記為實驗性。Kubernetes 支援範圍:主版與穩定版為 1.30 至 1.35,棄用版為 1.26 至 1.30。表中也列出了各版本線的 PostgreSQL、MySQL 與 SQLite 版本,SQLite 要求為 3.15.0 或更高。README 註明 MariaDB 未測試也不建議,SQLite 僅用於測試、不應在生產環境使用。它也說明 Airflow 可在 POSIX 相容作業係統上執行,開發時在較新的 Linux 發行版與近期 macOS 上測試,Windows 只能透過 WSL2 或 Linux 容器執行;生產執行應使用基於 Linux 的發行版,社群 Docker 映像使用的發行版是 Debian Bookworm。

在 apache-airflow-deep-analysis 的第 3 個檢查點,應把 DAG、scheduler、worker、airflow db migrate、airflow standalone、Python 與本節談到的能力連在一起看。先確認 README 明確列出的設定、命令或元件,再以一個小型輸入觀察實際結果;若結果需要額外服務、特定版本或尚未說明的設定,就把該依賴寫入部署清單。這樣可以把專案宣稱、可重現步驟和尚未證實的範圍分開,避免以單次成功啟動推論完整的生產能力。

安裝與約束檔案

Airflow 以 apache-airflow 套件發布在 PyPI 上,但 README 警告說,直接 pip install 有時會失敗或產生不可用的安裝,因為 Airflow 既是程式庫也是應用程式。為了獲得可重複的安裝,專案在孤立分支中維護一組已知可用的約束檔案,按 Python 的主次版本分別保存。README 展示了針對 3.3.0 版本的 pip 指令,帶 --constraint URL,也展示了帶 postgres、google 等 extras 的變體。目前只有 pip 安裝獲得官方支援;Poetry 與 pip-tools 在約束與需求管理上與 pip 工作流程不同,目前不被支援。使用這些工具的使用者需要自行將約束檔案轉換為自己的格式。

在 apache-airflow-deep-analysis 的第 4 個檢查點,應把 DAG、scheduler、worker、airflow db migrate、airflow standalone、Python 與本節談到的能力連在一起看。先確認 README 明確列出的設定、命令或元件,再以一個小型輸入觀察實際結果;若結果需要額外服務、特定版本或尚未說明的設定,就把該依賴寫入部署清單。這樣可以把專案宣稱、可重現步驟和尚未證實的範圍分開,避免以單次成功啟動推論完整的生產能力。

官方發布與便利套件

README 將官方原始碼發布與便利套件區分開來。官方發布遵循 ASF 發布政策,可從 ASF 發布目錄下載,由發布經理簽名,並在發布核准程序中由 PMC 成員投票。便利套件依常見使用順序列出:透過 pip 安裝的 PyPI 發布、來自 apache/airflow 倉庫的 Docker 映像、以及用於取得 git 專案原始碼的 GitHub 標籤。依 ASF 政策的定義,這些便利套件不是官方發布,但它們由官方發布的原始碼準備而成;其中一些是開發版或預發布工件,並會依 ASF 政策明確標記。

在 apache-airflow-deep-analysis 的第 5 個檢查點,應把 DAG、scheduler、worker、airflow db migrate、airflow standalone、Python 與本節談到的能力連在一起看。先確認 README 明確列出的設定、命令或元件,再以一個小型輸入觀察實際結果;若結果需要額外服務、特定版本或尚未說明的設定,就把該依賴寫入部署清單。這樣可以把專案宣稱、可重現步驟和尚未證實的範圍分開,避免以單次成功啟動推論完整的生產能力。

使用者介面

使用者介面部分列出了八個檢視。Dags 顯示環境中所有 DAG 的概覽;Assets 顯示帶依賴關係的資產;Grid 以網格形式展示跨時間的 DAG;Graph 視覺化特定執行中 DAG 的依賴關係及其目前狀態;Home 顯示環境摘要統計;Backfill 支援按日期範圍回填 DAG;Code 提供快速檢視 DAG 原始碼的方式。README 為每個檢視附了深色模式截圖,但沒有描述具體行為或設定方式,這部分需要查閱官方檔案來確認。

在 apache-airflow-deep-analysis 的第 6 個檢查點,應把 DAG、scheduler、worker、airflow db migrate、airflow standalone、Python 與本節談到的能力連在一起看。先確認 README 明確列出的設定、命令或元件,再以一個小型輸入觀察實際結果;若結果需要額外服務、特定版本或尚未說明的設定,就把該依賴寫入部署清單。這樣可以把專案宣稱、可重現步驟和尚未證實的範圍分開,避免以單次成功啟動推論完整的生產能力。

版本策略與依賴管理

自 Airflow 2.0.0 起,專案對所有發布的套件採用嚴格的語意化版本控制,並為核心 Airflow、providers、Helm chart 與 API 用戶端分別制定規則。版本生命週期表顯示版本 3 處於維護狀態,目前修補版本為 3.3.0,首次發布於 2025 年 4 月 22 日;版本 2 已結束生命週期,有限維護截止到 2025 年 10 月 22 日,終止日期為 2026 年 4 月 22 日。README 也記錄了依賴管理方式:約束檔案保證可重複安裝,而大多數依賴預設不設上限;SQLAlchemy、Alembic、Flask、werkzeug、celery 與 kubernetes 預設設有上限並附理由。該策略為最佳努力,README 沒有說明上限何時解除。

在 apache-airflow-deep-analysis 的第 7 個檢查點,應把 DAG、scheduler、worker、airflow db migrate、airflow standalone、Python 與本節談到的能力連在一起看。先確認 README 明確列出的設定、命令或元件,再以一個小型輸入觀察實際結果;若結果需要額外服務、特定版本或尚未說明的設定,就把該依賴寫入部署清單。這樣可以把專案宣稱、可重現步驟和尚未證實的範圍分開,避免以單次成功啟動推論完整的生產能力。

編輯結論

README 將 Apache Airflow 描述為以程式碼編寫、排程與監控工作流程的平台,並列出測試環境矩陣、嚴格的 SemVer 版本策略與基於約束檔案的依賴管理方式。專案由社群維護,已知使用組織約 500 家。Apache-2.0 授權授予著作權與專利權利並規定再散布條件,授權摘錄未涉及保固或支援。 對 apache-airflow-deep-analysis 而言,先以 DAG、scheduler、worker、airflow db migrate、airflow standalone、Python 建立最小可運行案例,逐項核對輸入、輸出、錯誤處理與版本相容性,再決定是否納入現有系統;README 沒有明示的部分仍應列為待確認事項。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記