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]
分享