數據湖&數據倉庫,別再傻傻分不清了

摘要:什麼是數據湖?它有什麼做用?今天將由華爲雲技術專家從理論出發,將問題抽絲剝繭,從技術維度娓娓道來。

什麼是數據湖

若是須要給數據湖下一個定義,能夠定義爲這樣:數據湖是一個存儲企業的各類各樣原始數據的大型倉庫,其中的數據可供存取、處理、分析及傳輸。html

數據湖從企業的多個數據源獲取原始數據,而且針對不一樣的目的,同一份原始數據還可能有多種知足特定內部模型格式的數據副本。所以,數據湖中被處理的數據多是任意類型的信息,從結構化數據到徹底非結構化數據。算法

企業對數據湖寄予厚望,但願它能幫助用戶快速獲取有用信息,並能將這些信息用於數據分析和機器學習算法,以得到與企業運行相關的洞察力。安全

數據湖與企業的關係

數據湖能給企業帶來多種能力,例如,能實現數據的集中式管理,在此之上,企業能挖掘出不少以前所不具有的能力。架構

另外,數據湖結合先進的數據科學與機器學習技術,能幫助企業構建更多優化後的運營模型,也能爲企業提供其餘能力,如預測分析、推薦模型等,這些模型能刺激企業能力的後續增加。機器學習

企業數據中隱藏着多種能力,然而,在重要數據可以被具有商業數據洞察力的人使用以前,人們沒法利用它們來改善企業的商業表現。學習

數據湖如何幫助企業

長期以來,企業一直試圖找到一個統一的模型來表示企業中全部實體。這個任務有極大的挑戰性,緣由有不少,下面列舉了其中的一部分:優化

1. 一個實體在企業中可能有多種表示形式,所以可能不存在某個完備的模型來統一表示實體。人工智能

2. 不一樣的企業應用程序可能會基於特定的商業目標來處理實體,這意味着處理實體時會採用或排斥某些企業流程。spa

3. 不一樣應用程序可能會對每一個實體採用不一樣的訪問模式及存儲結構。htm

這些問題已困擾企業多年,並阻礙了業務處理、服務定義及術語命名等事務的標準化。

從數據湖的角度來看,咱們正在以另一種方式來看待這個問題。使用數據湖,隱式實現了一個較好的統一數據模型,而不用擔憂對業務程序產生實質性影響。這些業務程序則是解決具體業務問題的「專家」。數據湖基於從實體全部者相關的全部系統中捕獲的全量數據來儘量「豐滿」地表示實體。

由於在實體表示方面更優且更完備,數據湖確實給企業數據處理與管理帶來了巨大的幫助,使得企業具有更多關於企業增加方面的洞察力,幫助企業達成其商業目標。

數據湖的優勢

企業會在其多個業務系統中產生海量數據,隨着企業體量增大,企業也須要更智能地處理這些橫跨多個系統的數據。

一種最基本的策略是採用一個單獨的領域模型,它能精準地描述數據並能表明對整體業務最有價值的那部分數據。這些數據指的是前面提到的企業數據。

對企業數據進行了良好定義的企業固然也有一些管理數據的方法,所以企業數據定義的更改能保持一致性,企業內部也很清楚系統是如何共享這些信息的。

在這種案例中,系統被分爲數據擁有者(data owner)及數據消費者(data consumer)。對於企業數據來講,須要有對應的擁有者,擁有者定義了數據如何被其餘消費系統獲取,消費系統扮演着消費者的角色。

一旦企業有了對數據和系統的明晰定義,就能夠經過該機制利用大量的企業信息。該機制的一種常見實現策略是經過構建企業級數據湖來提供統一的企業數據模型,在該機制中,數據湖負責捕獲數據、處理數據、分析數據,以及爲消費者系統提供數據服務。

數據湖能從如下方面幫助到企業:

1. 實現數據治理(data governance)與數據世系。

2. 經過應用機器學習與人工智能技術實現商業智能。

3. 預測分析,如領域特定的推薦引擎。

4. 信息追蹤與一致性保障。

5. 根據對歷史的分析生成新的數據維度。

6. 有一個集中式的能存儲全部企業數據的數據中心,有利於實現一個針對數據傳輸優化的數據服務。

7. 幫助組織或企業作出更多靈活的關於企業增加的決策。

在本節中,咱們討論數據湖應該具有哪些能力。後續將會討論和評述數據湖是如何工做的,以及應該如何去理解其工做機制。

數據湖是如何工做的

爲了準確理解數據湖能給企業帶來哪些好處,理解數據湖的工做機制以及構建功能齊全的數據湖須要哪些組件就顯得尤其重要了。在一頭扎進數據湖架構細節以前,不妨先來了解數據湖背景中的數據生命週期

在一個較高的層面來看,數據湖中數據生命週期如圖所示。

上述生命週期也可稱爲數據在數據湖中的多個不一樣階段。每一個階段所需的數據和分析方法也有所不一樣。數據處理與分析既可按批量(batch)方式處理,也能夠按近實時(near-real-time)方式處理。

數據湖的實現須要同時支持這兩種處理方式,由於不一樣的處理方式服務於不一樣的場景。處理方式(批處理或近實時處理)的選擇也依賴數據處理或分析任務的計算量,由於不少複雜計算不可能在近實時處理模式中完成,而在一些案例中,則不能接受較長的處理週期。

一樣,存儲系統的選擇還依賴於數據訪問的要求。例如,若是但願存儲數據時便於經過SQL查詢訪問數據,則選擇的存儲系統必須支持SQL接口。

若是數據訪問要求提供數據視圖,則涉及將數據存儲爲對應的形式,即數據能夠做爲視圖對外提供,並提供便捷的可管理性和可訪問性。

最近出現的一個日漸重要的趨勢是經過服務(service)來提供數據,它涉及在輕量級服務層上對外公開數據。每一個對外公開的服務必須準確地描述服務功能並對外提供數據。此模式還支持基於服務的數據集成,這樣其餘系統能夠消費數據服務提供的數據。

當數據從採集點流入數據湖時,它的元數據被捕獲,並根據其生命週期中的數據敏感度從數據可追溯性、數據世系和數據安全等方面進行管理。

數據世系被定義爲數據的生命週期,包括數據的起源以及數據是如何隨時間移動的。它描述了數據在各類處理過程當中發生了哪些變化,有助於提供數據分析流水線的可見性,並簡化了錯誤溯源。可追溯性是經過標識記錄來驗證數據項的歷史、位置或應用的能力。——維基百科

數據湖與數據倉庫的區別

不少時候,數據湖被認爲與數據倉庫是等同的。實際上數據湖與數據倉庫表明着企業想達成的不一樣目標。

下表中顯示了二者的關鍵區別。

 

從圖表來看,數據湖與數據倉庫的差異很明顯。然而,在企業中二者的做用是互補的,不該認爲數據湖的出現是爲了取代數據倉庫,畢竟二者的做用是大相徑庭的。

數據湖的構建方法

不一樣的組織有不一樣的偏好,所以它們構建數據湖的方式也不同。構建方法與業務、處理流程及現存系統等因素有關。

簡單的數據湖實現幾乎等價於定義一箇中心數據源,全部的系統均可以使用這個中心數據源來知足全部的數據需求。雖然這種方法可能很簡單,也很划算,但它可能不是一個很是實用的方法,緣由以下:

1. 只有當這些組織從新開始構建其信息系統時,這種方法纔可行。

2. 這種方法解決不了與現存系統相關的問題。

3. 即便組織決定用這種方法構建數據湖,也缺少明確的責任和關注點隔離(responsibility and separation of concerns)。

4. 這樣的系統一般嘗試一次性完成全部的工做,可是最終會隨着數據事務、分析和處理需求的增長而分崩離析。

更好的構建數據湖的策略是將企業及其信息系統做爲一個總體來看待,對數據擁有關係進行分類,定義統一的企業模型。

這種方法雖然可能存在流程相關的挑戰,而且可能須要花費更多的精力來對系統元素進行定義,可是它仍然可以提供所需的靈活性、控制和清晰的數據定義以及企業中不一樣系統實體之間的關注點隔離。

這樣的數據湖也能夠有獨立的機制來捕獲、處理、分析數據,併爲消費者應用程序提供數據服務。

點擊關注,第一時間瞭解華爲雲新鮮技術~

相關文章
相關標籤/搜索