歡迎光臨
每天分享高質量文章

什麼是資料湖?有什麼用?終於有人講明白了……

導讀:資料湖概念的誕生,源自企業面臨的一些挑戰,如資料應該以何種方式處理和儲存。最開始,企業對種類龐雜的應用程式的管理都經歷了一個比較自然的演化週期。

最開始的時候,每個應用程式會產生、儲存大量資料,而這些資料並不能被其他應用程式使用,這種狀況導致資料孤島的產生。隨後資料集市應運而生,應用程式產生的資料儲存在一個集中式的資料倉庫中,可根據需要匯出相關資料傳輸給企業內需要該資料的部門或個人。

然而資料集市只解決了部分問題。剩餘問題,包括資料管理、資料所有權與訪問控制等都亟須解決,因為企業尋求獲得更高的使用有效資料的能力。

為瞭解決前面提及的各種問題,企業有很強烈的訴求搭建自己的資料湖,資料湖不但能儲存傳統型別資料,也能儲存任意其他型別資料,並且能在它們之上做進一步的處理與分析,產生最終輸出供各類程式消費。

在本文中,將介紹資料湖的一些主要方面,幫助讀者理解為什麼它對企業非常重要。

 

 

作者:湯姆斯·約翰 潘卡·米斯拉

如需轉載請聯絡大資料(ID:hzdashuju)

 

 

 

01 什麼是資料湖

 

如果需要給資料湖下一個定義,可以定義為這樣:資料湖是一個儲存企業的各種各樣原始資料的大型倉庫,其中的資料可供存取、處理、分析及傳輸。

 

資料湖從企業的多個資料源獲取原始資料,並且針對不同的目的,同一份原始資料還可能有多種滿足特定內部模型格式的資料副本。因此,資料湖中被處理的資料可能是任意型別的資訊,從結構化資料到完全非結構化資料。

企業對資料湖寄予厚望,希望它能幫助使用者快速獲取有用資訊,並能將這些資訊用於資料分析和機器學習演演算法,以獲得與企業執行相關的洞察力。

 

  • 資料湖與企業的關係

 

資料湖能給企業帶來多種能力,例如,能實現資料的集中式管理,在此之上,企業能挖掘出很多之前所不具備的能力。

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

 

企業資料中隱藏著多種能力,然而,在重要資料能夠被具備商業資料洞察力的人使用之前,人們無法利用它們來改善企業的商業表現。

 

 

 

02 資料湖如何幫助企業

 

長期以來,企業一直試圖找到一個統一的模型來表示企業中所有物體。這個任務有極大的挑戰性,原因有很多,下麵列舉了其中的一部分:

 

  • 一個物體在企業中可能有多種表示形式,因此可能不存在某個完備的模型來統一表示物體。

  • 不同的企業應用程式可能會基於特定的商業標的來處理物體,這意味著處理物體時會採用或排斥某些企業流程。

  • 不同應用程式可能會對每個物體採用不同的訪問樣式及儲存結構。

 

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

 

從資料湖的角度來看,我們正在以另外一種方式來看待這個問題。使用資料湖,隱式實現了一個較好的統一資料模型,而不用擔心對業務程式產生實質性影響。這些業務程式則是解決具體業務問題的“專家”。資料湖基於從物體所有者相關的所有系統中捕獲的全量資料來盡可能“豐滿”地表示物體。

 

因為在物體表示方面更優且更完備,資料湖確實給企業資料處理與管理帶來了巨大的幫助,使得企業具備更多關於企業增長方面的洞察力,幫助企業達成其商業標的。

值得一提的是,Martin Fowler寫過一篇很有意思的文章,在這篇文章中,他對企業資料湖的一些關鍵方面做了簡明扼要的闡述,可參考下麵這個連結:

https://martinfowler.com/bliki/DataLake.html

 

 

  • 資料湖的優點

 

企業會在其多個業務系統中產生海量資料,隨著企業體量增大,企業也需要更智慧地處理這些橫跨多個系統的資料。

 

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

 

對企業資料進行了良好定義的企業當然也有一些管理資料的方法,因此企業資料定義的更改能保持一致性,企業內部也很清楚系統是如何共享這些資訊的。

 

在這種案例中,系統被分為資料擁有者(data owner)及資料消費者(data consumer)。對於企業資料來說,需要有對應的擁有者,擁有者定義了資料如何被其他消費系統獲取,消費系統扮演著消費者的角色。

 

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

資料湖能從以下方面幫助到企業:

 

  • 實現資料治理(data governance)與資料世系。

  • 透過應用機器學習與人工智慧技術實現商業智慧。

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

  • 資訊追蹤與一致性保障。

  • 根據對歷史的分析生成新的資料維度。

  • 有一個集中式的能儲存所有企業資料的資料中心,有利於實現一個針對資料傳輸最佳化的資料服務。

  • 幫助組織或企業做出更多靈活的關於企業增長的決策。

 

在本節中,我們討論資料湖應該具備哪些能力。後續將會討論和評述資料湖是如何工作的,以及應該如何去理解其工作機制。

 

 

 

03 資料湖是如何工作的

 

為了準確理解資料湖能給企業帶來哪些好處,理解資料湖的工作機制以及構建功能齊全的資料湖需要哪些元件就顯得尤為重要了。在一頭扎進資料湖架構細節之前,不妨先來瞭解資料湖背景中的資料生命週期

 

在一個較高的層面來看,資料湖中資料生命週期如圖2-1所示。

 

▲圖2-1 資料湖的生命週期

 

上述生命週期也可稱為資料在資料湖中的多個不同階段。每個階段所需的資料和分析方法也有所不同。資料處理與分析既可按批次(batch)方式處理,也可以按近實時(near-real-time)方式處理。

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

 

同樣,儲存系統的選擇還依賴於資料訪問的要求。例如,如果希望儲存資料時便於透過SQL查詢訪問資料,則選擇的儲存系統必須支援SQL介面。

如果資料訪問要求提供資料檢視,則涉及將資料儲存為對應的形式,即資料可以作為檢視對外提供,並提供便捷的可管理性和可訪問性。

最近出現的一個日漸重要的趨勢是透過服務(service)來提供資料,它涉及在輕量級服務層上對外公開資料。每個對外公開的服務必須準確地描述服務功能並對外提供資料。此樣式還支援基於服務的資料整合,這樣其他系統可以消費資料服務提供的資料。

 

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

資料世系被定義為資料的生命週期,包括資料的起源以及資料是如何隨時間移動的。它描述了資料在各種處理過程中發生了哪些變化,有助於提供資料分析流水線的可見性,並簡化了錯誤溯源。

 

可追溯性是透過標識記錄來驗證資料項的歷史、位置或應用的能力。

 

——維基百科

 

 

 

04 資料湖與資料倉庫的區別

 

很多時候,資料湖被認為與資料倉庫是等同的。實際上資料湖與資料倉庫代表著企業想達成的不同標的。表2-1中顯示了兩者的關鍵區別。

 

資料湖 資料倉庫

能處理所有型別的資料,如結構化資料,非結構化資料,半結構化資料等,資料的型別依賴於資料源系統的原始資料格式。

只能處理結構化資料進行處理,而且這些資料必須與資料倉庫事先定義的模型吻合。

擁有足夠強的計算能力用於處理和分析所有型別的資料,分析後的資料會被儲存起來供使用者使用。

處理結構化資料,將它們或者轉化為多維資料,或者轉換為報表,以滿足後續的高階報表及資料分析需求。

資料湖通常包含更多的相關的資訊,這些資訊有很高機率會被訪問,並且能夠為企業挖掘新的運營需求。

資料倉庫通常用於儲存和維護長期資料,因此資料可以按需訪問。

▲表2-1 資料湖與資料倉庫的關鍵區別

 

從表2-1來看,資料湖與資料倉庫的差別很明顯。然而,在企業中兩者的作用是互補的,不應認為資料湖的出現是為了取代資料倉庫,畢竟兩者的作用是截然不同的。

 

 

05 資料湖的構建方法

 

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

 

簡單的資料湖實現幾乎等價於定義一個中心資料源,所有的系統都可以使用這個中心資料源來滿足所有的資料需求。雖然這種方法可能很簡單,也很划算,但它可能不是一個非常實用的方法,原因如下:

 

  • 只有當這些組織重新開始構建其資訊系統時,這種方法才可行。

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

  • 即使組織決定用這種方法構建資料湖,也缺乏明確的責任和關註點隔離(responsibility and separation of concerns)。

  • 這樣的系統通常嘗試一次性完成所有的工作,但是最終會隨著資料事務、分析和處理需求的增加而分崩離析。

 

更好的構建資料湖的策略是將企業及其資訊系統作為一個整體來看待,對資料擁有關係進行分類,定義統一的企業模型。

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

這樣的資料湖也可以有獨立的機制來捕獲、處理、分析資料,併為消費者應用程式提供資料服務。

 

關於作者:湯姆斯·約翰(Tomcy John)是一名企業級Java技術專家,擁有工學學士學位,並且有超過14年多行業的開發經驗。

潘卡·米斯拉(Pankaj Misra)是一名技術傳播者,擁有工程學士學位,並且有超過16年跨多個業務領域的技術經驗。

本文摘編自《企業資料湖》,經出版方授權釋出。

延伸閱讀《企業資料湖

點選上圖瞭解及購買

轉載請聯絡微信:togo-maruko

推薦語:本書旨在幫助你選擇正確的大資料技術並使用Lambda架構樣式來為企業構建自己的資料湖。“資料湖”已經成為大資料行業的一個重要術語,它是資料科學家們獲得有意義的洞察力的平臺,這些洞察力可以被企業用來重新定義或改變它們的運營方式。

贊(0)

分享創造快樂