大資料開發工程師需要具備哪些技能?

qing_yun發表於2022-07-21

關於大資料開發工程師需要具備的技能,需要充分了解一下當前大資料的幾個就業方向,可以參考下主流網際網路行業的部門架構、職責和JD,大資料開發工程師,總體來說有這麼幾類,不同的公司叫法不一樣:

① 數倉開發工程師

② 演算法挖掘工程師

③ 大資料平臺開發工程師(應用)

④ 大資料前端開發工程師

一、 不同工程師的職責和技能要求

在不同層,對於工程師的職責、技能要求都會存在差異;

1、數倉開發工程師

根據企業的要求搭建數倉體系(DW),是企業所有級別決策的制定過程,基於分析性報告和決策支援目的,為需要業務智慧的企業,提供指導業務流程趕緊、監視時間、成本、質量以及控制,為戰略策略做資料支援。主要負責核心業務模組資料倉儲的構建,對資料模型進行設計,ETL實施、ETL效能最佳化、ETL資料監控以及一系列技術問題的解決;構建使用者主題、各業務線主題、推薦主題、BI門戶系統,並對全產品線資料字典維護,提升資料資產質量;

需要熟悉的技能:

① 需要深入理解常用的資料建模理論,獨立把控資料倉儲的各層級設計;

② 熟練掌握Hive/SQL、Spark/Map-Reduce/MPI分散式計算框架;

③ 熟悉大資料的離線和實時處理,可以進行海量資料模型的設計、開發;

2、演算法挖掘工程師

在大廠重創新、研究,在小廠重賦能、產品,有本質上的區別,也分很多種型別,包括搜尋演算法、導航演算法、NLP、視覺演算法、影像識別、自動駕駛、安全演算法、通訊演算法等,需要掌握的技能差異性也很大,整體來看,有以下共性。

需要熟悉的技能:

① 資料分析:透過程式語言進行科學分析,python、sql、spark,分散式計算框架Hadoop/Spark/Storm/ map-reduce/MPI;

② 文獻閱讀:能夠關注市面上的主流比賽演算法應用,能夠對學術、工業論壇、論文有非常多的積累;

③ 創新思維:場景遷移/舉一反三能力,例如看到廣告推薦中的根因定位,應該能馬上切換到安全中的異常溯源;

④ 演算法原理:機器學習、深度學習、強化學習、演算法導論等;

⑤ 數學功底:紮實的數學功底,能夠完成公式推導,並進行調優;

3、大資料平臺開發工程師

大資料平臺開發有兩個方面,平臺自研、應用開發,需要熟悉Web後端開發語言、大資料開源元件,至少精通掌握一種開發語言golang、php、java;對開發框架的原理&原始碼都有一定的瞭解(如laravel);

需要熟悉的技能:

① 平臺自研,屬於研發級開發,基於Hadoop元件開發HBase、Hive、Avro、Zookeeper等,完成後設資料系統、資料質量、資料採集、資料計算平臺、任務排程平臺等系統性建設;

② 應用開發,在大資料平臺Hadoop及Spark進行具體的應用開發,搭建資料包表平臺、自助資料分析平臺、資料地圖、標籤庫等;

4、大資料前端開發工程師

給使用者看到的都叫做前端,比如APP介面、Web 介面,與互動設計師、 視覺設計師協作,根據設計圖,依據相關程式語言進行介面內容實現,把介面更好地呈現給使用者;前端從業人員主要分佈於我國中東、南部地區,其中北京的前端開發工程師最多,其次是深圳、上海、成都、杭州、廣州、武漢、南京、長沙和西安;

需要熟悉的技能:

① 熟悉W3C技術標準,精通HTML、Javascript、Ajax、DOM、HTML5、CSS3等前端開發技術;

② 熟練掌握Vue、jequry、webpack等前端框架和相關技術並瞭解其實現原理,熟悉nginx、nodejs等webserver技術;

③ 熟悉前端效能分析和調優,並保證相容性和執行效率,可編寫複用的使用者介面元件;

④ 掌握前端開發的安全風險和對策,良好的分析和解決問題的能力;

以上就是對不同型別的大資料開發工程師的介紹。

二、大資料技術架構圖

可以參考一下大資料的技術架構。在企業裡面,如果按照資料流向來看,有一個主鏈路:

① 系統對接:大資料平臺開發工程師負責,對接各個業務系統,提供資料接入的能力;

② 採集儲存:數倉開發工程師,透過工具定期進行資料接入,並進行維度建模,抽象出DW層,建立指標;

③ 資料探勘:演算法挖掘工程師,結合數倉的底層模型表,dws表構建資料特徵,挖掘資料的業務價值;

④ 資料呈現:大資料前端開發工程師,根據資料介面資訊,在前端進行資料的視覺化圖表呈現,系統整合;

三、大資料相關的技術內容

由於資料中臺的出現,組織架構和分工可能會有一定到差異,根據所需要做的內容和事情,所需要掌握的技能樹是類似的,按照日常使用情況,可以歸納為以下幾種:

· 關於python、sql、spark、hadoop和訊息

綜合對大資料開發過程的技術要求,比較主流的幾個工具和技術:

python:主要解決資料處理、分析、挖掘的內容;

SQL:主要是在數倉儲存、模型儲存、指標介面開發過程中需要非常熟練;Spark:在演算法挖掘、大批次資料計算、機器學習應用方面的應用;

Hadoop神態:對資料儲存、大資料平臺開發都有非常強的要求,依賴HDFS、HIVE等特性;訊息:資料介面開發,對於資料應用,和上層應用系統之間的互通有比較高的要求;

· 關於實時計算相關的技術棧

flink:在實時計算,處理批、流資料,實現秒級計算並賦能給業務系統的核心技術;

四、小結

對於大資料,隨著技術的不斷迭代,數字化的發展,對資料職能的區分度會越來越細分,持續保持對前沿知識的關注,透過和周邊的大佬進行學習,結合場景進行深度應用,在數字化的道路上才能走的更長遠。

作者:@西索    知乎:鄭小柒是西索啊, 資深資料分析專家; 故事很多,餘生慢慢分享; “資料人創作者聯盟” 成員。

來自 “ 一個資料人的自留地 ”, 原文作者:@西索;原文連結:https://mp.weixin.qq.com/s/7M5TQ6L2fDjrLROKIdKJMw,如有侵權,請聯絡管理員刪除。

相關文章