apache/airflow
数据用 Python 代码定义 DAG 工作流,并按依赖调度、监控和回填任务的数据编排平台。
项目介绍
Apache Airflow 让工作流以 Python 代码形式定义,再按声明的依赖关系调度和监控任务。调度器把任务分发到一组 worker 上执行,Web 界面用来查看流水线状态、排查问题、重跑或回填指定日期范围,也能直接查看 DAG 源码。工作流通常称为 DAG,资产(Assets)用来记录 DAG 之间的数据依赖。
它适合结构基本固定、变化缓慢的工作流,这样任务边界和重跑行为都更可预期。除传统数据管道外,Airflow 也用于编排机器学习训练、评估、部署,以及协调 LLM 流程中的各个步骤,但它本身不是 Agent。它不适合流式处理,实时数据通常按批次从流中拉取。任务应尽量幂等,并且不在任务之间传递大量数据;XCom 用于传递元数据,大批量数据应交给专门的外部服务。
快速使用
Airflow 同时是库和应用,直接 pip install apache-airflow 可能装出无法使用的依赖组合,因此安装时要指定版本对应的 constraints 文件。下面是当前稳定版 3.3.2、Python 3.10 的写法:
pip install 'apache-airflow==3.3.2' \
--constraint "https://raw.githubusercontent.com/apache/airflow/constraints-3.3.2/constraints-3.10.txt"
需要额外集成(如数据库、云服务)时,在包名后加 extras,constraints 保持不变:
pip install 'apache-airflow[postgres,google]==3.3.2' \
--constraint "https://raw.githubusercontent.com/apache/airflow/constraints-3.3.2/constraints-3.10.txt"
安装完成后,按官方入门文档初始化数据库、启动 scheduler 和 Web 服务并运行第一个 DAG;同一套文档里还有完整教程。各类 provider 需要单独安装。Docker 镜像、Helm Chart 和 GitHub 标签属于基于官方发布源码制作的便捷分发方式。
运行要求与兼容性
Airflow 运行在 POSIX 系统上,生产环境只支持 Linux 发行版,社区 Docker 镜像基于 Debian Bookworm。Windows 不原生支持,需要通过 WSL2 或 Linux 容器运行。SQLite 仅用于测试和本地开发,不建议用于生产;生产数据库经过测试的是 PostgreSQL 和 MySQL,MariaDB 未测试且不推荐。
稳定版 3.3.2 支持 Python 3.10 到 3.14、AMD64 与 ARM64 平台,以及 Kubernetes 1.30 到 1.35。2.x 系列已结束生命周期,最后一个版本是 2.11.2,EOL 日期为 2026 年 4 月 22 日。Python 和 Kubernetes 的支持随上游 EOL 调整,选版本时要匹配自己的运行环境,并在支持结束前升级。
依赖策略刻意保持宽松,方便使用 DAG 的人升级库,同时用 constraints 文件锁定一套已知可用的版本组合;SQLAlchemy、Alembic、Flask、Werkzeug、Celery 和 Kubernetes 客户端等核心依赖各自单独设定上界。官方只支持 pip 和 uv 安装,Poetry 或 pip-tools 需要自行转换 constraints。项目使用 Apache-2.0 许可证。
HotRepo 点评
站内记录很有限:2026 年 11 月 6 日有一条 Python 日榜快照,当天列 Python 榜第 5,新增 16 Star,仓库总量为 47,389 Star、18,317 Fork。没有跨日快照序列,也没有讨论记录,因此这条数据只能说明一个成熟项目仍在被关注,不足以判断增长趋势。更有参考价值的是项目范围本身:长期维护的 Apache 项目、成体系的 provider 生态,以及详尽的兼容与发布策略,它面向需要可复现、以代码定义的批量管道团队,而不是轻量脚本运行器。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。