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 使用情況的寶貴見解,並幫助指導我們未來的工作。