包扩展参考¶
Airflow 有许多可选的“扩展”,您可以在安装 Airflow 时使用它们来向您的安装添加功能。这些扩展是用户管理其安装的好方法,而且对于 Airflow 的贡献者来说,当他们想通过提供者贡献一些功能(包括 Airflow 的可选集成)时也很有用。
警告
传统上,在 Airflow 中,一些扩展使用 . 和 _ 来分隔扩展名称的各个部分。这不是 PEP-685 规范化的名称,我们选择将其更改为 - 用于我们所有的扩展,期望 PEP-685 将由 pip 和其他工具完全实现,我们将我们所有的扩展更改为使用 - 作为分隔符,即使在某些情况下它会引入警告(这些警告是无害的)。这是一种面向未来的方法。如果您在扩展中使用 _ 或 .,它也完全向后兼容,但我们建议将来使用 - 作为分隔符。
以下是 Apache Airflow 的所有额外依赖项的列表。
核心 Airflow 扩展¶
这些是核心 Airflow 扩展,可扩展核心 Airflow 的功能。它们通常不安装提供程序包(除了 celery
和 cncf.kubernetes
扩展),它们只是为提供的包安装必要的 python 依赖项。
扩展 |
安装命令 |
启用 |
---|---|---|
aiobotocore |
|
支持 Amazon 集成的异步(可延迟)运算符 |
async |
|
Gunicorn 的异步工作类 |
cgroups |
|
使用 CgroupTaskRunner 所需 |
deprecated-api |
|
已弃用的实验性 API,已替换为新的 REST API |
github-enterprise |
|
GitHub Enterprise 身份验证后端 |
google-auth |
|
Google 身份验证后端 |
graphviz |
|
用于将 DAG 转换为图形输出的 Graphviz 渲染器 |
kerberos |
|
用于 Kerberized 服务(Hadoop、Presto、Trino)的 Kerberos 集成 |
ldap |
|
用户的 LDAP 身份验证 |
leveldb |
|
在 google 提供程序中使用 leveldb 扩展所需 |
otel |
|
OpenTelemetry 指标所需 |
pandas |
|
安装与 Airflow 兼容的 Pandas 库 |
password |
|
用户的密码身份验证 |
pydantic |
|
内部 API 的 Pydantic 序列化 |
rabbitmq |
|
支持 RabbitMQ 作为 Celery 后端 |
sentry |
|
用于应用程序日志记录和监控的 Sentry 服务 |
s3fs |
|
支持 S3 作为 Airflow FS |
saml |
|
支持 Airflow 中的 SAML 身份验证 |
statsd |
|
StatsD 指标所需 |
uv |
|
安装 uv - 基于 Rust 的快速包安装程序(实验性) |
virtualenv |
|
在本地 virtualenv 中运行 python 任务 |
cloudpickle |
pip install apache-airflow[cloudpickle] |
Cloudpickle 钩子和操作符 |
提供者扩展¶
这些提供者扩展只是为了方便安装提供者包,以便您可以使用简单的命令安装提供者 - 包括提供者包和单个命令中的必要依赖项,这允许 PIP 解析任何冲突的依赖项。这对于首次安装非常有用,您希望重复安装对 airflow 和已安装提供者都“有效”的依赖项版本。
例如,以下命令将安装
apache-airflow
apache-airflow-providers-amazon
apache-airflow-providers-google
apache-airflow-providers-apache-spark
使用基于 Airflow 社区在 2.10.4 版本发布时提供的约束文件的一致依赖项集。
pip install apache-airflow[google,amazon,apache-spark]==2.10.4 \
--constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.4/constraints-3.8.txt"
请注意,这将安装在 Airflow 2.10.4 版本发布时发布的提供程序版本。如果您想使用最新版本的提供程序,您可以在以后手动升级这些提供程序。
Apache 软件扩展¶
这些扩展添加了与其他 Apache 项目集成所需的依赖项(请注意,apache.atlas
和 apache.webhdfs
没有自己的提供程序 - 它们只安装可以在自定义 bash/python 提供程序中使用的其他库)。
扩展 |
安装命令 |
启用 |
---|---|---|
apache-atlas |
|
Apache Atlas |
apache-beam |
|
Apache Beam 操作符和钩子 |
apache-cassandra |
|
Cassandra 相关操作符和钩子 |
apache-drill |
|
Drill 相关操作符和钩子 |
apache-druid |
|
Druid 相关操作符和钩子 |
apache-flink |
|
Flink 相关操作符和钩子 |
apache-hdfs |
|
HDFS 钩子和操作符 |
apache-hive |
|
所有 Hive 相关操作符 |
apache-iceberg |
|
Apache Iceberg 钩子 |
apache-impala |
|
所有 Impala 相关操作符和钩子 |
apache-kafka |
|
所有 Kafka 相关操作符和钩子 |
apache-kylin |
|
所有 Kylin 相关操作符和钩子 |
apache-livy |
|
所有 Livy 相关操作符、钩子和传感器 |
apache-pig |
|
所有 Pig 相关操作符和钩子 |
apache-pinot |
|
所有 Pinot 相关钩子 |
apache-spark |
|
所有 Spark 相关操作符和钩子 |
apache-webhdfs |
|
HDFS 钩子和操作符 |
外部服务扩展¶
这些是添加与外部服务(基于云或本地)集成所需的依赖项的扩展。
扩展 |
安装命令 |
启用 |
---|---|---|
airbyte |
|
Airbyte 钩子和操作符 |
alibaba |
|
阿里云 |
apprise |
|
Apprise 通知 |
amazon |
|
亚马逊网络服务 |
asana |
|
Asana 钩子和操作符 |
atlassian-jira |
|
Jira 钩子和操作符 |
microsoft-azure |
|
微软 Azure |
cloudant |
|
Cloudant 钩子 |
cohere |
|
Cohere 钩子和操作符 |
databricks |
|
Databricks 钩子和操作符 |
datadog |
|
Datadog 钩子和传感器 |
dbt-cloud |
|
dbt Cloud 钩子和操作符 |
dingding |
|
钉钉钩子和传感器 |
discord |
|
Discord 钩子和传感器 |
|
Facebook 社交 |
|
github |
|
GitHub 操作符和钩子 |
|
Google 云 |
|
hashicorp |
|
Hashicorp 服务 (Vault) |
openai |
|
Open AI 钩子和操作符 |
opsgenie |
|
OpsGenie 钩子和操作符 |
pagerduty |
|
Pagerduty 钩子 |
pgvector |
|
pgvector 操作符和钩子 |
pinecone |
|
Pinecone 操作符和钩子 |
qdrant |
|
Qdrant 操作符和钩子 |
salesforce |
|
Salesforce 钩子 |
sendgrid |
|
使用 sendgrid 发送电子邮件 |
segment |
|
Segment 钩子和传感器 |
slack |
|
Slack 钩子和操作符 |
snowflake |
|
Snowflake 钩子和操作符 |
tableau |
|
Tableau 钩子和操作符 |
tabular |
|
Tabular 钩子 |
telegram |
|
Telegram 钩子和操作符 |
vertica |
|
Vertica 钩子支持作为 Airflow 后端 |
weaviate |
|
Weaviate 钩子和操作符 |
yandex |
|
Yandex.cloud 钩子和操作符 |
ydb |
|
YDB 钩子和操作符 |
zendesk |
|
Zendesk 钩子 |
本地安装的软件扩展¶
这些扩展添加了与其他软件集成所需的依赖项,这些软件通常作为 Airflow 部署的一部分安装。其中一些使 Airflow 能够使用执行器来运行任务 - 而不是通过内置的 LocalExecutor。
扩展 |
安装命令 |
带来 |
启用执行器 |
---|---|---|---|
arangodb |
|
ArangoDB 操作符、传感器和钩子 |
|
celery |
|
Celery 依赖项和传感器 |
CeleryExecutor, CeleryKubernetesExecutor |
cncf-kubernetes |
|
Kubernetes 客户端库,KubernetesPodOperator & friends |
KubernetesExecutor, LocalKubernetesExecutor |
docker |
|
Docker 钩子和操作符 |
|
elasticsearch |
|
Elasticsearch 钩子和日志处理程序 |
|
exasol |
|
Exasol 钩子和操作符 |
|
fab |
|
FAB 身份验证管理器 |
|
github |
|
GitHub 操作符和钩子 |
|
influxdb |
|
Influxdb 操作符和钩子 |
|
jenkins |
|
Jenkins 钩子和操作符 |
|
mongo |
|
Mongo 钩子和操作符 |
|
microsoft-mssql |
|
Microsoft SQL Server 操作符和钩子。 |
|
mysql |
|
MySQL 操作符和钩子 |
|
neo4j |
|
Neo4j 操作符和钩子 |
|
odbc |
|
包括 MS SQL Server 的 ODBC 数据源 |
|
openfaas |
|
OpenFaaS 钩子 |
|
oracle |
|
Oracle 钩子和操作符 |
|
postgres |
|
PostgreSQL 操作符和钩子 |
|
presto |
|
所有 Presto 相关操作符和钩子 |
|
redis |
|
Redis 钩子和传感器 |
|
samba |
|
Samba 钩子和操作符 |
|
singularity |
|
Singularity 容器操作符 |
|
teradata |
|
Teradata 钩子和操作符 |
|
trino |
|
所有 Trino 相关操作符和钩子 |
其他扩展¶
这些是额外的功能,通过一些 - 通常 - 标准协议为与外部系统集成提供支持。
Preinstalled
列中带有 *
的条目表示这些扩展(提供程序)在安装 Airflow 时始终预先安装。
扩展 |
安装命令 |
启用 |
预安装 |
---|---|---|---|
common-compat |
|
旧 Airflow 的兼容性代码 |
|
common-io |
|
核心 IO 操作符 |
|
common-sql |
|
核心 SQL 操作符 |
|
ftp |
|
FTP 钩子和操作符 |
|
grpc |
|
Grpc 钩子和操作符 |
|
http |
|
HTTP 钩子、操作符和传感器 |
|
imap |
|
IMAP 钩子和传感器 |
|
jdbc |
|
JDBC 钩子和操作符 |
|
microsoft-psrp |
|
PSRP 钩子和操作符 |
|
microsoft-winrm |
|
WinRM 钩子和操作符 |
|
openlineage |
|
发送 OpenLineage 事件 |
|
opensearch |
|
Opensearch 钩子和操作符 |
|
papermill |
|
Papermill 钩子和操作符 |
|
sftp |
|
SFTP 钩子、操作符和传感器 |
|
smtp |
|
SMTP 钩子和操作符 |
|
sqlite |
|
SQLite 钩子和操作符 |
|
ssh |
|
SSH 钩子和操作符 |
生产捆绑扩展¶
这些是作为捆绑包安装一个或多个扩展的扩展。
扩展 |
安装命令 |
启用 |
---|---|---|
all |
|
所有 Airflow 用户面向的功能(没有开发和文档要求) |
all-core |
|
所有不需要安装提供程序的核心 airflow 功能 |
all-dbs |
|
所有数据库集成 |
开发扩展¶
devel
扩展仅在可编辑模式下才有意义。Airflow 的用户不应使用它们,除非他们开始回馈并从源代码安装 airflow。这些扩展仅在 Airflow 从源代码以可编辑模式安装时才可用 (pip install -e .[devel,EXTRAS]
)。
Devel 扩展¶
devel 扩展不会为 Airflow 的功能安装依赖项,而是添加开发 Airflow 所需的功能,例如运行测试、静态检查。
扩展 |
安装命令 |
启用 |
---|---|---|
devel-debuggers |
pip install -e ‘.[devel-debuggers]’ |
添加测试调试器所需的所有测试库 |
devel-devscripts |
pip install -e ‘.[devel-devscripts]’ |
添加测试开发脚本所需的所有测试库 |
devel-duckdb |
pip install -e ‘.[devel-duckdb]’ |
添加测试 duckdb 所需的所有测试库 |
devel-iceberg |
pip install -e ‘.[devel-iceberg]’ |
添加测试 iceberg 所需的所有测试库 |
devel-mypy |
pip install -e ‘.[devel-mypy]’ |
添加测试 mypy 所需的所有测试库 |
devel-sentry |
pip install -e ‘.[devel-sentry]’ |
添加测试 sentry 所需的所有测试库 |
devel-static-checks |
pip install -e ‘.[devel-static-checks]’ |
添加测试 static_checks 所需的所有测试库 |
devel-tests |
pip install -e ‘.[devel-tests]’ |
添加测试测试所需的所有测试库 |
捆绑开发扩展¶
这些扩展将开发、可编辑和文档扩展捆绑在一起,以便于在单个安装中将它们一起安装。某些扩展在某些系统(如 ARM MacBook)上更难安装,因为它们需要安装系统级依赖项。
请注意,pip install -e ".[devel]"
应该至少运行一次,第一次初始化可编辑环境时,以便获得包含单元测试所需常用工具和依赖项的最小、完整的测试环境。
扩展 |
安装命令 |
启用 |
---|---|---|
devel |
|
最小开发依赖项 - 最小、完整的测试环境 |
devel-hadoop |
|
添加 Hadoop 堆栈库 |
devel-all-dbs |
|
添加测试数据库提供程序所需的所有库 |
devel-all |
|
开发所需的一切,包括 Hadoop、所有 devel 附加功能、所有 doc 附加功能。一般而言:除了提供程序之外的所有可能的依赖项 |
devel-ci |
|
CI 测试所需的所有依赖项(与 |
文档附加功能¶
这些是为 Airflow 生成文档所需的附加功能。这仅用于开发时。
扩展 |
安装命令 |
启用 |
---|---|---|
doc |
|
构建文档所需的软件包(包含在 |
doc-gen |
|
生成实体关系图所需的软件包(包含在 |
已弃用的 1.10 附加功能¶
这些是在 2.0 中已弃用,并将在 Airflow 3.0.0 中删除的附加功能。它们都被新的附加功能取代,这些附加功能的命名与提供程序软件包的名称一致。
不再需要 crypto
附加功能,因为所有加密依赖项都是 airflow 软件包的一部分,因此没有 crypto
附加功能的替代品。
已弃用的附加功能 |
要使用的替代附加功能 |
---|---|
atlas |
apache-atlas |
aws |
amazon |
azure |
microsoft-azure |
cassandra |
apache-cassandra |
crypto |
|
druid |
apache-druid |
gcp |
|
gcp-api |
|
hdfs |
apache-hdfs |
hive |
apache-hive |
kubernetes |
cncf-kubernetes |
mssql |
microsoft-mssql |
pinot |
apache-pinot |
s3 |
amazon |
spark |
apache-spark |
webhdfs |
apache-webhdfs |
winrm |
microsoft-winrm |