學大數據開發我是當數據科學家好還是當數據工程師?

在學習大數據技術前加米穀大數據教育請添加鏈接描述先給你科普一下大數據科學家與大數據工程師的不同之處

數據科學家的技能

數學與統計學(有時物理也可以)是數據科學家的核心。 在基於這種數學背景,他們正創建高級分析能力。 他們通過將數學應用到極致來創建機器學習模型和人工智能模型。

如同軟件工程一樣,數據科學家將不得不與業務端進行交流。 這包括充分了解領域,以獲得洞察力。 數據科學家通常負責分析數據以幫助業務,這需要一定的商業敏銳度。 最後,他們的結果需要以可理解的方式提供給業務方。這要求數據科學家有能力用口述和視覺結果的形式,與業務方交流那些複雜的結果和觀察情況,以似的業務方能夠理解並且基於此展開決策。

關於數據科學家,我一言以概之的定義是:數據科學家是通過編程來強化他們的數學和統計背景能力來進行分析數據、創造數學模型的人。

數據科學家的一個常見特徵是,他們不得不選擇了編程,以實現他們除了編程以外無法做到的事情。 當我與數據科學家交談時,他們經常向我傾訴的一件事情。 爲了完成更復雜的分析,或者由於其他方面難以克服的問題,他們學會了如何編程。 他們的編程和系統搭建技能達不到你從程序員或數據工程師那裏會看到的水平 – 他們也沒必要達到。

數據工程師的技能

編程能力是數據工程師的核心。這種能力背景通常是Java,Scala或Python的編程經驗。 他們的工作重點或專業能力主要在分佈式系統和大數據方面。 數據工程師具有高級編程和系統構建技能。

對於數據工程師,我對其一言以蔽之的定義是:數據工程師是在圍繞大數據建立創建軟件解決方案上具備專業技能的人。

利用這些工程技能,他們可以創建數據管線。 創建數據管線可能聽起來很簡單或微不足道,但在大數據這種規模上,這意味着將10-30種不同的大數據技術整合在一起。 更重要的是,數據工程師是理解並選擇“適合處理某種工作的工具”的人。 數據工程師深入瞭解各種技術和框架,以及如何將它們組合在一起以創建解決方案,從而使公司的業務流程具備數據管線。

在我的經驗中,數據工程師只是最低限度地參與集羣的運維(與此處討論有關數據工程師的說法相反)。 雖然某些數據科學技術確實需要設置一個運維或者數據運維崗位,不過絕大多數技術都沒有。 就像大多數程序員一樣,我不允許他們直接訪問生產系統。 這主要是系統管理員或運維人員的工作。

重疊技能

數據科學家和數據工程師技能之間存在重疊。 然而,重疊永遠發生在每個人能力的不規則邊緣。

比方說,這兩個崗位在“分析”上重疊了。 但是,數據科學家的分析技能將遠遠超過數據工程師的分析技能。 數據工程師可以執行一些基本到中級的分析,但很難進行數據科學家所做的高級分析。

數據科學家和數據工程師在編程能力上有所重疊。 不過,數據工程師的編程技能遠遠超出了數據科學家的編程技能。 讓數據科學家創建數據管線早已遠離了他們技能優勢邊界,但卻是數據工程師的優勢所在。 在這種情況下,這兩個角色是互補的,數據工程師對數據科學家的工作起支持作用。

您會注意到,數據科學家和數據工程師之間還存在一個大數據方面的重疊。 通過更好地瞭解每個崗位的技能,您現在可以更好的理解這種技能重疊。 數據工程師使用他們的編程和系統構建技能來創建大數據管線。 數據科學家利用他們更加有限的編程技能,運用他們的高級數學技能, 利用已經存在的數據管線創建高級數據產品。 “創建和使用”之間的這種差異,是在處理大數據時,團隊失敗或者表現不佳的核心之處。一個團隊,如果期望他們的數據科學家創建數據管線,最後將會極其失望。

當機構把事情搞錯了

不幸的是,一個機構誤解每個崗位的核心技能和職位角色相當常見。一些機構認爲數據科學家可以創建數據管線。 數據科學家可以將就地創建數據管線。 數據科學家創建數據管道的問題有幾個方面。 請記住,數據科學家只是不得不學習編程和大數據。 他們是聰明的人,最終確實可以解決問題,但創建數據管線並不是他們的核心競爭力。

從管理角度來看,數據科學團隊將陷入困境。 您將環顧四周或聽取其他團隊的意見,並將他們的進度與本團隊的進度進行比較。 看起來,好像數據科學團隊根本沒有產出,或者表現不佳。 這是一種基於對數據科學家核心競爭力的誤解,所產生的不公平的評估。

數據科學家從事數據工程

我見過公司要求數據科學家們做數據工程師所做的事情。 數據科學家的效率爲20-30%。 數據科學家並不知道數據工程師所知道的事情。 創建數據管道並非易事 – 它需要高級編程技能,大數據框架理解和系統創建。 這些不是普通數據科學家所擁有的技能。 數據科學家可以獲得這些技能; 然而,這段時間的投資回報率(ROI)非常低。 不要誤解我:數據科學家確實需要編程和大數據技能,而不是數據工程師需要的水平。

在數據管線創建中,相對來說業餘的數據科學家也會碰到這種問題:數據科學家會在選擇工具上犯錯誤、進行錯誤的選擇,而數據工程師則不會。 數據科學家通常不清楚或者不理解處理一個任務所需要的合適工具。對於所有任務都使用單一工具(往往是一個錯誤的工具),最終把一切都搞砸。現實情況是,爲了處理不同的工作,需要許多不同的工具。 合格的數據工程師會知道這些,數據科學家通常不會知道這些。

最近的一個例子是,數據科學家使用Apache Spark處理幾十GB數據集。 的確,Spark可以處理這麼多數據。 但是,一個小型數據程序會更快,也會執行的更好。他們的Spark任務需要10-15分鐘才能執行,然而小數據的關係型數據庫只需要0.01秒來完成同樣的事情。 在這種情況下,數據科學家不甚完美地解決了這個問題,但卻不明白這項工作的正確工具是什麼。 在一天內完成這種消耗15分鐘時間的工作16次,(這是低端的數據分析),你的數據科學家每天就要花四個小時等待,因爲他們正在使用錯誤的工具來完成這個任務。

在另一個機構中,他們的數據科學家沒有任何數據工程資源。 數據科學家會處理這些問題,直到他們遇到無法解決的數據工程問題並且卡住。 他們向業務部門報告說,他們無法完成任務,就在那裏讓工作只完成了一半就停了下來。這導致數據科學家們截止到那個時刻都在浪費時間,並且據他們估計,就只因爲無法完成工作,數百萬美元的價值在那裏懸而未決。

如果讓一位數據科學家做數據工程師工作,一個更令人擔憂的表現是數據科學家會感到沮喪並辭職。 我在許多機構中,和處理數據工程師工作的許多數據科學家交談過。 對話總是一樣的 :數據科學家抱怨他們來公司是爲了從事數據科學工作,而不是數據工程工作的。 他們把事情做完就需要完成數據工程工作,但讓數據科學家做數據工程師的工作會讓他們發瘋。 他們會選擇辭職,而您將會需要用3-6個月的時間來完成數據工程。 我在另一篇文章中更多地討論了這些問題。

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

決定數據工程師和數據科學家的比率是一個常見問題。在確定這個比率時,常見需要考慮的問題包括數據管線有多複雜,數據管線有多成熟,以及數據工程團隊需要擁有多少經驗。

擁有比數據工程師更多的數據科學家通常是個問題。 它通常意味着,機構正在讓他們的數據科學家進行數據工程工作。 正如我之前所說的,這會進而導致各種各樣的問題。

爲每個數據科學家搭配2-3位數據工程師是一個常見配置。 對於一些具有更復雜數據工程要求的機構,這個數字可以是每個數據科學家配備4-5名數據工程師。 這包括那些數據工程和數據科學處於不同彙報組織結構中的機構。 您需要更多的數據工程師,因爲創建數據管線需要比創建ML / AI部分花費更多的時間和精力。

我在《數據工程團隊》一書中,更多地討論了數據工程和數據科學團隊應該如何相互交流。

數據工程師從事數據科學研究

一個遠非常見的情況是數據工程師開始進行數據科學工作。 隨着數據工程師開始提高他們的數學和統計技能,這是一個向上的推動力。 隨着數據科學變得更加標準化,這種向上的推動力變得越來越普遍。 它導致了一種全新的工程師類型出現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章