BI、數據倉庫、ETL和數據開發(大數據開發)會有區別嗎?
- 2019 年 12 月 23 日
- 筆記
作者 | 匿名用戶
來源 | 知乎
這些角色劃分的界限本身就很模糊,一個人甚至可以同時扮演全部這些角色。
首先說說數據倉庫系統構建過程中一些主要的環節:
1. 數據收集
2. ETL
3. 報表系統的開發
4. 基礎技術環境的構建、維護
5. 演算法、數據挖掘
6. 類似於AB測試系統各個數據應用系統的開發
7. 數據安全、備份
基本上1,3 ,4 ,6,7項工作是屬於工程屬性比較強的工作,2,5項屬於工程和領域知識有交叉的工作。
1. 數據收集。一個完善的收集系統,不僅要搭建成數據收集的管道,還需要對數據收集過程本身做好監控,對數據收集過程中出現的問題及時知曉、及時處理。
2. ETL,將收集過來的數據進行清洗、轉換,在此過程中形成數據倉庫的層次化結構。這個環節需要一個根據具體的業務需要,通過ETL過程形成數據倉庫的層次化體系結構以及抽象概念系統,以便於後續的報表開發和數據分析、數據挖掘。
3. 報表系統開發。技術上需要一個開發工程師來做,需求上需要一個熟悉業務的人來定。報表系統的內容會隨時間、隨業務不斷演化,因此設計上也需要適應這種演化。
4. 基礎技術環境的構建、維護。負責底層數據存儲、計算框架的設計和維護,建立起存儲和計算的層次結構,比如最活躍的數據可以放在性能較高的設備上,而舊的數據可以放在幾台專門的歸檔伺服器上;計算上,大型的數據轉換任務可以交給MapReduce來做,而基於小數據量計算的報表指標就可以使用性能較高的記憶體計算來做,比如Presto。
5. 演算法、數據挖掘。在ETL結果之上進行數據分析、數據挖掘任務。工作過程中可能需要一些新的數據,這就需要和數據收集、ETL相關的人員進行溝通,以達成工作目標。
6. 類似於AB測試系統各個數據應用系統的開發。數據分析、數據挖掘的結果需要應用到產品的優化上,而數據的應用系統就是要打倒這個目的的。這些系統僅僅作為橋樑存在,主要就是要保證性能達標、以及邏輯正確。這個環節與數據收集階段結合,就生成一個數據系統閉環。
7. 數據安全、備份。非常重要的工作,數據的訪問許可權限制、數據的冗餘備份機制,都要逐步建立起來,災難恢復機制要經常進行測試,做好最後一道防線。
根據工作量和具體需求,工程性工作大概需要1到3三個有相關經驗的工程師即可,而需要領域知識和熟悉業務的工作,大概也需要1到2人。至於人要掛什麼title,看著來吧!
PS:隨著業界的不斷發展,和對數據認識深度不斷地提升的客觀需求,一些機器學習相關的知識也應該納入到日常的工作內容中了,其中特徵工程是一項基本的技能。
——END——