Airflow 用户调查 2022

今年的调查已经结束,我们已经获得了新的数据供大家使用!我们在两周内收集了 210 份回复。在过去两年中,我们看到贡献和下载量都在持续增长,并预计这种趋势将持续到 2022 年。

原始回复数据将很快在此处提供,与此同时,如果您需要副本,请随时发送电子邮件至 john.thomas@astronomer.io

TL;DR(太长不看)

用户概述

  • 与往年一样,超过一半的 Airflow 用户是数据工程师 (54%)。解决方案架构师 (13%)、开发人员 (12%)、DevOps (6%) 和数据科学家 (4%) 也是活跃的 Airflow 用户!与 2020 年2019 年 的结果相比,解决方案架构师职位的代表性略有增加。
  • Airflow 在大型公司中得到使用和流行,64% 的 Airflow 用户在拥有 200 多名员工的公司工作,与 2020 年 相比增加了 11 个百分点。
  • 62% 的调查参与者公司拥有 6 名以上的 Airflow 用户。
  • 2020 年2019 年 的调查结果相比,更多 Airflow 用户 (65.9%) 愿意推荐 Apache Airflow。推荐 Airflow 的意愿总体呈积极趋势,93% 的受访 Airflow 用户愿意推荐 Airflow(2019 年 为 85.7%,2020 年 为 92%),只有 1% 的用户不太可能推荐(2019 年 为 3.6%,2020 年 为 3.5%)。
  • Airflow 文档是重要的信息来源,超过 90%(与 2020 年 的结果相比增加了 15%)的调查参与者使用该文档。Airflow 文档也是需要改进的主要领域之一!有趣的是,Stack Overflow 的使用也很重要,大约 60% 的用户表示将其作为信息来源(与 2020 年 的结果相比增加了 24%)。

部署

  • 85% 的 Airflow 用户拥有 1 到 7 个活跃的 Airflow 实例。62.5% 的 Airflow 用户在其最大的 Airflow 实例中拥有 11 到 250 个 DAG。75% 的受访 Airflow 用户每个 DAG 有 1 到 100 个任务。
  • 近 85% 的用户使用 Airflow 2 的某个版本,9.2% 的用户仍然使用 1.10.15,而其余 6.3% 的用户仍然使用旧版本的 Airflow 1。好消息是,大多数使用 Airflow 1 的用户计划很快迁移到 Airflow 2,资源和容量是主要的障碍。
  • 2020 年 的结果相比,更多用户对一般监控以及特别是使用外部监控服务(40.7%,高于 29.6%)和来自元数据库的信息(35.7%,高于 25.1%)等工具感兴趣。
  • Celery (52.7%) 和 Kubernetes (39.4%) 是最常用的执行器。

使用情况

  • 81.3% 回答调查的 Airflow 用户没有对 Airflow 进行任何自定义。
  • Xcom (69.8%) 是在任务之间传递输入和输出的最流行的方法,但是从存储中保存和检索输入和输出仍然起着重要作用 (49%)。
  • Lineage 本身对于 Airflow 用户来说是一个相当新的主题,他们中的大多数人没有使用 Lineage 解决方案,但如果 Airflow 支持可能会感兴趣 (47.5%),不熟悉数据 lineage (29%) 或数据 lineage 不是他们关注的问题 (13%)。
  • Airflow Web UI 主要用于监控运行 (95.9%)、访问任务日志 (89.8%)、手动触发 DAG (85.2%)、清除任务 (82.7%) 和将任务标记为成功 (60.7%)。使用的前 3 个视图是:DAG 列表、任务日志和 DAG 运行,这与 2020 年2019 年 的结果非常相似。

社区和贡献

  • 大多数 Airflow 用户 (57.1%) 意识到他们可以贡献但没有这样做,另外 21.7% 的用户很少贡献。14.8% 的用户不知道他们可以贡献。为了鼓励我们的社区更加积极地贡献,并将目前积极贡献的 6.4% 的用户提高,还有很多工作要做,特别是考虑到贡献的一个重要障碍是缺乏关于如何开始的知识 (37.7%)。

Airflow 的未来

  • 改进的主要领域仍然是 Airflow Web UI (49.5%),紧随其后的是用于日志记录、监控和警报目的的更多遥测数据 (48%)。但是,所有这些努力都应与改进的文档 (36.6%) 和关于使用 Airflow 的资源保持一致,尤其是在我们考虑到新用户入职的需求时 (36.6%)。
  • DAG 版本控制 (66.2%) 是 Airflow 新功能的赢家,这不足为奇,因为此功能可能会对 Airflow 用户的日常工作产生积极影响。紧随其后的是其他三个想法:依赖关系管理和数据驱动的调度 (42.6%)、更动态的任务结构 (42.1%) 和多租户 (37.9%)。

用户概述

什么最能描述您当前的职业?(单选)

alt_text

编号 %
数据工程师 114 54%
解决方案架构师 27 13%
开发人员 25 12%
DevOps 12 6%
数据科学家 8 4%
支持工程师 5 2%
数据分析师 3 1%
业务分析师 2 1%
其他 14 7%

根据调查,超过一半的 Airflow 用户是数据工程师 (54%)。其余 Airflow 用户的角色可以分为解决方案架构师 (13%)、开发人员 (12%)、DevOps (6%) 和数据科学家 (4%)。2022 年的结果与 2019 年2020 年 的结果相似,解决方案架构师职位的代表性略有增加。

您多久与 Airflow 交互一次?(单选)

alt_text

编号 %
每天 154 73%
每周至少一次 36 17%
每月至少一次 11 5%
每月不到一次 9 4%

参加调查的用户都在其当前角色中积极使用 Airflow。73% 回答的 Airflow 用户每天使用它,17% 每周使用它。

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

alt_text

编号 %
201-5000 85 41%
5000+ 49 23%
51-200 46 22%
11-50 20 10%
1-10 9 4%

Airflow 是一个在大型公司中使用和流行的框架,64% 回答的 Airflow 用户(2020 年 为 52.7%)在 200 多名员工的公司工作(41% 在 201-5000 人的公司,23% 在 5000 人以上的公司)。

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

alt_text

编号 %
6-20 80 38%
1-5 61 29%
51-200 49 24%
200+ 18 9%

Airflow 通常被小型到中型团队使用。62% 的调查参与者公司拥有 6 名以上的 Airflow 用户(38% 的用户拥有 6 到 200 名用户,24% 的用户拥有 51 到 200 名用户)。

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

% 2019 % 2020 % 2022
非常有可能 45.4% 61.6% 65.9%
可能 40.3% 30.4% 26.9%
中立 10.7% 5.4% 6.3%
不太可能 2.6% 1.5% 0.5%
非常不可能 1% 1% 0.5%

根据调查,与 2020 年2019 年 的调查结果相比,更多 Airflow 用户 (65.9%) 愿意推荐 Apache Airflow。推荐 Airflow 的意愿总体呈积极趋势,93% 的受访 Airflow 用户愿意推荐 Airflow(2020 年 为 92%,2019 年 为 85.7%),只有 1% 的用户不太可能推荐(2019 年 为 3.6%,2020 年 为 3.5%)。

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

编号 %
文档 189 90.4%
Airflow 网站(博客等) 142 67.9%
Stack Overflow 126 60.3%
Github 问题 104 49.8%
Slack 96 45.9%
Airflow 峰会视频 88 42.1%
GitHub 讨论 76 36.4%
Airflow 社区网络研讨会 41 19.6%
Astronomer 注册表 51 24.4%
Airflow 邮件列表 34 16.3%

Airflow 文档是重要的信息来源,超过 90% 的调查参与者使用该文档。与 2020 年 的结果(文档约为 75% 的水平)相比,它越来越重要。此外,超过 60% 的用户从 Airflow 网站 (67.9%) 和 Stack Overflow (60.3%) 获取信息,与 2020 年 的 36% 水平相比也有大幅增加。有趣的是,Slack 的使用率从 2020 年 的 63.05% 下降到 2022 年的 45.9%。

部署

您最大的 Airflow 实例中有多少个活动的 DAG?(单选)

alt_text

编号 %
51-250 66 31.7%
11-50 64 30.8%
5-10 25 12.0%
251-500 20 9.6%
<5 14 6.7%
1000+ 10 4.8%
501-1000 9 4.3%

62.5% 的受访 Airflow 用户在其最大的 Airflow 实例中拥有 11 到 250 个 DAG。

您有多少个活动的 Airflow 实例?(单选)

alt_text

编号 %
1 52 25.2%
2 46 22.3%
4-7 40 19.4%
3 37 18.0%
20+ 19 9.2%
8-10 7 3.4%
11-20 5 2.4%

85% 的受访 Airflow 用户拥有 1 到 7 个活动的 Airflow 实例,近 50% 的用户只有 1 个或 2 个实例。

您在单个 DAG 中使用的最大任务数是多少?(单选)

alt_text

编号 %
11-25 51 24.5%
26-50 41 19.7%
51-100 35 16.8%
<10 29 13.9%
101-250 23 11.1%
501-1000 9 4.3%
1000-2500 8 3.8%
251-500 8 3.8%
2500-5000 4 1.9%

75% 的受访 Airflow 用户每个 DAG 有 1 到 100 个任务。

您最大的 Airflow 实例中有多少个调度器?(单选)

alt_text

编号 %
1 113 55.1%
2 61 29.8%
3 18 8.8%
4+ 13 6.3%

在参与调查的 Airflow 用户中,超过一半的用户在其最大的 Airflow 实例中仅使用 1 个调度器,但值得注意的是,另一半 Airflow 用户选择使用 2 个或更多调度器。

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

编号 %
Celery 107 52.7 %
Kubernetes 80 39.4%
本地 49 24.1%
顺序 21 10.3%
CeleryKubernetes 14 6.9%

Celery (52.7%) 和 Kubernetes (39.4%) 是最常用的执行器。CeleryKubernetes (6.9%) 执行器也开始被 Airflow 用户注意到和使用。

如果您使用 Celery 执行器,您最大的 Airflow 实例中有多少个 worker?(单选)

alt_text

编号 %
2-5 64 44.8%
10+ 28 19.6%
1 26 18.2%
6-10 25 17.5%

在参与调查的 Celery 执行器用户中,接近一半(44.8%)的用户在其最大的 Airflow 实例中拥有 2 到 5 个 worker。值得注意的是,近五分之一 (19.6%) 的用户拥有超过 10 个 worker。

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

alt_text

编号 %
1.10.14 或更早版本 13 6.3%
1.10.15 19 9.2%
2.0.x 23 11.1%
2.1.x 24 11.6%
2.2.x 79 38.2%
2.3.x 49 23.7%

很高兴看到参与调查的用户中,接近 85% 的用户使用 Airflow 2 的某个版本,9.2% 的用户仍然使用 1.10.15,而剩余的 6.3% 的用户仍然使用较旧的 Airflow 1.10 版本。

好消息是,大多数使用 Airflow 1 的用户计划很快迁移到 Airflow 2,因为目前他们认为在能力上有限制,难以进行如此重大的工作。然而,在调查的评论中也可以注意到,一些用户普遍对迁移到 Airflow 2 持怀疑态度,他们对新的调度器或与 helm chart 的兼容性持负面意见。

关于迁移到最新版本的 Airflow 2 的计划,参与调查的用户很坚定,并且特别期待与动态 DAG 相关的特性。然而,一些用户也表示,他们正在等待解决一些依赖关系,或者他们更喜欢等待社区测试新版本一段时间后再决定迁移。

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

编号 %
外部监控服务 81 40.7%
来自元数据库的信息 71 35.7%
Statsd 54 27.1%
我不使用监控 47 23.6%
其他 14 7%

2020 年的结果相比,更多的用户正在以某种方式监控 Airflow。外部监控服务 (40.7%) 和来自元数据库的信息 (35.7%) 开始在 Airflow 监控中发挥更重要的作用。

您如何部署 Airflow?(多选)

编号 %
在虚拟机上(例如使用 AWS EC2) 63 30.6 %
使用托管服务,如 Astronomer、Google Composer 或 AWS MWAA 54 26.2 %
在 Kubernetes 上(使用 Apache Airflow 的 helm chart) 46 22.3%
在本地 43 20.9%
在 Kubernetes 上(使用自定义部署) 39 18.9%
在 Kubernetes 上(使用其他 helm chart) 21 10.2%
其他 13 6.5%

超过一半的参与调查的 Airflow 用户 (51.4%) 在 Kubernetes 上部署 Airflow。这比 2020 年增加了约 20%。其余主要的部署方法是在虚拟机上 (30.6%) 和通过托管服务 (26.2%)。

您如何将 DAG 从开发环境分发到云端?(单选)

编号 %
使用同步进程(Git 同步、GCS fuse 等) 100 49%
将它们构建到 Docker 镜像中 51 25%
共享文件系统 30 14.7%
其他 16 7.9%
我不知道 7 3.4%

根据调查回复,最流行的 DAG 分发方式是同步进程,大约一半的 Airflow 用户 (49%) 使用此过程将 DAG 从开发环境分发到云端。

使用情况

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

alt_text

编号 %
不,我们使用原生的 Airflow 165 81.3%
是的,我们有一个单独的分支 13 6.4%
是的,我们使用第三方分支 12 5.9%
是的,我们将 bug 修复向后移植到旧版本 13 6.4%

更多的 Airflow 用户 (81.3%) 没有对 Airflow 进行任何自定义(与 2020 年的 75.9% 相比)。那些进行自定义的 Airflow 用户 (18.7%) 决定引入自定义,主要是为了分离开发和生产工作流程、向后移植 bug 修复、修复安全漏洞或在 Kubernetes pod 上运行回填命令。

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

alt_text

编号 %I
PostgreSQL 13 86 43.9%
PostgreSQL 12 74 37.8%
MySQL 8 22 11.2%
MySQL 5 9 4.6%
MariaDB 4 2.0%
MsSQL 1 0.5%

根据调查回复,最流行的元数据数据库是 PostgreSQL 13 (43.9%) 和 PostgreSQL 12 (37.8%)。这比 2020 年大幅增加,PostgreSQL 的总使用率从 68.9% 增加到 81.7%,而 MySQL 的使用率则相应下降,从 23% 降至 15%。考虑到社区关于不增加对更多数据库后端支持,甚至决定仅支持单个数据库的讨论,这是一个有趣的结果。

在您的 Airflow DAG 中,您与提供商和外部服务集成的主要方法是什么?(单选)

alt_text

编号 %
使用现有的专用操作符/钩子 70 34.5%
使用 Bash/Python 操作符 58 28.6%
使用自定义操作符/钩子 50 24.6%
使用 KubernetesPodOperator 25 12.3%

根据调查回复,以下使用 Airflow 连接到外部服务的方式最受欢迎:使用现有的专用操作符/钩子 (34.5%)、使用 Bash/Python 操作符 (28.6%)、使用自定义操作符/钩子 (24.6%)。根据调查回复,使用 KubernetesPodOperator (12.3%) 的普及程度较低。与提供商和外部服务的集成方法排名与 2020 年的排名相似。

您在 Airflow DAG 中使用哪些提供商?(多选)

编号 %
亚马逊网络服务 112 55.4%
谷歌云平台 / 谷歌 API 79 39.1%
内部公司系统 75 37.1%
Hadoop / Spark / Flink / 其他 Apache 软件 57 28.2%
微软 Azure 17 8.4%
其他 21 10.5%
我的 Airflow DAG 中不使用外部服务 14 6.9%

毫不奇怪,亚马逊网络服务(55.4%,2020 年为 59.6%)位居第一,其次是谷歌云平台(39.1%,2020 年为 47.7%)、内部公司系统(37.1%,2020 年为 55.6%)和其他 Apache 产品(28.2%,2020 年为 35.47%)是主要的 Airflow 提供商。

您多久升级一次 Airflow 环境?(单选)

alt_text

编号 %
每 12 个月 46 22.9%
每 6 个月 49 24.4%
每个季度一次 47 23.4%
只要有新版本就升级 59 29.4%

在参与调查的 Airflow 用户中,不同频率的 Airflow 环境升级几乎同样受欢迎。

您是否将提供商与核心分开升级?(单选)

alt_text

编号 %
当我需要时 83 42.8%
从不 - 总是使用 Airflow 自带的提供商 68 35.1%
我不知道可以单独升级提供商 32 16.5%
当提供商发布时我就升级 11 5.7%

根据调查回复,Airflow 用户最常在需要时升级提供商 (42.8%),或者倾向于使用 Airflow 自带的提供商 (35.1%)。令人惊讶的是,16.5% 的参与调查的 Airflow 用户不知道他们可以将提供商与核心 Airflow 分开升级。

您如何在任务之间传递输入和输出?(多选)

编号 %
Xcom 141 69.8%
从存储中保存和检索 99 49%
TaskFlow 37 18.3%
其他 5 2.5%
我们不传递 29 14.4%

根据调查回复,Xcom (69.8%) 是任务之间传递输入和输出的最流行方法,但从存储中保存和检索输入和输出仍然发挥着重要作用 (49%)。有趣的是,接近 15% 的参与调查的 Airflow 用户声明不在任务之间传递任何输出或输入。

您是否使用数据沿袭后端?(多选)

编号 %
不,但如果 Airflow 完全支持此功能,我将使用它 95 47.5%
我不熟悉数据沿袭 58 29%
不,数据沿袭不是我所关心的问题 26 13%
是的,我将沿袭发送到开源沿袭存储库 15 7.5%
是的,我将沿袭发送到企业沿袭存储库 7 3.5%
是的,我将沿袭发送到自定义内部沿袭存储库 9 4.5%

当被问及 Airflow 用户使用哪个沿袭后端时,答案表明,虽然沿袭本身是一个相当新的话题,但人们对整个功能很感兴趣。大多数 Airflow 用户回复说,他们目前不使用沿袭解决方案,但如果 Airflow 支持,将来可能会感兴趣 (47.5%),不熟悉数据沿袭 (29%),或者数据沿袭不是他们所关心的问题 (13%)。

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

编号 %
原始 Airflow 图形用户界面 189 94%
CLI 98 48.8%
API 80 39.8%
自定义(自己创建的)Airflow 图形用户界面 12 6%
GCP Composer 1 0.5%

很明显,使用 Airflow Web UI 非常重要,因为 94% 的参与调查的用户声明将其作为当前角色的一部分使用。CLI (48.8%) 和 API (39.8%) 的使用成对出现,但与 Airflow Web UI 的使用相比不太常见。

(如果标记了 GUI)您使用 GUI 做什么?(多选)

编号 %
监控运行 188 95.9%
访问任务日志 176 89.8%
手动触发 DAG 167 85.2%
清除任务 162 82.7%
将任务标记为成功 119 60.7%
其他 6 3%

Airflow Web UI 主要用于监控:监控运行 (95.9%) 和故障排除:访问任务日志 (89.8%)、手动触发 DAG (85.2%)、清除任务 (82.7%) 和将任务标记为成功 (60.7%)。

(如果标记了 CLI)您使用 CLI 做什么?(多选)

编号 %
回填 63 56.8%
手动触发 DAG 52 46.8%
清除任务 26 23.4%
监控运行 25 22.5%
访问任务日志 21 18.9%
将任务标记为成功 11 9.9%
其他 17 15.3%

与 Airflow Web UI 相比,Airflow CLI 主要用于回填 (56.8%) 和手动触发 DAG (46.8%)。

在 Airflow 中,哪些 UI 视图对您很重要?(多选)

编号 %
DAG 列表 178 89.4%
任务日志 162 81.4%
DAG 运行 160 80.4%
图表视图 147 73.9%
网格/树状视图 138 69.3%
运行详情 117 58.8%
DAG 详情 111 55.8%
任务实例 102 51.3%
任务持续时间 91 45.7%
代码 90 45.2%
任务尝试 60 30.2%
甘特图 48 21.4%
落地时间 27 13.6%
其他 4 2%

UI 视图重要性排名表明,大多数 Airflow 用户主要将 Web UI 用于监控和/或故障排除目的,其中前 3 个视图是 DAG 列表 (89.4%)、任务日志 (81.4%) 和 DAG 运行 (80.4%)。结果与 2020 年2019 年的结果非常相似。

社区和贡献

您是否参与 Airflow 社区的讨论?(单选)

alt_text

编号 %
我偶尔会看到 99 48.3%
我定期关注讨论的内容但不参与 53 25.9%
我不知道可以参与 41 20.0%
我积极参与讨论 12 5.9%
编号 %
我知道可以参与,但我没有贡献 116 57.1%
非常少,只在与我需要的内容相关时 44 21.7%
我不知道可以参与 30 14.8%
我定期通过讨论、审查和提交 PR 来做出贡献 13 6.4%

与 Airflow 社区讨论相关的结果与参与 Airflow 社区讨论的结果非常相似。大多数参与调查的 Airflow 用户 (57.1%) 知道可以参与,但不贡献或很少贡献 (21.7%)。14.8% 的用户不知道他们可以贡献。再一次,这清楚地表明,为了让我们的社区更积极地贡献,并提高目前积极贡献的 6.4% 的用户比例,还有很多工作要做。

如果您不贡献 - 为什么?

alt_text

编号 %
即使我想贡献,也没有时间 65 38.9%
我不知道如何开始 63 37.7%
我没有贡献的需求 19 11.4%
我不知道可以参与 12 7.2%
我的雇主有政策,使得贡献变得困难 8 4.8%

根据调查结果,Airflow 贡献的最大障碍是时间有限 (38.9%),但令人惊讶且重要的障碍是缺乏关于如何开始的知识 (37.7%),其次是缺乏关于可以贡献的知识 (7.2%)。

Airflow 的未来

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

编号 %
Web UI 100 49.5%
日志记录、监控和警报 97 48.0%
示例、操作指南、入门文档 74 36.6%
技术文档 74 36.6%
调度器性能 56 27.7%
可靠性 52 25.7%
DAG 编写 48 23.8%
REST API 43 21.3%
身份验证和授权 41 20.3%
外部集成,例如 AWS、GCP、Apache 产品 41 20.3%
更好地支持各种部署(Docker-compose/Nomad/其他) 39 19.3%
一切对我来说都很好 19 9.4%
我不知道 4 2.0%

结果非常不言自明。根据调查结果,最需要改进的仍然是 Airflow Web UI(49.5%),紧随其后的是用于日志记录、监控和警报的更多遥测数据(48%)。然而,所有这些努力都应与改进的文档(36.6%)和关于使用 Airflow 的资源保持一致,尤其是在考虑到新用户入门的需求时(36.6%)。

您希望在 Airflow 中看到哪些功能?

编号 %
DAG 版本控制 129 66.2%
依赖管理和数据驱动的调度 83 42.6%
更动态的任务结构 82 42.1%
多租户 74 37.9%
基于信号的调度 67 34.4%
更好的安全性(隔离) 65 33.3%
通过 API 外部提交新的 DAG 53 27.2%
可组合的操作符 46 23.6%
支持原生云执行器(AWS/GCP/Azure 等) 44 22.6%
更好地支持机器学习 38 19.5%
远程 CLI 36 18.5%
支持混合执行器 22 11.3%

根据调查结果,DAG 版本控制是 Airflow 新功能的赢家,这并不奇怪,因为此功能可能会对 Airflow 用户的日常工作产生积极影响。紧随其后的是其他三个想法:依赖管理和数据驱动的调度(42.6%)、更动态的任务结构(42.1%)和多租户(37.9%)。该问题中另一个有趣的观点是,只有 11.3% 的人认为 Airflow 中需要支持混合执行器。

数据

如果您有兴趣自己查看原始数据,请在此处获取:(Airflow User Survey 2022.csv)[/data/survey-responses/airflow-user-survey-responses-2022.csv.zip]

分享

另请阅读

Airflow 2020 年用户调查

Tomek Urbaszek

我们观察到用户数量和活跃贡献者数量都在稳步增长。因此,倾听和理解我们的社区至关重要。

Airflow 2019 年用户调查

Tomek Urbaszek

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