跳转到主要内容

程序化地创建、安排和监控数据管道

项目描述

Apache Airflow

PyPI version GitHub Build Coverage Status License PyPI - Python Version Docker Pulls Docker Stars PyPI - Downloads Artifact HUB Code style: black Twitter Follow Slack Status Contributors OSSRank

Apache Airflow logo

Apache Airflow (或简称Airflow) 是一个用于程序化创建、安排和监控工作流的平台。

当工作流被定义为代码时,它们变得更加易于维护、可版本控制、可测试和协作。

使用Airflow将工作流作为任务的有向无环图(DAG)来编写。Airflow调度器在遵循指定依赖关系的同时,在多个工作者上执行您的任务。丰富的命令行实用程序使得对DAG进行复杂操作变得非常简单。丰富的用户界面使得可视化生产中运行的管道、监控进度和必要时解决问题变得容易。

要求

Apache Airflow与以下进行测试

主版本(开发版) 稳定版本(2.10.2)
Python 3.8, 3.9, 3.10, 3.11, 3.12 3.8, 3.9, 3.10, 3.11, 3.12
平台 AMD64/ARM64(*) AMD64/ARM64(*)
Kubernetes 1.26, 1.27, 1.28, 1.29, 1.30 1.26, 1.27, 1.28, 1.29, 1.30
PostgreSQL 12, 13, 14, 15, 16 12, 13, 14, 15, 16
MySQL 8.0, 8.4, Innovation 8.0, Innovation
SQLite 3.15.0+ 3.15.0+

* 实验

注意:MySQL 5.x版本无法运行或存在多个调度器的限制--请参阅调度器文档。MariaDB未经测试/不推荐。

注意:SQLite用于Airflow测试。不要在生产中使用它。我们建议在本地开发中使用SQLite的最新稳定版本。

注意:Airflow目前可以在符合POSIX规范的操作系统上运行。对于开发,它通常在现代Linux发行版和最新的macOS版本上测试。在Windows上,您可以通过WSL2(Linux子系统)或通过Linux容器运行它。为添加Windows支持的工作正在通过#10388跟踪,但它不是高优先级。您应该只将基于Linux的发行版用作“生产”执行环境,因为这是目前唯一受支持的执行环境。在CI测试中使用的唯一发行版,以及在我们的社区管理的DockerHub镜像中使用的发行版是Debian Bookworm

入门

访问Airflow官方网站文档(最新稳定版本)以获取有关安装Airflow入门或完成更完整教程的帮助。

注意:如果您正在寻找主分支(最新开发分支)的文档:您可以在s.apache.org/airflow-docs上找到它。

有关Airflow改进提案(AIP)的更多信息,请访问Airflow Wiki

有关依赖项目(如提供程序包、Docker镜像、Helm图表)的文档,您可以在文档索引中找到。

从PyPI安装

我们在PyPI上发布Apache Airflow作为apache-airflow包。但是,安装它有时可能有些棘手,因为Airflow既是库也是应用程序。库通常保持其依赖项开放,而应用程序通常固定它们,但我们应该同时做这两者。我们决定尽可能保持依赖项开放(在pyproject.toml中),以便用户在需要时可以安装库的不同版本。这意味着pip install apache-airflow有时可能无法正常工作或会产生不可用的Airflow安装。

但是,为了实现可重复的安装,我们保持了一组“已知可正常工作”的约束文件在孤儿constraints-mainconstraints-2-0分支中。我们根据主要/次要Python版本分别保持这些“已知可正常工作”的约束文件。您可以使用它们作为约束文件从PyPI安装Airflow。请注意,您必须指定正确的Airflow标签/版本/分支和Python版本。

  1. 仅安装Airflow

注意:目前仅支持pip安装。

虽然可以使用像Poetrypip-tools这样的工具安装Airflow,但它们的流程与pip不同,尤其是在约束与需求管理方面。目前不支持通过Poetrypip-tools进行安装。

使用bazel安装Airflow时存在已知问题,可能会导致循环依赖。如果您遇到此类问题,请切换到pipBazel社区正在修复this PR <https://github.com/bazelbuild/rules_python/pull/1166>中的问题,因此新版本的bazel可能会处理它。

如果您想使用这些工具安装Airflow,应使用约束文件,并将它们转换为工具所需的适当格式和工作流程。

pip install 'apache-airflow==2.10.2' \
 --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.2/constraints-3.8.txt"
  1. 使用额外功能(例如,postgres,google)安装
pip install 'apache-airflow[postgres,google]==2.8.3' \
 --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.2/constraints-3.8.txt"

有关安装提供程序包的信息,请参阅提供程序

官方源代码

Apache Airflow是Apache软件基金会(ASF)的项目,我们的官方源代码发布

根据ASF规则,发布的源代码包必须足够用户在获得适当的平台和工具的情况下构建和测试提供的发布。

贡献

想帮助构建Apache Airflow吗?请查看我们的贡献文档

Apache Airflow的官方Docker(容器)镜像在镜像中描述。

投票政策

  • 提交需要来自非作者的提交者的+1投票
  • 在进行AIP投票时,PMC成员和提交者的+1s被视为具有约束力的投票。

谁使用Apache Airflow?

我们知道大约有500个组织在使用Apache Airflow(但可能还有更多)在野外

如果您使用Airflow - 欢迎您提交PR以将您的组织添加到列表中。

谁维护Apache Airflow?

Airflow是社区的工作成果,但核心提交者/维护者负责审查和合并PR,以及指导有关新功能请求的讨论。如果您想成为维护者,请查看Apache Airflow的提交者要求

项目详情


发布历史 发布通知 | RSS源

下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

apache_airflow-2.10.2.tar.gz (12.5 MB 查看散列)

上传

构建分布

apache_airflow-2.10.2-py3-none-any.whl (13.4 MB 查看散列)

上传 Python 3

由以下支持