■ 安徽 劉揚(yáng)
編者按:大數(shù)據(jù)時代,可以存儲原始的、不受數(shù)據(jù)類型限制的數(shù)據(jù)湖被視為信息化建設(shè)的技術(shù)演進(jìn)方向。但數(shù)據(jù)沼澤成為建設(shè)數(shù)據(jù)湖過程中普遍遭遇的難題。如何重塑數(shù)據(jù)湖、規(guī)避數(shù)據(jù)沼澤成為目前數(shù)據(jù)湖建設(shè)的瓶頸。本文探討了數(shù)據(jù)沼澤產(chǎn)生的根源,梳理了重塑數(shù)據(jù)湖的技術(shù)路徑,為規(guī)避數(shù)據(jù)沼澤陷阱和建設(shè)高質(zhì)量、高價值的數(shù)據(jù)湖提供建議。
從信息化建設(shè)的實(shí)踐來看,數(shù)據(jù)湖隨著Hadoop等技術(shù)的快速普及而被廣泛用于大數(shù)據(jù)平臺的存儲與使用。盡管目前對數(shù)據(jù)湖的定義尚有許多分歧,但其核心理念已得到接受,亞馬遜、IBM等科技公司已將數(shù)據(jù)湖作為向企業(yè)級客戶提供的重要產(chǎn)品。
由于數(shù)據(jù)湖最初的理念在于不對原始數(shù)據(jù)進(jìn)行數(shù)據(jù)治理,通過原始數(shù)據(jù)提升了數(shù)據(jù)使用的靈活性和低成本,使得數(shù)據(jù)湖在建設(shè)中始終無法回避一個核心難題——數(shù)據(jù)沼澤。
一旦進(jìn)入數(shù)據(jù)湖的數(shù)據(jù)完全沒有經(jīng)過數(shù)據(jù)治理,那么在使用時,原始數(shù)據(jù)自身以及在存儲、維護(hù)過程中存在的任何缺陷都有可能成為使用障礙,讓用戶在使用時無從下手,從而減少使用,而使用頻率的降低又會使這些缺陷更加難被發(fā)現(xiàn)并解決,最終會導(dǎo)致數(shù)據(jù)湖淪為數(shù)據(jù)沼澤。但是,如果在進(jìn)入數(shù)據(jù)湖時進(jìn)行數(shù)據(jù)治理,那么治理成本可能高于經(jīng)濟(jì)效益。同時,也有可能在治理過程中舍棄潛在的經(jīng)濟(jì)效益,難以體現(xiàn)出數(shù)據(jù)湖有別于數(shù)據(jù)倉庫的根本價值。
從規(guī)避數(shù)據(jù)沼澤陷阱的探索來看,主要有三類方向:
一是聚焦簡單關(guān)聯(lián)關(guān)系數(shù)據(jù)的分析,在單一系統(tǒng)或模塊中構(gòu)建數(shù)據(jù)湖。通過人工智能與大數(shù)據(jù)相結(jié)合,直接將結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)一起計(jì)算分析。這方面的商業(yè)實(shí)踐已較成熟。
二是專注存儲與計(jì)算方式的技術(shù)革新。這類探索順應(yīng)存儲和計(jì)算分離的技術(shù)潮流,充分考慮帶寬和內(nèi)存成本下降速度遠(yuǎn)快于存儲成本的現(xiàn)實(shí)情況,將原本的集中式存儲改為分布式存儲。
三是加強(qiáng)元數(shù)據(jù)管理。元數(shù)據(jù)管理的核心思路是將對原始數(shù)據(jù)的描述編纂成電子目錄,其技術(shù)實(shí)質(zhì)是數(shù)據(jù)治理的基礎(chǔ)工作。
在實(shí)際應(yīng)用中,第二類與第三類探索通常結(jié)合使用,逐步實(shí)現(xiàn)數(shù)據(jù)資產(chǎn)存儲從傳統(tǒng)數(shù)據(jù)倉庫向數(shù)據(jù)湖的技術(shù)演進(jìn)。
這些探索在數(shù)據(jù)湖建設(shè)過程中規(guī)避了數(shù)據(jù)沼澤陷阱,但也付出了相應(yīng)的成本,例如數(shù)據(jù)湖的數(shù)據(jù)來源受限、數(shù)據(jù)存儲的復(fù)雜性與脆弱性上升、數(shù)據(jù)入湖時的數(shù)據(jù)治理等。
實(shí)際上,這些探索的實(shí)質(zhì)是解決數(shù)據(jù)湖建設(shè)中經(jīng)濟(jì)效益顯著或者數(shù)據(jù)治理成本可控的部分,用確定性收益規(guī)避不確定性風(fēng)險。換言之,沒有觸及到數(shù)據(jù)沼澤的產(chǎn)生根源。
事實(shí)上,與數(shù)據(jù)倉庫相比,數(shù)據(jù)湖的最大價值在于入湖數(shù)據(jù)潛在價值的再發(fā)現(xiàn),最能產(chǎn)出超額收益的部分來源于數(shù)據(jù)價值發(fā)掘過程中的不確定性風(fēng)險。而數(shù)據(jù)沼澤的產(chǎn)生根源不在于人工智能等數(shù)據(jù)價值再發(fā)現(xiàn)工具缺乏、數(shù)據(jù)存儲與計(jì)算的能力不足,也不在于元數(shù)據(jù)管理的水平限制,而在于入湖數(shù)據(jù)的數(shù)據(jù)間內(nèi)在關(guān)聯(lián)性的缺失,在于業(yè)務(wù)邏輯無法完整的體現(xiàn)在入湖數(shù)據(jù)的數(shù)據(jù)間內(nèi)在關(guān)聯(lián)性上。
數(shù)據(jù)間內(nèi)在關(guān)聯(lián)性,總體來說可以分為三類:
一是業(yè)務(wù)邏輯上數(shù)據(jù)間本質(zhì)的映射關(guān)系。即如果不同的系統(tǒng)或模塊在同一個業(yè)務(wù)邏輯上存在上下游關(guān)系,那么在該業(yè)務(wù)邏輯下這些系統(tǒng)或模塊內(nèi)的數(shù)據(jù)之間一定存在某種保持不變的特性。(這種映射關(guān)系和數(shù)據(jù)內(nèi)在的數(shù)據(jù)映射機(jī)制在機(jī)理上相通,關(guān)于數(shù)據(jù)內(nèi)在的數(shù)據(jù)映射機(jī)制可參看筆者拙作《系統(tǒng)通用模塊建設(shè)思考》)例如在資金使用的業(yè)務(wù)邏輯下,財(cái)務(wù)模塊的支付數(shù)據(jù)與采購模塊中的合同數(shù)據(jù)之間的映射關(guān)系。
二是系統(tǒng)或模塊間的耦合關(guān)系。耦合關(guān)系在數(shù)據(jù)層面主要關(guān)系到數(shù)據(jù)的內(nèi)在一致性,系統(tǒng)或模塊間的耦合程度一旦達(dá)到數(shù)據(jù)耦合或更高類型,那么在數(shù)據(jù)湖建設(shè)中無需額外考慮其內(nèi)在一致性。
三是數(shù)據(jù)間時空一致性。由于數(shù)據(jù)湖目前普遍采用分布式存儲,不同節(jié)點(diǎn)內(nèi)的數(shù)據(jù)在同一時點(diǎn)可能存在差異,同時不同系統(tǒng)或模塊的數(shù)據(jù)采集機(jī)制也不盡相同,因此數(shù)據(jù)間時空一致性涉及到數(shù)據(jù)的更新機(jī)制、同步策略、校驗(yàn)方法等,并且直接影響到數(shù)據(jù)進(jìn)行關(guān)聯(lián)分析時的可信度、可用性等。
同時,數(shù)據(jù)湖中業(yè)務(wù)邏輯直接體現(xiàn)在入湖數(shù)據(jù)的數(shù)據(jù)間內(nèi)在關(guān)聯(lián)性上,不再需要數(shù)據(jù)倉庫中業(yè)務(wù)邏輯到數(shù)據(jù)邏輯的人工轉(zhuǎn)換。傳統(tǒng)的數(shù)據(jù)倉庫是將業(yè)務(wù)邏輯由人工操作轉(zhuǎn)換成數(shù)據(jù)邏輯,即我們通常所使用的ETL等。
這種人工操作主要憑借人對業(yè)務(wù)邏輯和數(shù)據(jù)本質(zhì)的理解,其開發(fā)質(zhì)量取決于用戶需求的表達(dá)和開發(fā)人員對用戶表述的了解,開發(fā)效率直接受到雙方溝通效率的制約。也就是說,一旦入湖數(shù)據(jù)的數(shù)據(jù)間內(nèi)在關(guān)聯(lián)性無法完整的體現(xiàn)業(yè)務(wù)邏輯,為了數(shù)據(jù)可用,勢必要再次處理數(shù)據(jù),從而付出高昂的數(shù)據(jù)治理成本。
圖1 數(shù)據(jù)湖重塑
針對數(shù)據(jù)沼澤的產(chǎn)生根源,重塑數(shù)據(jù)湖需要建立通用的技術(shù)路徑,對入湖數(shù)據(jù)進(jìn)行全面的數(shù)據(jù)重構(gòu)。重塑數(shù)據(jù)湖的技術(shù)路徑總體來說如圖1所示。
第一階段,廣泛梳理業(yè)務(wù)邏輯,通過數(shù)據(jù)庫切片技術(shù)將數(shù)據(jù)源按業(yè)務(wù)邏輯進(jìn)行預(yù)切片(即只提取出數(shù)據(jù)結(jié)構(gòu)、不同屬性項(xiàng)的完整性等關(guān)鍵信息,不進(jìn)行真實(shí)切分),確定每一類業(yè)務(wù)邏輯涉及的上下游系統(tǒng)或模塊。
第二階段,以業(yè)務(wù)邏輯為出發(fā)點(diǎn),使用數(shù)據(jù)建模技術(shù)對預(yù)切片進(jìn)行數(shù)據(jù)間映射關(guān)系進(jìn)行分析,看上下游系統(tǒng)或模塊中的數(shù)據(jù)之間能否以屬性項(xiàng)為中心構(gòu)建出1對n或者n對1(n為正整數(shù))的映射關(guān)系。
第三階段,使用可視化技術(shù)逐類梳理數(shù)據(jù)間映射關(guān)系,尋找在各類業(yè)務(wù)邏輯中可以構(gòu)成單一方向映射關(guān)系的樹狀結(jié)構(gòu)(或者一一映射結(jié)構(gòu))。
第四階段,回溯該樹狀結(jié)構(gòu)所涉及的數(shù)據(jù)源,分析其所包含系統(tǒng)或模塊間的耦合關(guān)系以及數(shù)據(jù)間時空一致性,通過關(guān)聯(lián)數(shù)據(jù)技術(shù)構(gòu)建支持該業(yè)務(wù)邏輯的底層數(shù)據(jù)關(guān)聯(lián)規(guī)則。
本文探討了數(shù)據(jù)沼澤產(chǎn)生的根源,梳理了重塑數(shù)據(jù)湖的技術(shù)路徑。但是,在重塑數(shù)據(jù)湖的過程中還可能遇到一些復(fù)雜情況,比如說復(fù)雜的數(shù)據(jù)間映射關(guān)系(如n對m、非結(jié)構(gòu)化數(shù)據(jù)間映射關(guān)系等)、數(shù)據(jù)間時空不一致情況下底層數(shù)據(jù)關(guān)聯(lián)規(guī)則的建立等。對這些復(fù)雜情況的處理解決還需要進(jìn)一步的分析探討。