陳 氫 張 治
(湖北工業(yè)大學(xué)經(jīng)濟(jì)與管理學(xué)院 武漢 430068)
移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、云計算等技術(shù)的迅猛發(fā)展引起數(shù)據(jù)量呈指數(shù)級增長的同時加劇了數(shù)據(jù)處理技術(shù)與數(shù)據(jù)資產(chǎn)管理之間的矛盾,導(dǎo)致信息孤島、數(shù)據(jù)壁壘、信息過載等問題日益嚴(yán)峻。最初的數(shù)據(jù)庫按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù),但不同的數(shù)據(jù)庫之間無法進(jìn)行數(shù)據(jù)共享,數(shù)據(jù)庫之間的集成也面臨巨大的挑戰(zhàn)。隨后數(shù)據(jù)倉庫作為大數(shù)據(jù)管理和處理的一個長期解決方案,在一定程度上通過集成各個獨立數(shù)據(jù)庫緩解了這些問題,但是,傳統(tǒng)的數(shù)據(jù)倉庫無法滿足多元化數(shù)據(jù)結(jié)構(gòu)的存儲和查詢以及非結(jié)構(gòu)化和結(jié)構(gòu)化數(shù)據(jù)的交叉分析,同時其煙囪式建設(shè)模式與數(shù)據(jù)跨業(yè)務(wù)線廣泛連接的需求之間也面臨挑戰(zhàn)。在此形勢下,數(shù)據(jù)湖以原始格式存儲原始數(shù)據(jù)并提供公共訪問接口,借助與用戶之間的動態(tài)交互支撐數(shù)據(jù)預(yù)測分析、跨領(lǐng)域分析、實時分析以及多元化結(jié)構(gòu)化數(shù)據(jù)分析的優(yōu)勢成為了存儲大數(shù)據(jù)的一個高效和強(qiáng)大的解決方案,最終實現(xiàn)組織的數(shù)據(jù)資產(chǎn)價值并加速其數(shù)字化轉(zhuǎn)型。然而,現(xiàn)有的關(guān)于數(shù)據(jù)湖的文獻(xiàn)卻相當(dāng)模糊和不完整,也沒有提供全面的架構(gòu)設(shè)計和實現(xiàn)策略。
為此本文針對學(xué)界基于數(shù)據(jù)湖體系架構(gòu)研究匱乏及認(rèn)知不系統(tǒng)實情,分析數(shù)據(jù)湖與數(shù)據(jù)倉庫之間的差異以及數(shù)據(jù)湖系統(tǒng)所面臨的挑戰(zhàn),基于數(shù)據(jù)流轉(zhuǎn)維度及業(yè)務(wù)處理維度的二維思路構(gòu)建數(shù)據(jù)湖的架構(gòu)體系,從架構(gòu)體系的視角闡述數(shù)據(jù)湖的主要組成部分及其目標(biāo)和功能。
1.1數(shù)據(jù)湖內(nèi)涵數(shù)據(jù)湖最早
是2010年在業(yè)界由Dixon提出的一個模擬自然數(shù)據(jù)湖的概念,數(shù)據(jù)湖作為一個原始的大型數(shù)據(jù)集,處理同一個來源的原始數(shù)據(jù)并支持不同的用戶需求[1]。然而以Gartner為代表的另一部分學(xué)者認(rèn)為數(shù)據(jù)湖只是一個以較低成本存儲數(shù)據(jù)的新方法[2]。
基于這二類關(guān)于數(shù)據(jù)湖的立場,學(xué)術(shù)界對于數(shù)據(jù)湖的研究雖然有限但正在增加。Fang將數(shù)據(jù)湖的創(chuàng)建與Apache Hadoop的環(huán)境緊密聯(lián)系,數(shù)據(jù)湖作為一個數(shù)據(jù)管理方法并取代數(shù)據(jù)倉庫,組織的所有數(shù)據(jù)都以物理方式聚集在一個基于Apache Hadoop平臺上[3];在Fang的基礎(chǔ)上Russom提出數(shù)據(jù)湖由單一技術(shù)存儲向混合模式開放,包括多元存儲模式(關(guān)系型、NoSQL、Apache Hadoop等)和平臺(不同服務(wù)器、云),并強(qiáng)調(diào)了元數(shù)據(jù)管理的重要性[4];Pale和Suriaraachchi在學(xué)術(shù)界最早研究數(shù)據(jù)湖架構(gòu)和基礎(chǔ)設(shè)施,并提出了一個在海量數(shù)據(jù)背景下管理原始數(shù)據(jù)可追溯性的參考架構(gòu)[5];Alrehamy等人基于數(shù)據(jù)隱私保護(hù)研究了查詢和分析個人數(shù)據(jù)的數(shù)據(jù)湖[6]。
上述業(yè)界和學(xué)術(shù)界對于數(shù)據(jù)湖的研究主要針對特定的研究問題或某些特定類型的源數(shù)據(jù),綜合上述國內(nèi)外研究成果,結(jié)合本研究的特點,本文將數(shù)據(jù)湖定義為一個數(shù)據(jù)存儲和管理系統(tǒng),它存儲大規(guī)模的原始數(shù)據(jù)并借助元數(shù)據(jù)目錄和數(shù)據(jù)治理規(guī)則和方法為用戶提供豐富的功能列表。數(shù)據(jù)湖作為一種新工具,使組織能夠定義、組織和管理各種大數(shù)據(jù)技術(shù)的使用。
1.2數(shù)據(jù)湖與數(shù)據(jù)倉庫針對海量多源異構(gòu)數(shù)據(jù),數(shù)據(jù)湖與數(shù)據(jù)倉庫面對不同對象的不同形態(tài)的數(shù)據(jù)資產(chǎn)相輔相成,同時二者之間主要存在五個方面的差異。
a.數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)倉庫主要包含來自事務(wù)或操作系統(tǒng)的結(jié)構(gòu)化數(shù)據(jù)。而數(shù)據(jù)湖允許所有數(shù)據(jù)被插入,無論其性質(zhì)和來源如何,因此數(shù)據(jù)湖包含結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)以及非結(jié)構(gòu)化數(shù)據(jù)。
b.采集模式。數(shù)據(jù)湖與決策系統(tǒng)最大的區(qū)別在于數(shù)據(jù)采集階段的二種模式:讀取模式和寫入模式(如圖 1所示)[7]。寫入型模式背后蘊(yùn)含的邏輯是數(shù)據(jù)在寫入之前,根據(jù)業(yè)務(wù)的訪問方式確定一個預(yù)定的提取、轉(zhuǎn)換和加載方案,從預(yù)期的信息開始,按照既定的模式,在操作系統(tǒng)中找到適當(dāng)?shù)臄?shù)據(jù),完成數(shù)據(jù)的導(dǎo)入。數(shù)據(jù)湖強(qiáng)調(diào)的讀取型模式是在數(shù)據(jù)存儲之后定義架構(gòu),更適應(yīng)業(yè)務(wù)高速發(fā)展的狀況。
圖1 數(shù)據(jù)湖與數(shù)據(jù)倉庫:讀取模式與寫入模式
c.數(shù)據(jù)過程。數(shù)據(jù)倉庫中的異構(gòu)源數(shù)據(jù)集需要經(jīng)過提取/轉(zhuǎn)換/加載(ETL) 過程。加載數(shù)據(jù)時的轉(zhuǎn)換期間,數(shù)據(jù)需要結(jié)構(gòu)化以及聚合處理,因此會對細(xì)節(jié)產(chǎn)生破壞性。在數(shù)據(jù)湖中,以幾乎原始的狀態(tài)加載數(shù)據(jù),并迅速迭代使用,只有在使用時才將結(jié)構(gòu)化應(yīng)用于數(shù)據(jù),即提取、加載和轉(zhuǎn)換(ELT)過程,從而保持了原始數(shù)據(jù)的全部潛力,使得數(shù)據(jù)湖中的數(shù)據(jù)更具有真實性并且可溯源。
d.實時性。數(shù)據(jù)湖和數(shù)據(jù)倉庫區(qū)分的另一個主要因素是與之相關(guān)的操作方面。在數(shù)據(jù)湖中可以實時攝取數(shù)據(jù)流并對數(shù)據(jù)做出反應(yīng),因此應(yīng)用程序可以直接與之互動,數(shù)據(jù)湖中的數(shù)據(jù)是在沒有任何轉(zhuǎn)換的情況下被攝取的,這就避免了從數(shù)據(jù)源中提取數(shù)據(jù)的時間滯后,使得數(shù)據(jù)湖更加靈活,并能夠提供實時的數(shù)據(jù)。而數(shù)據(jù)倉庫則需要同步更新處于ETL過程中可能相互依賴的數(shù)據(jù)源,
e.用戶。數(shù)據(jù)倉庫的用戶往往是理想的操作用戶,如業(yè)務(wù)分析師,因為數(shù)據(jù)是結(jié)構(gòu)化和易于使用的。數(shù)據(jù)湖的用戶往往是理想的高級用戶,他們是非常了解計算機(jī)技術(shù)的使用者,通過元數(shù)據(jù)目錄就知道他們想要搜索的數(shù)據(jù),如分析家、數(shù)據(jù)科學(xué)家或開發(fā)人員,并且能夠使用豐富的集成工具利用數(shù)據(jù)并結(jié)合預(yù)測分析過程來建立預(yù)測模型。
根據(jù)上述結(jié)果列出數(shù)據(jù)湖和數(shù)據(jù)倉庫之間的主要差異(如表 1所示)。
通過上述理論分析數(shù)據(jù)湖與數(shù)據(jù)倉庫之間的差異性,明確數(shù)據(jù)倉庫的主要限制在于:提供預(yù)期的信息。基于傳統(tǒng)數(shù)據(jù)倉庫的決策支持系統(tǒng)作為一種信息驅(qū)動型系統(tǒng)雖有簡單的業(yè)務(wù)管理、高適應(yīng)性和高反應(yīng)性等優(yōu)勢但難以適應(yīng)海量異構(gòu)的大數(shù)據(jù)環(huán)境下業(yè)務(wù)迭代動態(tài)化、技術(shù)構(gòu)成多元化、高拓展性等客觀需求,導(dǎo)致面臨無法滿足企業(yè)關(guān)鍵競爭差異需求的挑戰(zhàn)。數(shù)據(jù)湖作為一種數(shù)據(jù)驅(qū)動型系統(tǒng),是對現(xiàn)有決策系統(tǒng)的補(bǔ)充,其主要目標(biāo)是允許在沒有先驗的情況下探索組成數(shù)據(jù)湖的數(shù)據(jù)集,以期在一個組織的數(shù)據(jù)增強(qiáng)的背景下發(fā)現(xiàn)可利用的新信息途徑并滿足企業(yè)數(shù)據(jù)資本化以及價值化的需求。
表1 數(shù)據(jù)湖與數(shù)據(jù)倉庫比較
1.3數(shù)據(jù)湖面臨的挑戰(zhàn)企業(yè)利用數(shù)據(jù)湖從消費者數(shù)據(jù)中提取全面見解以采取戰(zhàn)略獲得競爭優(yōu)勢,大量數(shù)據(jù)存儲和分析技術(shù)的演變和發(fā)展對于數(shù)據(jù)湖的應(yīng)用實現(xiàn)也具有重要意義。 但數(shù)據(jù)湖也面臨治理策略不一致、數(shù)據(jù)不可靠(數(shù)據(jù)沼澤、數(shù)據(jù)冗余等)、業(yè)務(wù)不協(xié)同(數(shù)據(jù)孤島)、技術(shù)措施組合智能性弱等挑戰(zhàn)[8]。
為此,本文針對當(dāng)前數(shù)據(jù)湖應(yīng)用面臨的一系列挑戰(zhàn),基于數(shù)據(jù)流轉(zhuǎn)和業(yè)務(wù)處理兩個維度構(gòu)建的數(shù)據(jù)湖架構(gòu)旨在將數(shù)據(jù)標(biāo)準(zhǔn)和治理策略貫穿于數(shù)據(jù)的收集、存儲、分析或消費的全應(yīng)用流程并行構(gòu)建應(yīng)用程序及基礎(chǔ)設(shè)施技術(shù)支持?jǐn)?shù)據(jù)治理需求和業(yè)務(wù)目標(biāo)。
數(shù)據(jù)湖系統(tǒng)的開發(fā)管理重點是基于組織的戰(zhàn)略和業(yè)務(wù)需求,為了實現(xiàn)這一目標(biāo)需要確保組織數(shù)據(jù)湖系統(tǒng)中的所有組件(數(shù)據(jù)庫、應(yīng)用程序以及服務(wù)等)的合理化。本文基于數(shù)據(jù)流轉(zhuǎn)和業(yè)務(wù)處理兩個維度提出由六個模塊組成的數(shù)據(jù)湖架構(gòu),即:數(shù)據(jù)采集模塊、數(shù)據(jù)湖存儲模塊、數(shù)據(jù)分析/消費模塊、數(shù)據(jù)基礎(chǔ)設(shè)施模塊、數(shù)據(jù)應(yīng)用軟件模塊以及數(shù)據(jù)治理模塊(如圖2所示)。
圖2 數(shù)據(jù)湖架構(gòu)
2.1數(shù)據(jù)湖架構(gòu)的數(shù)據(jù)流轉(zhuǎn)維度從數(shù)據(jù)運(yùn)行的角度來看,數(shù)據(jù)流轉(zhuǎn)就是數(shù)據(jù)驅(qū)動。數(shù)據(jù)在輸入、分析處理到輸出的過程中形成的數(shù)據(jù)流轉(zhuǎn)就是一種數(shù)據(jù)驅(qū)動機(jī)制?;诖髷?shù)據(jù)環(huán)境下數(shù)據(jù)在組織機(jī)構(gòu)中的數(shù)據(jù)流轉(zhuǎn)情況構(gòu)建三個模塊:數(shù)據(jù)采集模塊、數(shù)據(jù)存儲模塊、數(shù)據(jù)分析/消費模塊。這三個模塊按照自左向右的順序,從多源異構(gòu)數(shù)據(jù)源的獲取到存儲,最后通過數(shù)據(jù)分析/消費向用戶提供企業(yè)畫像、聯(lián)邦計算、商業(yè)智能分析、推薦系統(tǒng)、預(yù)測分析等業(yè)務(wù)服務(wù)。在這個數(shù)據(jù)流轉(zhuǎn)過程中,三個模塊的主要功能為:以數(shù)據(jù)為導(dǎo)向,通過數(shù)據(jù)流轉(zhuǎn)交互作用使信息系統(tǒng)與業(yè)務(wù)相一致并提升用戶體驗,強(qiáng)化數(shù)據(jù)流程整體一致性以便適應(yīng)數(shù)據(jù)湖按需運(yùn)行的基本特征,實現(xiàn)業(yè)務(wù)協(xié)同。
2.2數(shù)據(jù)湖架構(gòu)的業(yè)務(wù)處理維度從數(shù)據(jù)服務(wù)的角度來看,業(yè)務(wù)處理就是業(yè)務(wù)驅(qū)動。面向企業(yè)數(shù)據(jù)湖多模態(tài)的業(yè)務(wù)場景,提升數(shù)據(jù)服務(wù)價值就是一種業(yè)務(wù)驅(qū)動機(jī)制?;跇I(yè)務(wù)處理維度面向業(yè)務(wù)服務(wù)并結(jié)合數(shù)據(jù)湖以數(shù)據(jù)為驅(qū)動的特點構(gòu)建三個模塊:基于底層支撐平臺的基礎(chǔ)設(shè)施模塊、基于系統(tǒng)應(yīng)用組件的應(yīng)用軟件模塊和基于數(shù)據(jù)管理的數(shù)據(jù)治理模塊。這三個模塊按照自下而上的順序,基礎(chǔ)設(shè)施模塊支持定義的應(yīng)用軟件模塊,基于數(shù)據(jù)治理模塊開發(fā)應(yīng)用軟件程序模塊?;A(chǔ)設(shè)施模塊的主要功能為:通過合理部署硬件設(shè)施管理業(yè)務(wù)需求,實現(xiàn)硬件技術(shù)措施組合智能性;應(yīng)用軟件模塊的主要功能為:通過部署整合技術(shù)創(chuàng)新措施提升數(shù)據(jù)集成共享服務(wù)、計算力利用率以及高效能的數(shù)據(jù)分析能力,實現(xiàn)軟件技術(shù)措施組合智能性;數(shù)據(jù)治理模塊的主要功能為:通過推進(jìn)元數(shù)據(jù)管理、數(shù)據(jù)生命周期管理、數(shù)據(jù)質(zhì)量和數(shù)據(jù)安全管理的數(shù)據(jù)治理策略,管理數(shù)據(jù)的整體一致性以便適應(yīng)數(shù)據(jù)湖動態(tài)運(yùn)行的基本特征從而實現(xiàn)治理策略有效性、持續(xù)性、可靠性、安全性。
基于兩個維度六個模塊的數(shù)據(jù)湖架構(gòu)通過自左向右流轉(zhuǎn)和自下而上處理的多層次多維度架構(gòu)的構(gòu)建,既保證了商業(yè)數(shù)據(jù)價值增長中的數(shù)據(jù)創(chuàng)建、處理、消費及交換方式,又強(qiáng)調(diào)了數(shù)據(jù)湖IT系統(tǒng)、設(shè)備和相關(guān)基礎(chǔ)設(shè)施的實施情況[9],最終實現(xiàn)數(shù)據(jù)湖資產(chǎn)化及價值化的目標(biāo)。
數(shù)據(jù)貫穿信息流動的生命周期,以數(shù)據(jù)流轉(zhuǎn)為維度可以將數(shù)據(jù)湖治理策略貫穿于數(shù)據(jù)采集、存儲、分析/消費等各個應(yīng)用流程,在信息全鏈條中完成數(shù)據(jù)從端到端的跟蹤和管理服務(wù)從而實現(xiàn)業(yè)務(wù)協(xié)同?;跀?shù)據(jù)流轉(zhuǎn)維度的模塊包括:數(shù)據(jù)采集、數(shù)據(jù)存儲及數(shù)據(jù)分析/消費。
3.1數(shù)據(jù)采集考慮到數(shù)據(jù)的多源異構(gòu)特性,數(shù)據(jù)湖采集全部原始數(shù)據(jù)源并儲存在數(shù)據(jù)湖中適當(dāng)?shù)拇鎯^(qū)域,通過轉(zhuǎn)換這些數(shù)據(jù)來滿足業(yè)務(wù)需求[10]。不同結(jié)構(gòu)類型的數(shù)據(jù)在數(shù)據(jù)采集平臺上通過批量寫入、消息隊列、文件導(dǎo)入、提取生成、加工提取和加工寫入等方式并存儲在對應(yīng)的存儲系統(tǒng)中(以多存儲系統(tǒng)為例,如圖 3所示),實現(xiàn)全面高效采集、保證數(shù)據(jù)源的全面性和及時性,從而為后續(xù)的數(shù)據(jù)存儲、數(shù)據(jù)分析和業(yè)務(wù)迭代做準(zhǔn)備,保證數(shù)據(jù)流程的完整一致性。
圖3 數(shù)據(jù)湖采集
3.2數(shù)據(jù)存儲數(shù)據(jù)存儲旨在數(shù)據(jù)分析/消費階段之前,期間和之后存儲所獲取和編目的數(shù)據(jù),涵蓋了為分析工具和用戶消費而存儲數(shù)據(jù)的各個區(qū)域。依據(jù)數(shù)據(jù)存儲的核心作用將數(shù)據(jù)存儲體系作為數(shù)據(jù)湖體系架構(gòu)的底座,依靠其可擴(kuò)展性、高可用性、可伸縮性、數(shù)據(jù)持久性以及安全性等特征實現(xiàn)數(shù)據(jù)湖存儲體系與其他體系結(jié)構(gòu)之間的交互,以便適應(yīng)數(shù)據(jù)湖按需運(yùn)行的基本特征。根據(jù)存儲類型將數(shù)據(jù)湖存儲方式分為四類:作為文件、以單一的數(shù)據(jù)庫格式、使用多重存儲和云上數(shù)據(jù)湖。
3.2.1 基于文件的存儲系統(tǒng) Hadoop分布式文件系統(tǒng)(HDFS)是數(shù)據(jù)湖中最常見的數(shù)據(jù)存儲系統(tǒng)之一。HDFS不僅支持文本和二進(jìn)制文件,它還支持?jǐn)?shù)據(jù)壓縮的某些格式。此外,微軟的 Azure 數(shù)據(jù)湖存儲庫(ADLS)還提供了一個分層的、基于多層文件的存儲系統(tǒng),它是一個完全管理、彈性、可擴(kuò)展和安全的文件系統(tǒng) ,應(yīng)用了針對大型非結(jié)構(gòu)化數(shù)據(jù)的AzureBlob 存儲[11]。
3.2.2 單一的數(shù)據(jù)庫格式存儲 數(shù)據(jù)湖系統(tǒng)針對特定類型的數(shù)據(jù)使用單一的數(shù)據(jù)庫格式進(jìn)行存儲。例如,個人數(shù)據(jù)湖將數(shù)據(jù)存儲在Neo4j中,一方面由用戶網(wǎng)絡(luò)交互產(chǎn)生的各種結(jié)構(gòu)化、半結(jié)構(gòu)化及非結(jié)構(gòu)化數(shù)據(jù)可以存儲在單個空間,另一方面用戶可以更好的控制數(shù)據(jù)隱私和共享策略。
3.2.3 多存儲系統(tǒng) 數(shù)據(jù)湖中數(shù)據(jù)具有多樣性特征,與之相關(guān)的產(chǎn)生了多范式存儲系統(tǒng),以保證對數(shù)據(jù)的有效訪問[12]。多存儲系統(tǒng)具有對異構(gòu)數(shù)據(jù)的多個數(shù)據(jù)存儲配置的集成訪問權(quán)限和靈活可擴(kuò)展的優(yōu)點。如圖3所示,將數(shù)據(jù)湖中具有原始數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)的元數(shù)據(jù)、主數(shù)據(jù)、管理數(shù)據(jù)和指標(biāo)數(shù)據(jù)存儲到關(guān)系數(shù)據(jù)庫;將非結(jié)構(gòu)化數(shù)據(jù)、列式數(shù)據(jù)、鍵值數(shù)據(jù)存儲到NoSQL數(shù)據(jù)庫中;將文本、圖片、視頻、日志等存儲到NoSQL文本數(shù)據(jù)庫中;將結(jié)構(gòu)化數(shù)據(jù)與非結(jié)構(gòu)化數(shù)據(jù)存儲到分布式文件系統(tǒng)中;將空間坐標(biāo)、地質(zhì)信息、大氣信息、地理數(shù)據(jù)、天氣信息等存儲到空間/地圖數(shù)據(jù)庫;將物聯(lián)網(wǎng)數(shù)據(jù)、實時數(shù)據(jù)、監(jiān)測數(shù)據(jù)等存儲到實時-時序數(shù)據(jù)庫;將生產(chǎn)數(shù)據(jù)監(jiān)控數(shù)據(jù)、交易數(shù)據(jù)等存儲到實時-內(nèi)存數(shù)據(jù)庫;將節(jié)點數(shù)據(jù)、關(guān)系數(shù)據(jù)、標(biāo)簽數(shù)據(jù)、屬性數(shù)據(jù)等存儲到圖數(shù)據(jù)庫[13];將全鍵索引、全文索引、組合索引、查詢索引等存儲到索引數(shù)據(jù)庫。
3.2.4 云上數(shù)據(jù)湖 上述數(shù)據(jù)湖系統(tǒng)中,大多數(shù)都是本地的。對于商業(yè)數(shù)據(jù)湖,由于云的數(shù)據(jù)規(guī)模大,在云上構(gòu)建數(shù)據(jù)湖是一種更常見的做法。如亞馬遜Web服務(wù)(AWS數(shù)據(jù)湖)、阿里云、谷歌云等。在云平臺上構(gòu)建數(shù)據(jù)湖可動態(tài)的擴(kuò)展存儲空間和計算能力,資源價格也比本地的價格低。
3.3數(shù)據(jù)分析/消費實施數(shù)據(jù)湖的首要目標(biāo)是數(shù)據(jù)的資本化及價值化,數(shù)據(jù)湖分析/消費體系提供了訪問存儲在數(shù)據(jù)湖存儲區(qū)的數(shù)據(jù)的功能,并通過分析工具提供給用戶進(jìn)行探索和挖掘海量數(shù)據(jù)湖數(shù)據(jù)來獲取業(yè)務(wù)洞見,其中涵蓋描述性分析、診斷性分析、預(yù)測性分析和規(guī)定性分析領(lǐng)域的各種功能。按照用戶類型設(shè)計分析/消費功能與數(shù)據(jù)流程并遵循數(shù)據(jù)治理策略一致性、數(shù)據(jù)規(guī)范標(biāo)準(zhǔn)性以及軟硬件設(shè)施組合智能性原則,根據(jù)不同操作用戶,業(yè)務(wù)用戶需要高性能的數(shù)據(jù)倉庫來運(yùn)行pb級數(shù)據(jù)上的復(fù)雜SQL查詢,以返回復(fù)雜的輸出結(jié)果,為此AWS Redshift Spectrum、谷歌BigQuery和Azure SQL Data Warehouse等工具提供了巨大的壓縮、區(qū)域映射、柱狀儲存,以及在存儲文件上高性能運(yùn)行復(fù)雜查詢的能力[14];數(shù)據(jù)分析師需要運(yùn)行SQL查詢進(jìn)行交互式查詢來分析大量的數(shù)據(jù)湖數(shù)據(jù),為此Apache hive、Apache Presto、Amazon Athena和Impala等工具通過使用數(shù)據(jù)目錄構(gòu)建模型以查詢在選定格式文件中的底層數(shù)據(jù)[15];數(shù)據(jù)科學(xué)家運(yùn)行機(jī)器學(xué)習(xí)算法以進(jìn)行預(yù)測,實現(xiàn)高效、自由、基于數(shù)據(jù)湖的數(shù)據(jù)探索,使用Dataiku、Tensorflow和Sagemaker等工具,或者在云平臺上運(yùn)行R或Python算法,同時數(shù)據(jù)湖包含豐富的人工智能服務(wù),以語音技術(shù)、智能機(jī)器人、人臉識別等AI技術(shù)為依托,為圖像處理、音頻處理、自然語言處理、視頻處理等提供強(qiáng)有力的數(shù)據(jù)支撐。
在致力于執(zhí)行數(shù)據(jù)湖的過程中,企業(yè)希望提高其敏捷性和靈活性以提升數(shù)據(jù)價值。以業(yè)務(wù)處理維度構(gòu)建的數(shù)據(jù)湖系統(tǒng)體系應(yīng)滿足業(yè)務(wù)處理和數(shù)據(jù)管理需求,旨在以數(shù)據(jù)湖為數(shù)據(jù)基礎(chǔ)組織和存儲形式實現(xiàn)集成式架構(gòu)規(guī)范、整體式管理流程、迭代式并行構(gòu)建、推進(jìn)式技術(shù)創(chuàng)新以提升和改善所提供服務(wù)的能力。這種構(gòu)建方法一定程度上可以避免數(shù)據(jù)沼澤或數(shù)據(jù)未充分利用的可能性。基于業(yè)務(wù)處理維度的體系結(jié)構(gòu)包括:數(shù)據(jù)基礎(chǔ)設(shè)施、數(shù)據(jù)應(yīng)用軟件及數(shù)據(jù)治理。
4.1數(shù)據(jù)基礎(chǔ)設(shè)施數(shù)據(jù)基礎(chǔ)設(shè)施體系提供了支持?jǐn)?shù)據(jù)應(yīng)用程序架構(gòu)的所有硬件組件。通過合理部署硬件設(shè)施、高效利用軟件基礎(chǔ)設(shè)施以滿足數(shù)據(jù)管理從而實現(xiàn)硬件設(shè)施組合智能化,這些組件包括服務(wù)器、工作站、存儲設(shè)備(存儲托架,SAN,文件管理器等)、備用設(shè)備、網(wǎng)絡(luò)設(shè)備(路由器,防火墻,交換機(jī),負(fù)載平衡器, SSL加速器等)。
4.2數(shù)據(jù)應(yīng)用軟件數(shù)據(jù)應(yīng)用軟件體系為各個體系結(jié)構(gòu)提供軟件技術(shù)集成資源。作為數(shù)據(jù)湖的計算機(jī)視圖,其目標(biāo)是分發(fā)和重用應(yīng)用程序功能,通過明晰技術(shù)措施綜合運(yùn)用軟件資源部署整合技術(shù)創(chuàng)新措施以滿足海量多源、異構(gòu)分布環(huán)境下的數(shù)據(jù)治理需求。利用軟件技術(shù)集成設(shè)施以管理數(shù)據(jù)的訪問及其持久性(備份,安全性)。通??梢栽跀?shù)據(jù)湖體系結(jié)構(gòu)中部署的軟件組件包括:a.用于存儲部分的關(guān)系數(shù)據(jù)庫,noSQL或HDFS類型的文件系統(tǒng);b.用于處理數(shù)據(jù)的架構(gòu)模式(框架),例如Map-reduce,Apache Spark;c.元數(shù)據(jù)管理軟件,例如Informatica,IBM Metadata Catalog;d.基于HDFS的數(shù)據(jù)湖集成套件,例如Cloudera,HortonWorks;e.機(jī)器學(xué)習(xí)軟件,例如Apache Spark,IBM機(jī)器學(xué)習(xí)等。
4.3數(shù)據(jù)治理數(shù)據(jù)治理為數(shù)據(jù)采集、數(shù)據(jù)存儲及數(shù)據(jù)分析/消費提供均需遵循的數(shù)據(jù)規(guī)范,針對海量分布、多源異構(gòu)環(huán)境下實現(xiàn)數(shù)據(jù)管理自動化并提高數(shù)據(jù)管理效率,通過元數(shù)據(jù)管理、數(shù)據(jù)生命周期管理、數(shù)據(jù)質(zhì)量管理及數(shù)據(jù)安全管理等標(biāo)準(zhǔn)管理確保數(shù)據(jù)質(zhì)量、實現(xiàn)數(shù)據(jù)共享。
4.3.1 元數(shù)據(jù)管理 元數(shù)據(jù)代表了保證數(shù)據(jù)源互操作性的有效和高效管理的唯一可能性,元數(shù)據(jù)管理是數(shù)據(jù)湖在安全性、資產(chǎn)管理、生命周期管理和質(zhì)量方面保證其治理的基礎(chǔ),通過推進(jìn)元數(shù)據(jù)管理解決數(shù)據(jù)冗余、數(shù)據(jù)沼澤等數(shù)據(jù)問題,規(guī)范數(shù)據(jù)標(biāo)準(zhǔn)并實現(xiàn)數(shù)據(jù)治理有效性策略。同時數(shù)據(jù)湖依靠有效的元數(shù)據(jù)管理功能來簡化和自動化常見的數(shù)據(jù)管理任務(wù)[16]。
良好的元數(shù)據(jù)管理需要建立規(guī)則和流程,以確保訪問,共享,鏈接,集成,維護(hù)和分析任何元數(shù)據(jù)的能力。根據(jù)元數(shù)據(jù)的生成時間或它們帶來的意義和信息來劃分元數(shù)據(jù)分為三類:技術(shù)元數(shù)據(jù)、操作元數(shù)據(jù)和業(yè)務(wù)元數(shù)據(jù)[17]。在數(shù)據(jù)湖應(yīng)用軟件體系中,元數(shù)據(jù)管理工具包括數(shù)據(jù)目錄或組織成數(shù)據(jù)集的數(shù)據(jù)集合(例如,可搜索的表或其他排列,便于探索)。元數(shù)據(jù)管理軟件為存儲在整個企業(yè)中的數(shù)據(jù)資產(chǎn)提供上下文和信息,有助于確??绮块T或業(yè)務(wù)單位一致地描述數(shù)據(jù),為企業(yè)數(shù)據(jù)提供通用語言和分類[18]。
4.3.2 數(shù)據(jù)生命周期管理 數(shù)據(jù)生命周期是指基于可自動化的規(guī)則在數(shù)據(jù)的整個生命周期中支持?jǐn)?shù)據(jù),管理數(shù)據(jù)和流程的整體一致性從而實現(xiàn)數(shù)據(jù)治理持續(xù)性策略。在數(shù)據(jù)湖中,一旦完成數(shù)據(jù)采集,就必須考慮數(shù)據(jù)的生命周期問題,否則很快數(shù)據(jù)湖將充滿各種無用數(shù)據(jù)。從邏輯上講,那些將失去所有價值的數(shù)據(jù)產(chǎn)品都將被自動銷毀。為此,必須識別數(shù)據(jù)并進(jìn)行特征化,這意味著通過指定它們的類型、創(chuàng)建日期以及原始用戶(或服務(wù))來為它們建立索引。另外,當(dāng)訪問關(guān)聯(lián)數(shù)據(jù)時,在邏輯上將他們鏈接起來也是一個難題,這使得該生命周期的管理變得復(fù)雜化。因此,數(shù)據(jù)湖中的數(shù)據(jù)生命周期在很大程度上依賴于元數(shù)據(jù)的良好管理,該元數(shù)據(jù)必須包括對其進(jìn)行監(jiān)視和實施所必需的信息和規(guī)則。在體系結(jié)構(gòu)設(shè)計期間,必須為將要獲取的每個數(shù)據(jù)定義并應(yīng)用這些信息、規(guī)則和過程。
4.3.3 數(shù)據(jù)質(zhì)量管理 數(shù)據(jù)湖采集所有類型未經(jīng)處理的原始數(shù)據(jù),這些多源可變數(shù)據(jù)質(zhì)量問題包括數(shù)據(jù)不完整、無效數(shù)據(jù)和不確定性。由于數(shù)據(jù)的可追溯性,用戶可以知道他將使用的數(shù)據(jù)質(zhì)量的狀態(tài)并根據(jù)情況,采用與決策系統(tǒng)相同的原理,在使用數(shù)據(jù)時清理該數(shù)據(jù)。數(shù)據(jù)質(zhì)量重點關(guān)注需求、檢查、分析和提升的實現(xiàn)能力,對數(shù)據(jù)從采集、存儲、共享、維護(hù)、應(yīng)用、消亡生命周期的各個階段里可能引發(fā)的各類數(shù)據(jù)質(zhì)量問題進(jìn)行識別、度量、監(jiān)控、預(yù)警等一系列活動,確保數(shù)據(jù)的質(zhì)量以及數(shù)據(jù)治理可靠性策略。
4.3.4 數(shù)據(jù)安全管理 數(shù)據(jù)湖是高度暴露的,因此在體系結(jié)構(gòu)設(shè)計期間,需在整體安全基礎(chǔ)設(shè)施和控制框架中部署和管理數(shù)據(jù)湖的安全性以及數(shù)據(jù)治理的安全性策略,通過規(guī)則、程序和適當(dāng)?shù)募夹g(shù)工具來實現(xiàn)的。技術(shù)層面上,數(shù)據(jù)湖的技術(shù)安全可分為:
a.數(shù)據(jù)安全。數(shù)據(jù)資產(chǎn)化要求將組織的數(shù)據(jù)進(jìn)行安全管理,對靜態(tài)和傳輸中的數(shù)據(jù)進(jìn)行加密保護(hù)并將其存儲在持久性介質(zhì)上。云上數(shù)據(jù)湖則通過存儲層加密機(jī)制來保證數(shù)據(jù)安全。此外,還可以通過選擇加密算法以和旋轉(zhuǎn)密鑰,使用密鑰管理服務(wù)來實現(xiàn)加密。數(shù)據(jù)湖基礎(chǔ)設(shè)施層針對數(shù)據(jù)安全管理提供硬件安全模塊(HSM)。傳輸中的數(shù)據(jù)意味著數(shù)據(jù)在網(wǎng)絡(luò)上在設(shè)備和服務(wù)(如API)之間移動則通過使用帶有證書的TLS/SSL傳輸來實現(xiàn)[19];
b.網(wǎng)絡(luò)安全。主要依靠建立網(wǎng)絡(luò)防火墻定義IP地址范圍,基于OSI層中的網(wǎng)絡(luò)層控制訪問并監(jiān)視網(wǎng)絡(luò)上的web流量并授權(quán)出站會話。云中的虛擬專用網(wǎng)絡(luò)以及防火墻和其他機(jī)制使用戶能夠在基于云的解決方案商實施網(wǎng)絡(luò)隔離,通常使用安全組、網(wǎng)絡(luò)ACL和CIDR塊限制等限制連接的靈活性,從而創(chuàng)建一個網(wǎng)絡(luò)非軍事區(qū)(DMZ)允許外部訪問的服務(wù)器單獨接在該區(qū)端口,使整個需要保護(hù)的內(nèi)部網(wǎng)絡(luò)接在信任區(qū)端口。
c.訪問控制。企業(yè)數(shù)據(jù)湖用戶需要確保正確的身份驗證策略之后訪問所需的資源從而保護(hù)數(shù)據(jù)安全,通過用戶身份及其所歸屬的某項定義組來限制用戶對某些信息項的訪問?;跀?shù)據(jù)湖產(chǎn)品結(jié)構(gòu)使用常用的技術(shù)手段來維護(hù)標(biāo)準(zhǔn)認(rèn)證,比如active directory。此外,也可以使用身份訪問管理(IAM)控制細(xì)粒度訪問,例如AWS使用bucket和AWS IAM策略來訪問數(shù)據(jù)文件,提供精細(xì)的訪問管理。
d.應(yīng)用程序安全性。保護(hù)數(shù)據(jù)湖應(yīng)用軟件免受外部攻擊威脅主要有二種方法:Web應(yīng)用程序防火墻和微服務(wù)體系結(jié)構(gòu)。網(wǎng)絡(luò)安全技術(shù)中采用的網(wǎng)絡(luò)防火墻沒有檢測或防止威脅的機(jī)制,而使用Web應(yīng)用程序防火墻通過安裝特殊程序來保護(hù)Web應(yīng)用程序或Api,應(yīng)用程序防火墻允許創(chuàng)建常見的攻擊模式,例如,SQL跨站點的腳本編寫,防止常見的Web攻擊影響數(shù)據(jù)湖可用性、安全性和資源利用性。另一種方法是通過實現(xiàn)微服務(wù)體系結(jié)構(gòu)來減少攻擊,例如將應(yīng)用程序與存儲或其他應(yīng)用程序解耦。
在“信息超載”的數(shù)據(jù)經(jīng)濟(jì)時代,面對大量多源異構(gòu)數(shù)據(jù),從數(shù)據(jù)倉庫到數(shù)據(jù)湖,不僅僅是數(shù)據(jù)存儲架構(gòu)的變革,更是大數(shù)據(jù)思維方式的升級。本文通過比較傳統(tǒng)數(shù)據(jù)倉庫和數(shù)據(jù)湖的差異性來突出數(shù)據(jù)湖實施的必要性及其所面臨的挑戰(zhàn);闡述了基于數(shù)據(jù)流轉(zhuǎn)維度和業(yè)務(wù)處理維度構(gòu)建的數(shù)據(jù)湖架構(gòu)的基本體系結(jié)構(gòu),包括數(shù)據(jù)采集、數(shù)據(jù)存儲、數(shù)據(jù)治理、數(shù)據(jù)分析/消費、數(shù)據(jù)應(yīng)用軟件以及數(shù)據(jù)基礎(chǔ)設(shè)施;下一步,將研究該架構(gòu)的正式化方法,以供相關(guān)研究與實踐參考。