數據湖淺析

一、什麼是數據湖?

ODS(operational data store, staging area)存儲來自各業務系統(生產系統)的原始數據,即爲數據湖。
CDM(common dimension model)爲經過整合、清洗的數據。其中的DWS彙總層,爲面向主題的數據倉庫(狹義),用於BI報表出數。
簡單來說,數據湖的定義就是原始數據保存區。雖然這個概念國內談的少,但絕大部分互聯網公司都已經有了。國內一般把整個HDFS叫做數倉(廣義),即存放所有數據的地方。

二、數據湖與數倉有什麼區別?爲什麼要做數據湖?

數據湖和數倉,就是原始數據和數倉模型的區別。因爲數倉(狹義)中的表,主要是事實表-維度表,主要用於BI、出報表,和原始數據是不一樣的。

爲什麼要做數據湖呢?

真正的原因在於,data science和machine learning進入主流了,需要用原始數據做分析,而數倉的維度模型則通常用於聚合;另一方面,機器學習用到的數據,也不止於結構化數據。用戶的評論、圖像這些非結構化數據,也都可以應用到機器學習中。

但數據湖背後其實還有更大的區別

- 傳統數倉的工作方式是集中式的:業務人員給需求到數據團隊,數據團隊根據要求加工、開發成維度表,供業務團隊通過BI報表工具查詢
- 數據湖是開放、自助式的(self-service):開放數據給所有人使用,數據團隊更多是提供工具、環境供各業務團隊使用(不過集中式的維度表建設還是需要的),業務團隊進行開發、分析。

也就是組織架構和分工的差別 —— 傳統企業的數據團隊可能被當做IT,整天要求提數,而在新型的互聯網/科技團隊,數據團隊負責提供簡單易用的工具,業務部門直接進行數據的使用;人人具備數據分析能力。
因此,數據湖最大的意義,在於幫團隊做組織架構調整,鼓勵所有人瞭解、分析數據,降低出數類等"IT"型工作。當然,對傳統企業而言,也是引入機器學習、用戶畫像的必須基礎設施。

三、挑戰

從傳統集中式的數倉轉爲開放式的數據湖,並不簡單,會碰到許多問題

- 數據發現:如何幫助用戶發現數據、瞭解有哪些數據?
- 數據安全:如果管理數據的權限和安全?因爲一些數據是敏感的、或者不應直接開放給所有人的(比如電話號碼、地址等)
- 數據管理:多個團隊使用數據,如何共享數據成果(比如畫像、特徵、指標),避免重複開發

這也是目前各大互聯網公司都在改進的方向。

比如,對於數據發現,目前的解決方案就是Data catalog, 典型的比如IBM Watson catalog (算是對傳統元數據管理的改進)。 對於機器學習方面的數據管理,可以看Airbnb的機器學習平臺Bighead中的實踐。

後記:

參考原文:https://book.douban.com/review/10072449/
數據湖對我最大的意義,是讓我明白了爲什麼我get不到數倉的點。因爲我偏機器學習、偏業務線,更傾向於拿原始數據分析,而不是用加工好的數據看指標。
 

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