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

这是一个非常令人欣慰的结果。这意味着每 5 个用户中就有 1 个积极地为我们的项目做出贡献!但如果除了时间之外,还有其他原因阻止那些希望贡献的人,了解这些原因会很有帮助。如果存在其他障碍,我们肯定希望了解它们,以便进行改进。话虽如此 - 如果您知道我们可以改进的地方,请通过 Slack、开发者邮件列表或 Github Discussions 与我们联系。

您向他人推荐 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
有,我们有小的补丁(未分叉) 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 exporter。

您如何部署 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 用户界面 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
通用传输操作符 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
焕然一新的 Web 用户界面 102 50.25
调度器 HA 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 用户调查 2024

Ankit Chaurasia

这项调查收集了来自 116 个国家/地区的 5,250 多份回复,是迄今为止规模最大的数据工程调查。它每年进行一次,提供有关 Airflow 使用情况的宝贵见解,并帮助指导我们未来的工作。