數據湖對比分析,大數據平臺( 三 )


大數據開發跟大數據平臺開發有區別嗎?

數據湖對比分析,大數據平臺


我用一個比喻說說個人理解吧:大數據平臺在一些地方被稱為數據倉庫 , 如果把數據倉庫比作糧倉的話 , 大數據平臺開發工程師提供工具 , 比如研發更快的收割機、設計更大的倉庫等等;大數據開發工程師使用這些工具處理數據 , 比如將農田里的收割、晾曬、去皮、研磨成可以食用的大米面粉 。數據科學金字塔上圖的數據金字塔展示了數據科學領域各崗位的大致職能 。
最底層是數據收集部分 , 主要是原始數據的生成和收集 。這部分數據來自各種IoT設備、傳感器、手機APP上的用戶行為、外部數據、以及用戶生成數據(類似抖音用戶主動發布的視頻) 。第二層是數據存儲部分 , 一般需要構建數據倉庫 , 生成一系列數據流 , 將原始數據存儲至大數據平臺 。第三層是數據清洗和轉化部分 , 主要對數據進行清洗和預處理 , 將數據轉化為更高層次的數據 , 為上層數據分析做準備 。
第四層是數據聚合部分 , 主要做一些基礎的數據分析和業務報表 , 進行一些數據挖掘 , 并構建機器學習的訓練數據 。第五層是機器學習部分 , 主要構建機器學習模型 , 將模型發布到生產系統 , 進行AB實驗 。最頂層是人工智能部分 , 頂級的科學家提出新算法或新架構 。大數據開發和大數據平臺開發的工作都主要集中在1、2、3三層 。原始的數據就像農田里的麥子 , 需要經過層層工序 , 才能最終將其轉化餐桌上的面包 。
大數據開發和大數據平臺開發打通了糧食收割、清理、制粉的整個流程 , 將原始的糧食轉化成了面粉 。大數據平臺開發大數據平臺工程師開發主要關注提供大數據基礎設施和工具 。目前的大數據公司都建有自己的數據倉庫 , 數據倉庫中的一個子任務就是構建OLAP(Online Analytical Processing , 聯機分析處理)工具:主要是在Hadoop生態上 , 構建大數據分析平臺 。
大數據平臺開發所做的工作包括提供HDFS、HBase、對象存儲等數據存儲服務;Hive和Spark批處理、Druid和Kylin預處理等數據分析工具;Spark Streaming、Flink等流式計算工具 ??傊?nbsp;, 大數據平臺開發工程師關注基礎設施和工具 。大數據開發大數據工程師的一個重要任務是ETL(Extract、Trasform、Load):使用大數據平臺開發工程師提供的基礎設施和工具 , 在收集到的數據上做提取和轉化 , 生成更高層次的數據 。
這部分工程師關注業務相關的數據流 。因為原始數據一般都是互相獨立的 , 數據與數據之間關聯性差 , 使用這些原始數據 , 幾乎很難快速生成用戶畫像、廣告收入等高層次數據分析結果 , 更不用提如何進行機器學習建模了 。以今日頭條內容推薦引擎為例 , 整個推薦引擎要接入不同類型的異構大數據源:每個用戶在APP上的使用行為、公司購買的第三方數據(包括用戶金融能力數據等)、自媒體產生的海量圖文視頻內容等等 。
數據工程師的工作包括:將用戶在APP內的點擊行為與點擊的內容做關聯 , 生成用戶興趣畫像;將用戶的APP內部數據與第三方數據關聯 , 生成用戶的消費能力畫像等 。大數據開發工程師主要對收集過來的底層數據做處理 , 建立一系列數據管道 , 將來自不同數據源的原始數據經過層層轉化 , 生成對數據分析和算法建模更有價值的中間數據 , 一般稱這個流程為數據流 。

推薦閱讀