數據科學家這個職位現在已經有了比較完善的定義,但在此之前,就已經出現了另一個職位,數據工程師,接下來我們將探討這兩個職位間的區別與聯系,并分析企業在何種情況下需要其中一個,或兩個都需要。
盡管對于分析與數據科學家來說,還有許多待解決的問題,但這并不影響一個新興職位的出現:數據工程師,并且數據工程的數量正在逐年上升。
數據工程師職位目前已廣泛出現在各類招聘上,雖然有時容易和數據科學家的職位相混淆,但其似乎已經成為企業在大數據領域的核心職位之一。
IT求職網站Dice.com的總裁Bob Melk表示,從名字上來看,這兩個角色很容易混淆,但數據科學家和數據工程師實際上是有很大區別的
“數據科學家所具備的技能更專注于數學方法和數據分析,而數據工程的重點是數據挖掘,云計算和編程技能,”他說。
數據工程師致力于開源大數據的管理。一位數據庫行業資深觀察者說道,在他最近的一次硅谷之旅中,他發現,在這個作為大數據溫床的地方,數據工程師這個術語已經被廣泛使用。
他在最近的博客中指出,數據工程師這個職位的產生,有部分原因是由于人們對數據科學家的能力預期過高。
而現實是,數據科學家的工作描述所涉及的技能太過于寬泛。搭建數據處理集群、程序編碼,學習最新的開源數據API。這些都被歸結為數據科學家必須掌握的技能之一,但事實上,它們應該是數據工程師的職責范圍。
Dice's Melk認為Apache Hadoop,分布式計算和NoSQL數據庫,是數據工程師必須掌握的幾個重要技能。對于數據科學家而言,其掌握的技能應包括數據統計,統計建模,預測建模和機器學習等。
數據工程師的隊伍正在逐漸壯大。Dice.上半年發布了891個數據工程師職位招聘信息。也許僅靠這個數字并不足以說明什么,但令人印象深刻的是,這個數字比2015年4的數據增長了88%之多,足以證明市場對數據工程師的迫切需求。
從數據科學談起
咨詢公司Athena IT Solutions創始人Rick Sherman表示,一些早期的數據科學家們往往需要大包大攬,他們不得不建立親自去構建Hadoop集群,同時創建預測分析模型。現在,在一些企業中,數據工程師開始為數據科學家分擔這一部分任務。
Sherman和其他人的看法一樣,都認為數據工程師實際上能夠解放數據科學家,讓他們真正能做他們的本職工作,高級數據統計和試圖發現新商業機會的數據分析,這些才是他們該做的。
“數據科學部門的規模越大,數據工程師從數據科學家那里承擔過來的工作就會越多,”他說。這是非常重要的,他補充道,因為公司在數據科學領域投入了大筆資金。
數據工程師所需的技能
從一些招聘信息的工作描述可以看出,“數據工程師”主要覆蓋下面的這些技能:
一家處于行業領先地位的金融數據服務公司正在尋找一名高級數據工程師,要求其在云基礎設施,Scala,Apache Spark和Python等領域有著豐富的經驗。
在線旅游服務公司正在尋找一位數據工程師,要求其具有與領域專家協調工作的能力,特別是與機器學習團隊高效合作的能力。
一家國有銀行正在尋找數據工程師,要求他們可以編寫和運行各種開源框架。他們還要求數據工程師精通Akka,Cassandra, Accumulo,HBase, Hadoop/HDFS, Avro,MongoDB and Mesos,也許還包括一些尚未存在的數據處理框架。
但總的來說,數據工程師并沒有得到與數據科學家同等的薪資待遇。例如,據招聘網站Glassdoo統計,全國數據工程師的平均工資大概為95526美元,而全國數據科學家的平均薪水是113436美元。
當然,也有例外情況,有的數據工程師薪酬可能會突破100000美元。盡管Dice 宣稱并沒有足夠的樣本數據來評估數據工程師薪水,但Melk指出了掌握類似技能人員的年薪水平,比如Cassandra(147811美元),Pig(132850美元)和MapReduce編程(131563美元)。這表明數據工程師的薪資可以很容易超過100000美元這個水平。
交付數據
數據工程師的任務是交付數據,他們的角色任務是準備或定義數據結構。在某種程度上,數據工程師應承擔傳統的提取、轉換和加載以及數據集成工作,這些工作主要是新大數據處理框架中的數據加工過程。
大型國防合約商Raytheon Co公司構建了一個Hadoop 數據湖泊,這需要有人來負責,數據工程師比數據科學家更適合這個任務,Kathy Sonderer,該公司首席數據科學專家在今年San Diego舉辦的Enterprise Data World大會上說道。
“他們的工作是整合數據,并將其交付給數據科學家,”她說,“這是一個處于數據集成領域的角色。”
Sonderer表示,團隊經理沒有必要專門去外面尋找這樣的人才。她強調,合理利用現有團隊成員,以及他們掌握的技能,就可以形成一個新的數據科學團隊。
重疊和變形
數據工程師和數據科學家的工作現在包含一些混合和重疊的技能。這是在任何新領域或新趨勢上都存在的現象。
這個行業中,職位名稱變更的事屢見不鮮。其實真正的工作變化并不是太明顯,但有時企業招聘的職位描述會向熱門職位名稱靠攏。
我們來看看軟件工程師的所需技能,在許多情況下,與程序員的技能需求并沒有太多差別。軟件工程師的職位會出現在一些企業中,僅僅是因為它的表達方式顯得更莊嚴,更專業一點。
關于軟件架構師這個職位,當經理想給自身軟件工程師漲工資,又不知道以什么理由時,只需要給他安一個軟件架構師的職位就可以了。這個名稱比軟件工程師來說,更顯得這個人不可或缺。
數據工程師真正的作用和潛在壽命將在未來幾個月得到證明。但是現在,其職業發展似乎處于上升階段。毫無疑問的是,數據工程師的出現,表明數據管理領域一直都在發生變化。