最開始的時候,每個應用程式會產生、儲存大量資料,而這些資料並不能被其他應用程式使用,這種狀況導致 資料孤島 的產生。隨後資料集市應運而生,應用程式產生的資料儲存在乙個集中式的資料倉儲中,可根據需要匯出相關資料傳輸給企業內需要該資料的部門或個人。
然而資料集市只解決了部分問題。 剩餘問題,包括資料管理、資料所有權與訪問控制等都亟須解決,因為企業尋求獲得更高的使用有效資料的能力。
為了解決前面提及的各種問題, 企業有很強烈的訴求搭建自己的資料湖 ,資料湖不但能儲存傳統型別資料,也能儲存任意其他型別資料,並且能在它們之上做進一步的處理與分析,產生最終輸出供各類程式消費。
在本文中,將介紹資料湖的一些主要方面,幫助讀者理解為什麼它對企業非常重要。
資料湖從企業的多個資料來源獲取原始資料,並且針對不同的目的,同乙份原始資料還可能有多種滿足特定內部模型格式的資料副本。因此,資料湖中被處理的資料可能是任意型別的資訊,從結構化資料到完全非結構化資料。
企業對資料湖寄予厚望,希望它能幫助使用者快速獲取有用資訊, 並能將這些資訊用於資料分析和機器學習演算法 ,以獲得與企業執行相關的洞察力。
資料湖與企業的關係
企業資料中隱藏著多種能力,然而,在重要資料能夠被具備商業資料洞察力的人使用之前,人們無法利用它們來改善企業的商業表現。
長期以來,企業一直試圖找到乙個統一的模型來表示企業中所有實體。這個任務有極大的 挑戰性 ,原因有很多,下面列舉了其中的一部分:
這些問題已困擾企業多年,並阻礙了業務處理、服務定義及術語命名等事務的標準化。
從資料湖的角度來看,我們正在以另外一種方式來看待這個問題。 使用資料湖,隱式實現了乙個較好的統一資料模型,而不用擔心對業務程式產生實質性影響。 這些業務程式則是解決具體業務問題的「專家」。資料湖基於從實體所有者相關的所有系統中捕獲的全量資料來盡可能「豐滿」地表示實體。
因為在實體表示方面更優且更完備,資料湖確實給企業資料處理與管理帶來了巨大的幫助,使得企業具備更多關於企業增長方面的洞察力,幫助企業達成其商業目標。
資料湖的優點
企業會在其多個業務系統中產生海量資料,隨著企業體量增大,企業也需要更智慧型地處理這些橫跨多個系統的資料。
一種最基本的策略是採用乙個單獨的領域模型,它能精準地描述資料並能代表對總體業務最有價值的那部分資料。這些資料指的是前面提到的企業資料。
對企業資料進行了良好定義的企業當然也有一些管理資料的方法,因此企業資料定義的更改能保持一致性,企業內部也很清楚系統是如何共享這些資訊的。
在這種案例中, 系統被分為資料擁有者(data owner)及資料消費者(data consumer) 。對於企業資料來說,需要有對應的擁有者,擁有者定義了資料如何被其他消費系統獲取,消費系統扮演著消費者的角色。
一旦企業有了對資料和系統的明晰定義,就可以通過該機制利用大量的企業資訊。該機制的一種常見實現策略是通過構建企業級資料湖來提供統一的企業資料模型, 在該機制中,資料湖負責捕獲資料、處理資料、分析資料,以及為消費者系統提供資料服務。
資料湖能從以下方面幫助到企業:
在本節中,我們討論資料湖應該具備哪些能力。後續將會討論和評述資料湖是如何工作的,以及應該如何去理解其工作機制。
為了準確理解資料湖能給企業帶來哪些好處,理解資料湖的工作機制以及構建功能齊全的資料湖需要哪些元件就顯得尤為重要了。在一頭紮進資料湖架構細節之前,不妨先來了解資料湖背景中的 資料生命週期 。
在乙個較高的層面來看,資料湖中資料生命週期如圖2-1所示。
圖2-1 資料湖的生命週期
上述生命週期也可稱為資料在資料湖中的多個不同階段。每個階段所需的資料和分析方法也有所不同。 資料處理與分析既可按批量(batch)方式處理,也可以按近實時(near-real-time)方式處理。
資料湖的實現需要同時支援這兩種處理方式,因為不同的處理方式服務於不同的場景。處理方式(批處理或近實時處理)的選擇也依賴資料處理或分析任務的計算量,因為很多複雜計算不可能在近實時處理模式中完成,而在一些案例中,則不能接受較長的處理週期。
同樣,儲存系統的選擇還依賴於資料訪問的要求。例如,如果希望儲存資料時便於通過sql查詢訪問資料,則選擇的儲存系統必須支援sql介面。
如果資料訪問要求提供資料檢視,則涉及將資料儲存為對應的形式,即資料可以作為檢視對外提供,並提供便捷的可管理性和可訪問性。
最近出現的乙個日漸重要的趨勢是通過 服務 (service)來提供資料,它涉及在輕量級服務層上對外公開資料。每個對外公開的服務必須準確地描述服務功能並對外提供資料。此模式還支援基於服務的資料整合,這樣其他系統可以消費資料服務提供的資料。
當資料從採集點流入資料湖時,它的元資料**獲,並根據其生命週期中的資料敏感度從資料可追溯性、資料世系和資料安全等方面進行管理。
資料世系被定義為資料的生命週期,包括資料的起源以及資料是如何隨時間移動的。它描述了資料在各種處理過程中發生了哪些變化,有助於提供資料分析流水線的可見性,並簡化了錯誤溯源。可追溯性是通過標識記錄來驗證資料項的歷史、位置或應用的能力。
——維基百科
很多時候,資料湖被認為與資料倉儲是等同的。實際上資料湖與資料倉儲代表著企業想達成的不同目標。表2-1中顯示了兩者的關鍵區別。
資料湖資料倉儲
能處理所有型別的資料,如結構化資料,非結構化資料,半結構化資料等,資料的型別依賴於資料來源系統的原始資料格式。
只能處理結構化資料進行處理,而且這些資料必須與資料倉儲事先定義的模型吻合。
擁有足夠強的計算能力用於處理和分析所有型別的資料,分析後的資料會被儲存起來供使用者使用。
處理結構化資料,將它們或者轉化為多維資料,或者轉換為報表,以滿足後續的高階報表及資料分析需求。
資料倉儲通常用於儲存和維護長期資料,因此資料可以按需訪問。
表2-1 資料湖與資料倉儲的關鍵區別
從表2-1來看,資料湖與資料倉儲的差別很明顯。然而, 在企業中兩者的作用是互補的,不應認為資料湖的出現是為了取代資料倉儲,畢竟兩者的作用是截然不同的。
不同的組織有不同的偏好,因此它們構建資料湖的方式也不一樣。 構建方法與業務、處理流程及現存系統等因素有關。
簡單的資料湖實現幾乎等價於定義乙個中心資料來源,所有的系統都可以使用這個中心資料來源來滿足所有的資料需求。雖然這種方法可能很簡單,也很划算,但它可能不是乙個非常實用的方法,原因如下:
更好的構建資料湖的策略是將企業及其資訊系統作為乙個整體來看待,對資料擁有關係進行分類,定義統一的企業模型。
這樣的資料湖也可以有獨立的機制來捕獲、處理、分析資料,並為消費者應用程式提供資料服務。
什麼是mvc,mvc有什麼用?
mvc是一種設計模式,使資料和頁面分離,降低耦合性。模型 模型表示企業資料和業務規則 檢視 檢視是使用者看到並與之互動的介面 控制器 控制器接受使用者的輸入並呼叫模型和檢視去完成使用者的需求 總結mvc的處理過程,首先控制器接收使用者的請求,並決定應該呼叫哪個模型來進行處理,然後模型用業務邏輯來處理...
dev null有什麼用
把 dev null 看作 黑洞 它非常等價於乙個只寫檔案.所有寫入它的內容都會永遠丟失.而嘗試從它那兒讀取內容則什麼也讀不到.然而,dev null 對命令列和指令碼都非常的有用.禁止 標準輸出 cat filename dev null 禁止 標準錯誤 rm badname 2 dev null...
技術有什麼用?
技術有什麼用?收藏 最近在cto俱樂部的乙個討論分享,關於技術和創新的作用 技術向底層延伸,應該是科技,技術向上層延伸,應該是應用,如果單純把技術看作工具,編碼,實現或一種生存的手段,那就太狹隘了。二戰期間,美國和蘇聯都因為戰爭的因素,發展了高精尖技術,二戰結束,美國把可以商業化的科研產品交給了企業...