閱讀769 返回首頁    go 阿裏雲 go 技術社區[雲棲]


深扒一個獨角獸公司標配但仍被低估的行業


0?wx_fmt=jpeg

文章要點:

  • 6500 人在 LinkedIn (領英)上稱自己是數據工程師。

  • 2013 到 2015 年,數據工程師的數量至少翻了一倍。

  • 50% 的數據工程師都在美國。

  • 42% 的數據工程師都是軟件工程出身。

  • 數據工程師主要供職於信息科技與服務產業。

  • 數據工程師前 5 項主要技能是:SQL, Java, Python, Hadoop, 和Linux。R語言甚至都沒進前 20。


美國數據工程概況:

目前,LinkedIn 上有 6500 人稱自己是數據工程師。而僅在舊金山,就有 6600 個這樣的工作機會虛位以待。去年,數據工程師的數量翻了一倍,但工程主管們卻仍覺得人才匱乏。

數據人才的旺盛需求源自一個根本性的變化:科技公司現如今都成了數據公司。

像 Uber、Airbnb、Spotify 這些公司都在大力發展數據產品,結果便造成數據係統開發和維護人才的激烈爭奪。

Josh Wills 是 Slack 的數據工程師,在 2016 數據工程大會(DataEngConf 2016)上半開玩笑地說:“我的數據工程師都在會場了,請你們別挖牆角。” 即使 Slack 這樣當紅的矽穀企業,也在擔憂如何留住這些寶貴人才。

我們的研究著重於說明以下幾個方麵:

  • 目前市場上數據工程師的數量;

  • 數據工程師的背景和核心技能 —— 這些信息對於主管們研究如何將軟件工程轉換至數據工程特別有用(編者按:以緩解招聘數據工程師的壓力);

  • 數據工程師的就業信息 —— 幫助你說明為什麼要投資(時間/精力/金錢)到這項昂貴的技能中來。 

從 Stripe、MIT、Looker 的工程主管對數據人才的發現、留任和對數據工程師團隊項目的開發等一係列策略的分享中,我們找到了這些問題的答案,使得這份報告清晰地呈現出數據工程的現狀。


關鍵指標:

  • 人數:6500 人在 LinkedIn (領英)上稱自己是數據工程師。

  • 發展:2013 到 2015 年,數據工程師的數量至少翻了一倍。

  • 分布:50% 的數據工程師都在美國。

  • 之前的職務:42% 的數據工程師都是軟件工程出身。

  • 產業:數據工程師主要供職於信息科技與服務產業。

  • 技能:數據工程師前 5 項主要技能是:SQL, Java, Python, Hadoop, 和Linux。R語言甚至都沒進前 20。


分析方法:

本報告基於 Linkedin 上的用戶資料,包括所有公開可見的個人及公司檔案、技能與工作經驗,數據以 2016 年 3 月份的統計為準。


我們根據檔案上的職業標題和頭銜識別出數據工程師,這裏隻納入了那些可確認公司的數據工程師檔案。


圖表:LinkedIn 個人檔案總結 ▼


0?wx_fmt=jpeg
▲ 截止 2016 年 3 月 1 日,Linkedin 上的個人檔案大約 4.3 億,此次參考了 2.6 億例檔案,其中列有至少一項經曆的近 1.9 億, 有一項已認證經曆的超過 1 億,當前經曆已認證的近 8000 多萬。


在這些數據工程師中,我們分析了:


  • 3 萬項工作經驗

  • 8.2 萬條個人經曆

  • 3400 個公司


分析工具:

  • 分析采用 Python, SQL 和 Jupyter。

  • HighCharts 和 HighMaps 中的交互式可視化效果采用 Python 的製圖包和 Python-highchairs 實現。

  • 數據采用 AWS Redshift 進行存儲和處理。


數據工程師有多少?


“數據工程師”(所有以某種方式與數據打交道的軟件工程師)的定義仍有很大的模煳性,目前並沒有一個完美答案,我們覺得由這些從業者自己來解讀是最好的方式。

我們發現在 Linkedin 上有 6500 人稱自己是“數據工程師”。

6500,這個數目並不大。

實際上,我們有些驚訝“數據工程師”竟如此之少。而在寫這篇報道的時候,Indeed 上有 6600 個 數據工程師的招聘啟事,這還僅僅是在舊金山和灣區。

薪酬數據也證實了數據工程師很受歡迎。據說,在 Facebook, Amazon 和 Google 這樣的巨頭公司工作的頂級數據工程師工資超 50 萬美金。Indeed 的數據分布更保守一些,盡管如此,薪資也達到了 6 位數。


圖表: 舊金山地區數據工程師的數量和薪酬比▼

0?wx_fmt=jpeg
▲ 截止從上圖可以看出,薪酬在 10 萬美元以上的職位超過 80%, 其中 110k-120k, 120k-130k 和 130k+ 的職位都很多,均超過了 20%。數據工程師成為當下的黃金職業!

專家洞見:

Jonathan Coveney,Stripe 數據工程師:“對數據工程師型人才的需求”。

近十年來,Jonathan 都在數據領域深耕,曾在 Twitter、Spotify 等公司建立數據係統。在他看來,有三種主要趨勢在推動著對數據工程師類人才的需求:

公司在對數據和管理數據的人的思考上更加精深。“數據不再是副產品,而是一個公司運作的核心”。

對機器學習愈加倚重。由於機器學習的進步,對專有數據的掌握逐漸成為各個領域的公司最重要的競爭優勢。

公司開始建造數據產品。“以地圖為例,機器學習主要作用於交通路線的偵測與規劃,而地圖的基礎建設則在於管理和組織大規模的數據,這就是數據工程。”


數據工程師的數量隨時間的變化


LinkedIn 的簡曆顯示了一個人聲明的自己的職業發展曆史,包括了在各個時間段內的職務。這些數據讓我可以構建出某個職務的不斷演變。

下圖就展示了”數據工程師“這個職務的飛速發展:

【圖表】累計數據工程師的數量(單位:千)


0?wx_fmt=jpeg
▲ 數據工程師的數量從 2013 年到 2015 年增長超過了一倍。而且基於上文中相關崗位需求的數據,該增長趨勢並不會減慢。


相比之下,數據科學家的數量大約是數據工程師的兩倍(大約 11,400 人),但是數據工程師的增長速度卻要更高:在同一時期,數據科學家數量“僅”增長了 50%。


數據工程師從哪裏來?


數據工程師的瘋狂增長讓人產生了一個疑問:這些人從哪裏來?他們之前是什麼職業?

我們通過觀察數據,調查了數據工程師這一職業的 DNA —— 他們之前的職業。

在我們的調查前有以下幾個猜測: 


  • 數據工程師是軟件工程師和數據科學家之間的橋梁:他們編寫了生產代碼來方便數據科學家們進行大規模的運算實驗。因此,我們猜測有很大一部分數據工程師的前身是軟件工程師或數據科學家;

  • 因為數據工程師很大部分的工作都圍繞著運算的規模,他們同時也是軟件工程師和運維開發 ( Devops ) 的橋梁。因此我們猜測一部分人由運維開發轉來;

  • 數據庫管理員曾在一個企業中扮演類似的角色。因而,不難假設一部分數據庫管理員投身到這一更加先進的職業中。

結果顯示,我們的猜測部分是正確的,有一點是非常明確的:數據工程師的 DNA 和軟件工程師最接近 。


【圖表 :TOP 10 數據工程師的來源】

0?wx_fmt=jpeg
▲ 數據工程師前職調查,最多依次為軟件工程師、分析師、谘詢師、商業分析師、數據架構師、數據分析師、數據庫管理員、數據科學家、實習生、研究助理等 



數據工程師都在哪?


50% 的數據工程師在美國。這並不奇怪,因為數據科學家這個稱謂的本身和很多基礎技術都是來自於美國的科技公司和大學。


【圖表:數據科學家全球化】

0?wx_fmt=jpeg
▲ 大部分的數據科技或是來自於一小部分大學——特別是伯克利大學 AMP 實驗室,或者是來自於全球最大的網絡公司軟件工程團隊。


穀歌、臉書、領英和亞馬遜在領先該產業其他對手很久,就已經開始挑戰大數據,並投入了大量資源。他們不僅創造了很多的數據科技,他們成為了數據人才的培育基地。

然而,這張圖有些誤導。

美國至今有著最多的數據工程師,也同樣在全球有著最多的數據工程師檔案:接近4倍多於排名第二的印度。

為了標準化數據,我們圖中排名前十的國家展開詳細,看他們各自數據工程師人數與在領英(LinkedIn)檔案數的對比,以及與總人口的對比。


【圖表:TOP 10 數據工程師最多的國家】


0?wx_fmt=jpeg
▲ 這張統計中沒有以色列,以色列是我們此前的參考標準,它曾經在每百萬人中的數據科學家占比排名中排名最高。上文提及,以色列長期被認為是數據科學的起源國度,在以色列“矽溪”有著強勁科技展現。但意外的是,這卻沒能轉化為高密度的數據工程師人才。


哪個行業聘用的數據工程師最多?


在擴大存儲、傳輸和處理數據方麵遇到挑戰的公司對數據工程人才需求最甚。這些挑戰多在科技公司出現,但是像電信、生物科技和保險這些行業呢?難道這些行業不需要數據擴張方麵的幫助嗎?

當我們考察數據工程師的工作領域時,我們發現一係列的行業都需要數據人才。


【圖表:TOP 20 數據工程師的行業分布】


0?wx_fmt=jpeg

▲ 與預期一致,電信和金融服務接近頂端,但是在生物科技中 DNA 的拍字節(Petabytes)的排序卻沒有朝排名靠前的位置發展。


從該表格中,我們不應該認為這些行業之外的領域就不需要或者不聘用擔任數據工程師功能的人才。相反,盡管“數據工程師”在某一個領域內已經流行開來,互聯網科技公司—— 這個特定職位的用法仍處於初始階段。這個領域內的技術、流程和思維方式正在開始延伸到其它的行業。


哪些公司聘用的數據工程師最多?


當我們看到聘用了數據工程師的具體公司時,他們在科技領域的受歡迎程度就更加明顯了。在前十的公司裏,隻有兩家公司不是專門從事技術或數據的:一家電信公司(Verizon)和一家金融機構(Capital One)。


【圖表:TOP 50 聘用數據工程師的公司】

0?wx_fmt=jpeg

▲ 經常在數據大會上分享經驗的 Amazon、Facebook,Netflix,CapitalOne 等公司,都是業界數據應用的非常成功的公司,和其雇傭的數據工程師的人數呈正相關。


很有趣的是,一些公司聘用了不成比例的數據工程師。比如 Spotify(1600+ 雇員)比起必能寶(Pitney Bowes)(16,000 雇員)要小得多,但他們聘用的數據工程師數量相當。

這些數據清晰顯示,現在的一些科技 “獨角獸” 高度重視數據工程師一職。同時,考慮到三藩市目前有 6600 家公司在找數據工程師,這個趨勢短期內似乎不會改變。


數據工程師的基礎技能


數據工程師幹的活大體分為兩個部分:

  • 在整個業務流程,讓消費者能接觸到數據

  • 打造 “產品化” 的算法,將其變為數據產品

總體而言,直接與數據相關的技能獲得了越來越多的重視,另一方麵,某些核心的軟件技能也為數據工程師所青睞。


【圖表:TOP 20 數據工程師的基本技能】


0?wx_fmt=jpeg

▲ 從圖上可以看出用 SQL 來回答分析型的問題、寫腳本來做數據集成、清洗這樣的 ETL 任務和使用Hadoop生態的工具是數據工程師的主要工作。

No.1 SQL(Structured Query Language:結構化查詢語言):

即便在數據技術領域,很多 NoSQL 倡導者 “欲除之而後快”,但 SQL 仍是數據工程師最普遍具備的技能。


No. 2 Java:

Java 是最受數據工程師歡迎的編程語言。自從分布式係統基礎架構 Hadoop 在 2000 年左右被開發出來後,JVM(Java Virtual Machine:Java 虛擬機)便處於數據處理的中心。


No.3 Python:

不僅被應用於數據工程,還能為分析任務服務——相較而言,總是和 Python 一同出現在新聞裏的 R 語言,更專精於分析與統計,這應該也是 R 沒有上榜的主要原因——在數據科學圈,數據工程和分析二者並重。

專家洞見 

Mike Xu, Looker 的數據架構師:“弄明白你想要哪款數據工程師?”

Mike 的職責之一是傾聽開發者的心聲:哪些事情讓他們開心?哪些讓他們不爽?最多的抱怨是什麼呢?嗯,不同的數據工程角色間是有細微差別的,但很多公司卻不懂行。

在 Mike 看來,數據工程師主要有 4 種角色——這也是招聘者應該弄明白的事情:

數據倉庫:專注於為分析來優化數據倉庫,主要是負責數據的讀寫和管理。

工具:總能在一係列數據工具箱裏,極其擅長一、兩樣特定的工具(編者按:類似於 Hive, Hbase,ElasticSearch 等)。

架構:才華通透、“端到端” 的思考者,無論是數據收集,還是收集後幫助團隊使用數據,他們需要考慮的事情多而雜,貫穿業務的很多環節。

運維(Ops):主要把時間花在建立數據庫等事項,還要管理權限、操心數據安全。


數據工程師的技能如何隨著

公司的規模的變化而變化?


作為數據工程師,同樣需要認真應對公司和業務的規模化所帶來的挑戰——業務更多,數據集 (Dataset)的規模也更大,所需求的數據能力和工作方式也要隨之演化。


姑且做個猜測:規模越大的公司,對規模化相關的技能越加看重。是否真的如此?我們先查看查看下麵的圖表。


【圖表:不同公司的數據工程師之間的差別】


0?wx_fmt=jpeg

▲ 縱軸表示技能,橫軸則表示相對偏差(Relative Difference:某一次測量的絕對偏差占平均值的百分比)。深藍色、天藍色、橘色分別代表三種公司規模:1-200人、200-1000人、1000人以上。越接近圖表頂部,該技能越應用於較小的公司,反之,位於底部的技能更普遍地出現在 1000 人及以上的公司裏。


看完表,我們可以用數據回答先前的猜測:NO。


真實情況是,在規模更大的公司,數據工程師更在意 “企業級” 相關的技能,比如 ETL(Extract-Transform-Load)、BI(Business Intelligence:商業智能)、數據倉庫等,而在較小的公司,數據工程師更多的把心力花在 Python、Java 等編程語言上(編者按:Python 和 Java 作為普通的編程語言,可以用來構建產品,這對於小公司來說屬於核心業務。)

專家洞見 

Will Smith,MIT 的主數據工程師 / 架構師:“數據工程 @大公司 VS. 初創公司”

Will 曾為 Nokia、Warner Bros Games 這種大公司打造過數據技術。在他看來,數據工程師所仰賴的技術,不那麼取決於公司規模本身,而更應該從這麼一種角度出發:你所負責的數據是“寫時模式”(schema-on-write)還是“讀時模式”(schema-on-read)?

他認為,大公司往往在處理數據工程的 BI 方麵有所積累,Informatica、Oracle、SAP 都會接觸和使用。這類公司往往在“寫時模式”的環境裏工作。

但現如今,很多打造數據科技的公司實際作業的環境是“讀時模式”。“想象一下,公司交給你幾個 TB 的日誌數據,用的 JSON,是關於廣告效果的。數據工程師不知道能從這堆數據中挖掘出什麼,所以你需要開發者寫代碼去做數據發掘,而不是一上來就直接套用 SQL。這和大公司在 ‘寫時模式’ 的環境中做事很不一樣。”

2011年時,Will 正效力於諾基亞 (Nokia)。盡管當時主要經手 “企業級的數據”,但團隊卻選擇“讀時模式”的思路去開展相關工作。

“現在很多數據工程師都這麼做,比較適合規模化的需求。這樣設計和開發出來的東西,可以消化掉來自於各種來源的數據。傳統老舊的 BI 係統就沒這能耐——主要是因為以’寫時模式’為基礎吧,這種老技術不知道在一堆數據裏都有什麼,這麼一來我們這些工程師也沒啥頭緒了。” 


數據工程師與數據科學家的

技能差異是怎樣的?


這個數據集體現了數據工程師與數據科學家之間的明顯的技能差異,由此可以將數據工程師與數據科學家的技能構成看作一個頻譜的兩個對立麵。


以下這張圖表顯示了一張數據技能頻譜圖,頻譜圖頂端的技能在數據工程師的簡曆中更為常見,而頻譜底端的技能更常出現在數據科學家的簡曆中。


【圖表:數據工程師與數據科學家的區別】

0?wx_fmt=jpeg

▲ 從圖表的技能構成可以看出,數據工程師更傾向於掌握 “戰術層麵” 的具體數據技能,專注於使數據可用並能夠在生產環境中對數據進行處理,如具體的編程語言、操作係統與數據庫等;而數據科學家更傾向於“戰略層麵”的數據技能,如數據分析、數據挖掘、統計分析、機器學習等。


數據工程師與軟件工程師的

技能差異是怎樣的?


數據工程師與數據科學家之間的差異是十分明顯的,那麼數據工程師與軟件工程師之間的技能差異又是怎樣的呢?畢竟,正如我們之前所展示的那樣,大部分的數據工程師都具有軟件工程師的背景。


【圖表:數據工程師與軟件工程師之間的區別】

0?wx_fmt=jpeg

▲ 以數據工程師為中心的最多人選擇的技能是 Hadoop,數據倉庫和 BI——正如你所期望的那樣。與之相反,在軟件工程師端列出的所有技能幾乎都與 web 前端開發相關。最大的兩個例外是 C 語言和 C++ 語言,這是在現代大數據技術棧開發中不常用到的編程語言。


雖然許多數據工程師具有軟件工程師背景,但他們並不是簡單的為了博取加薪而轉換一個新的工作頭銜;他們不得不通過學習新的技能來適應新的角色。

原文發布時間為:2017-01-05


本文來自雲棲社區合作夥伴“大數據文摘”,了解相關信息可以關注“BigDataDigest”微信公眾號

最後更新:2017-05-26 10:01:38

  上一篇:go  2017年信息安全部門的工作會是什麼樣?
  下一篇:go  最新版AlphaGo(Master)的60勝預示著人類將是一種過時的算法?