Apache Airflow 2020 年调查

数据处理工具的世界正在稳步发展。Apache Airflow 似乎已经被认为是这个复杂生态系统的关键组成部分。我们观察到用户数量和活跃贡献者数量都在稳步增长。因此,倾听和理解我们的社区至关重要。

值得注意的是,2020 年的调查主要还是关于 Apache Airflow 的 1.10.X 版本,可能许多缺点已经在 2020 年 12 月发布的 2.0 版本中得到了解决。但如果这是真的,我们明年就会知道!

用户概览

哪个最能描述您目前的职业?(单选)

序号。 %
数据工程师 115 56.65
开发人员 28 13.79
DevOps 17 8.37
解决方案架构师 14 6.9
数据科学家 12 5.91
其他 10 4.93
数据分析师 4 1.97
支持工程师 3 1.48

这些结果并不令人意外,因为 Airflow 是一款专门用于数据相关任务的工具。我们的大部分用户都是数据工程师、科学家或分析师。2020 年的结果与2019 年的结果相似,只是机器学习用例的增加略微明显。

此外,79% 的用户每天使用 Airflow,16% 的用户每周至少与它交互一次。

您公司有多少人?(单选)

序号。 %
200+ 107 52.71
51-200 44 21.67
11-50 37 18.23
1-10 15 7.39

您公司有多少人使用 Airflow?(单选)

序号。 %
1-5 84 41.38
6-20 75 36.95
21-50 23 11.33
50+ 21 10.34

Airflow 是一款被大型公司使用和信任的软件。我们还可以看到 Airflow 可以很好地为不同规模的团队工作。但是,在某些情况下,用户可能会使用多个 Airflow 实例。

您是否正在考虑迁移到其他工作流引擎?(单选)

序号。 %
不,我们对 Airflow 很满意 174 85.71
29 14.29

大约七分之一的用户正在考虑迁移到其他工作流引擎。他们的决定通常是基于需要更简单的工作流编写体验(12.32%)、更好的 UI/UX更快的调度器(均为 8.37%)。

虽然第一个问题可以通过 Airflow 2.0 中的TaskFlow API来解决,但其他两个问题在新版本中得到了解决。而 2.0 用户的早期反馈似乎也证实了这一点。

用户考虑的替代引擎主要是 Prefect 和 Argo。一些参与者还提到了 Luigi、Kubeflow 或自定义解决方案。

您或您的团队是否积极参与 Airflow 的开发 - 做出贡献?(单选)

序号。 %
我希望我们能 99 48.77
59 29.06
45 22.17

这是一个真正令人暖心的结果。这意味着五分之一的用户积极为我们的项目做出贡献!但是,如果除了时间之外,还有其他原因阻止了那些希望做出贡献的人,那就应该了解一下。如果还有其他障碍,我们肯定很想了解它们,以便我们能够改进。也就是说 - 如果您知道我们可以在哪些方面改进,请通过 Slack、开发列表或 Github 讨论联系我们。

您有多大可能推荐 Apache Airflow?(单选)

序号。 2020 % 2019 %
非常可能 125 61.58 45.45%
可能 62 30.54 40.26%
中立 11 5.42 10.71%
不太可能 3 1.48 2.60%
非常不可能 2 0.99 0.97%

这里有个好消息!似乎人们比去年更愿意推荐 Apache Airflow。

您获取 Airflow 信息的来源是什么?(多选)

序号。 %
文档 154 75.86
Airflow 网站 139 68.47
Slack 128 63.05
Github 127 62.56
Stack Overflow 72 35.47
Airflow 峰会视频 44 21.67
开发邮件列表 33 16.26
Awesome Apache Airflow 代码库 21 10.34
其他 15 7.39

在这里,我们看到 Airflow 文档是至关重要的信息来源。有趣的是,超过 60% 的用户从 Github 和 Slack 渠道获取信息。

Airflow 用例

您是否对 Airflow 进行任何自定义?(单选)

序号。 %
不,我们使用原生的 Airflow 154 75.86
是的,我们有一些小的补丁(没有分支) 34 16.75
是的,我们有单独的分支 15 7.39

在将新成员加入 Airflow 时,最大的问题是什么?(多选)

序号。 %
没有关于开发 DAG 的最佳实践指南 102 50.25
没有简单启动 Airflow 的选项 64 31.53
关于使用 Airflow 的不同方面的教程很少 57 28.08
文档不够清晰 53 26.11
没有简单将 DAG 部署到 Airflow 实例的选项 52 25.62
没有问题 34 16.75
关于 Airflow 的博客很少 30 14.78

在您当前的角色中,您使用 Airflow 的哪些界面?(多选)

序号。 %
原始 Airflow 图形用户界面 199 98.03
CLI 88 43.35
API 48 23.65
自定义(自己创建的)Airflow 图形用户界面 12 5.91
其他 3 1.48

您是否组合多个 DAG?(多选)

序号。 %
是的,通过触发另一个 DAG 87 42.86
不,我不组合多个 DAG 79 38.92
是的,通过 SubDAG 40 19.7
其他 18 8.87

您如何与外部服务集成?(多选)

序号。 %
使用现有的专用运算符/钩子 147 72.41
使用 Bash/Python 运算符 140 68.97
使用自己的自定义运算符/钩子 138 67.98
其他 12 5.91

您在 Airflow DAG 中使用哪些外部服务?(多选)

序号。 %
Amazon Web Services 121 59.61
公司内部系统 113 55.67
Google Cloud Platform / Google API 97 47.78
Hadoop / Spark / Flink / 其他 Apache 软件 72 35.47
Microsoft Azure 21 10.34
其他 19 9.36
我在 Airflow DAG 中不使用外部服务 5 2.46

您是否使用 Airflow 插件?如果是,您使用它们做什么?(多选)

序号。 %
添加新的运算符/传感器和钩子 119 58.62
我不使用 Airflow 插件 69 33.99
添加 AppBuilder 视图和菜单项 27 13.3
添加新的执行器 17 8.37
添加 OperatorExtraLinks 13 6.4

| 其他

您是否使用 Airflow 的数据沿袭功能?(单选)

序号。 %
不,如果 Airflow 完全支持此功能,我将会使用 105 51.72
不,数据沿袭不是我所关心的问题。 68 33.5
是的,我使用其他数据沿袭产品 24 11.82
是的,我使用自定义实现 5 2.46
是的,我使用 Airflow 的实验性数据沿袭功能 1 0.49

当被问及用户使用哪些沿袭产品时,答案各不相同,从自定义工具到知名的产品,如 Amundsen、Atlas 或 dbt。

部署

在您最大的 Airflow 实例中,您有多少个活跃的 DAG?(开放式问题)

DAG 的数量 序号。 %
< 20 64 32
21-40 33 16
41-60 13 6
61-100 32 16
101-200 31 15
201-300 8 4
301-999 12 6
1000+ 10 5

您在一个 DAG 中使用过的最大任务数是多少?(开放式问题)

DAG 的数量 序号。 %
< 10 42 21
11-20 31 15
21-30 15 7
31-40 11 5
41-50 22 11
51-100 39 19
101-200 16 8
201-500 16 8
501+ 11 5

您当前使用哪个版本的 Airflow?(单选)

序号。 %
1.10.14 55 27.09
2.0.0+ 45 22.17
1.10.12 27 13.3
1.10.10 26 12.81
1.10.11 14 6.9
1.10.5 或更旧版本 10 4.93
1.10.9 8 3.94
1.10.13 7 3.45
1.10.6 4 1.97
1.10.7 4 1.97
1.10.8 3 1.48

这可能是调查中最重要的问题之一。虽然很高兴看到超过 60% 的用户使用三个最新的 Airflow 版本之一,但令人担忧的是,其余的用户使用的是旧版本或存在已知安全漏洞的版本。

此外,超过 20% 的用户已经在使用 2.0.0+ 版本,这是一个相当不错的信息。

您使用哪个元数据库?(单选)

序号。 %
Postgres 12 36 17.73
Postgres 9.6 33 16.26
Postgres 11 31 15.27
MySQL 5.7 27 13.3
MySQL 8.0 20 9.85
Postgres 10 20 9.85
其他 19 9.36
Postgres 13 18 8.87

这意味着大约 69% 的用户选择使用 Postgres 作为他们的元数据库。MySQL 是近 24% 用户的选择。其他回答包括一些 MySQL 版本,如 MariaDB 或云托管数据库,如 Cloud SQL(由 Google Composer 使用)或 AWS Aurora。

很高兴知道用户在生产部署中避免使用 SQLite!

您使用哪种执行器类型?(单选)

序号。 2020 2019
Celery 100 49.26% 44.81%
Kubernetes 48 23.65% 16.88%
Local 40 19.7% 27.60%
Sequential 10 4.93% 7.14%
其他 5 2.46% 3.57

与上一年相比,似乎更多用户目前使用 Celery 和 Kubernetes 执行器,而 LocalExecutor 的使用量下降了近 8 个百分点。这可能表明用户的部署正在增长,并且他们需要更可扩展的解决方案。

在 CeleryExecutor 用户中,78% 使用 Redis 作为代理,19% 使用 RabbitMQ,其余的使用其他代理或不确定其部署中使用的代理。

您使用哪些指标来监控 Airflow?(多选)

序号。 %
我不使用监控 65 32.02
外部监控服务 60 29.56
来自元数据库的信息 51 25.12
Statsd 49 24.14
其他 31 15.27

其他回复主要包括用户使用的工具的信息,包括 DataDog 和 Prometheus 导出器。

您如何部署 Airflow?(单选)

序号。 %
在虚拟机上(例如使用 AWS EC2) 64 31.53
使用托管服务,例如 Astronomer、Google Composer 或 AWS MWAA 35 17.24
在 Kubernetes 上(使用自定义部署) 29 14.29
在本地部署 28 13.79
在 Kubernetes 上(使用其他 helm chart) 20 9.85
在 Kubernetes 上(使用 Apache Airflow 的 helm chart) 17 8.37
其他 12 5.91

近 33% 的用户使用某种 Kubernetes 部署来部署 Airflow。这比 2019 年高出约 10%。通过托管服务使用 Airflow 的比例略有增加(2019 年为 14.61%)。

您是否使用容器化进行部署?(单选)

序号。 %
是的,使用 helm chart / kubernetes 58 28.57
不,我不使用容器化 57 28.08
是的,使用单个 docker 镜像 49 24.14
是的,使用 docker compose 39 19.21

在不使用基于 Kubernetes 部署的用户中,58% 的用户使用容器化。其中约 42% 的用户使用 docker-compose 进行部署。

您如何分发 DAG?(单选)

序号。 %
使用同步过程(Git 同步、GCS fuse 等) 79 38.92
将其打包到 docker 镜像中 56 27.59
共享文件系统 34 16.75
其他 20 9.85
我不知道 14 6.9

最流行的 DAG 分发方式似乎是使用同步过程。约 40% 的用户将此过程与 Kubernetes 部署一起使用。

Airflow 的未来

您认为 Airflow 可以在哪些方面改进?(多选)

序号。 %
Web UI 100 49.26
示例、操作指南、入门文档 90 44.33
日志记录、监控和告警 90 44.33
技术文档 90 44.33
调度器性能 83 40.89
DAG 编写 64 31.53
身份验证和授权 58 28.57
REST API 51 25.12
其他 44 21.67
可靠性 41 20.2
外部集成,例如 AWS、GCP、Apache 产品 36 17.73
安全性 28 13.79
CLI 20 9.85
一切对我来说都运行良好 14 6.9
我不知道 4 1.97

您对哪些功能最感兴趣?(多选)

序号。 %
DAG 版本控制 109 53.69
内置统计信息 71 34.98
改进的数据血缘 65 32.02
在间隔开始时进行调度 63 31.03
无状态工作进程 59 29.06
更多配置计划的选项(时间单位、增量) 57 28.08
多租户部署 49 24.14
DAG 获取器 (AIP-5) 39 19.21
通用传输操作符 34 16.75
其他 33 16.26
我拥有一切我需要的 11 5.42
没有 11 5.42

您是否会考虑迁移到 Airflow 2.0?(单选)

序号。 %
是的,尽快 81 39.9
是的,一旦它成熟(例如在 2.1 之后) 72 35.47
我已经在使用 Airflow 2.0+ 了 39 19.21
我还不确定 8 3.94
不,我不打算迁移 3 1.48

您对 Airflow 2.0 的哪些功能最兴奋?(多选)

序号。 %
整体性能改进 133 65.52
刷新后的 WebUI 102 50.25
调度器 HA 99 48.77
官方 docker 镜像 84 41.38
@task 装饰器 56 27.59
官方 helm chart 51 25.12
Provider 包 41 20.2
可配置的 XCom 后端 33 16.26
CeleryKubernetesExecutor 31 15.27
其他 12 5.91

总结

从开源的角度来看,很高兴看到许多人愿意为 Apache Airflow 做出贡献。这意味着,如果释放这些资源,我们的社区可能会变得更加强大。从产品的角度来看,重要的是要知道用户通常使用我们软件的最新版本,并且愿意升级到新版本。

最后,仍然有一些需要改进的地方——文档、入门指南和即插即用的 Airflow 部署。但是,我们希望随着采用率的提高,将会有越来越多的人愿意分享他们的经验和工具。

数据

如果您认为我遗漏了某些内容,或者您只是想自己寻找见解,请在此处获取数据:(Airflow 用户调查 2020.csv)[/data/survey-responses/airflow-user-survey-responses-2020.csv.zip]

分享

另请阅读

Airflow 调查 2019

Tomek Urbaszek

接收并调整我们用户的反馈是必须的。让我们看看 Airflow 用户是谁、他们如何使用它以及他们缺少什么。

Airflow 调查 2022

John Thomas, Ewa Tatarczak

2021 年见证了 Airflow 2 的快速采用和社区的持续增长。这项年度调查有助于我们了解人们如何使用 Airflow 以及我们应该在哪里最好地集中精力。