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