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

接近每 7 位用户中就有 1 位在考虑迁移到其他工作流引擎。他们的决定通常因为需要 更简便的工作流编写体验(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

这真是令人暖心的结果。这意味着每 5 位用户中就有 1 位积极为我们的项目做出贡献!但我们想了解除了时间之外,还是否有其他因素阻止有意贡献的人付诸行动。如果存在其他障碍,我们非常希望得知,以便改进。话虽如此——如果您知道我们可以改进的地方,请通过 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 Summit 视频 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
是的,我们有小的补丁(未 fork) 34 16.75
是的,我们有独立的 fork 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

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

否。 %
使用已有的专用 operators / hooks 147 72.41
使用 Bash / Python operator 140 68.97
使用自定义 operators / hooks 138 67.98
其他 12 5.91

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

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

您使用 Airflow 插件吗?如果使用,您将它们用于什么?(多选)

否。 %
添加新的 operators / sensors 和 hooks 119 58.62
我不使用 Airflow 插件 69 33.99
添加 AppBuilder 视图和菜单项 27 13.3
添加新的 executor 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 作为元数据库。近 24% 的用户选择 MySQL。其他回答包括一些 MySQL 变体,如 MariaDB,或云托管数据库,如 Google Composer 使用的 Cloud SQL 或 AWS Aurora。

值得庆幸的是,用户在生产部署中基本避免使用 SQLite!

您使用哪种 executor 类型?(单选)

否。 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 executor,而 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%。使用托管服务的比例也略有上升(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 sync、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 fetcher(AIP-5) 39 19.21
通用传输 operator 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
调度器高可用 99 48.77
官方 Docker 镜像 84 41.38
@task 装饰器 56 27.59
官方 Helm Chart 51 25.12
Providers 包 41 20.2
可配置的 XCom 后端 33 16.26
CeleryKubernetesExecutor 31 15.27
其他 12 5.91

总结

从开源的角度来看,看到许多人愿意为 Apache Airflow 贡献力量是件好事。这意味着如果能够发挥这些资源,社区将会更加强大。从产品角度来看,了解用户通常使用我们软件的最新版本并愿意升级到新版本也很重要。

当然仍有一些需要改进的地方——文档、入门指南以及即插即用的 Airflow 部署。但我们希望随着采纳度的提升,愿意分享经验和工具的人会增加。

数据

如果您认为我遗漏了什么,或者想自行进行洞察,数据可在此获取:(Airflow User Survey 2020.csv)[/data/survey-responses/airflow-user-survey-responses-2020.csv.zip]

分享

阅读更多

Airflow 调查 2019

Tomek Urbaszek

接受并适应用户反馈是必须的。让我们看看 Airflow 的用户是谁,他们如何使用它,以及他们有哪些需求未得到满足。

Airflow 调查 2025

Ankit Chaurasia

该调查收集了来自122个国家的5,818 多份回复,是迄今为止规模最大的数据工程调查。每年进行一次,Apache Airflow 调查提供了关于 Airflow 使用的宝贵洞见,并帮助指导我们的未来工作。