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