避免“數(shù)據(jù)湖”成為“數(shù)據(jù)沼澤”,流動的“數(shù)據(jù)河”是關鍵
數(shù)據(jù)只有流動起來才可以產(chǎn)生價值,基于IOTA架構(gòu)的數(shù)據(jù)河與數(shù)據(jù)湖組建企業(yè)內(nèi)部的可流動的大數(shù)據(jù)水系,用數(shù)據(jù)驅(qū)動整個企業(yè)精益成長。
數(shù)據(jù)湖(Data Lake)在Wiki中定義如下:
簡而言之,數(shù)據(jù)湖是按存儲原始數(shù)據(jù)格式的數(shù)據(jù)存儲,旨在任何數(shù)據(jù)可以以最原始的形態(tài)儲存,可是結(jié)構(gòu)化或者非結(jié)構(gòu)化數(shù)據(jù),以確保數(shù)據(jù)在使用時可以不丟失任何細節(jié)。一般以Hadoop系統(tǒng)存儲為比較典型的解決方案,所有的實時數(shù)據(jù)和批量數(shù)據(jù),都匯總到數(shù)據(jù)湖當中,然后從湖中取相關數(shù)據(jù)用于機器學習或者數(shù)據(jù)分析。
數(shù)據(jù)湖的概念被企業(yè)中廣泛用于大數(shù)據(jù)平臺的存儲與使用,替代了原有數(shù)據(jù)倉庫體系當中的ODS(operational data store)存儲企業(yè)中各種各樣的數(shù)據(jù)。在易觀,SDK的月活達到5.9億,當易觀的數(shù)據(jù)湖達到6.8Pb都無法存儲半年數(shù)據(jù)的時候,我意識到這個問題:“這樣真的是對的么?數(shù)據(jù)一味的堆積,等待被使用時才調(diào)用? ”
企業(yè)的業(yè)務是實時在變化的,這代表著沉積在數(shù)據(jù)湖中的數(shù)據(jù)定義、數(shù)據(jù)格式實時都在發(fā)生的轉(zhuǎn)變,企業(yè)的大型數(shù)據(jù)湖對企業(yè)數(shù)據(jù)治理(Data Governance)提升了更高的要求。大部分使用數(shù)據(jù)湖的企業(yè)在數(shù)據(jù)真的需要使用的時候,往往因為數(shù)據(jù)湖中的數(shù)據(jù)質(zhì)量太差而無法最終使用。
數(shù)據(jù)湖,被企業(yè)當成一個大數(shù)據(jù)的垃圾桶,最終數(shù)據(jù)湖成為臭氣熏天,存儲在Hadoop當中的數(shù)據(jù)成為無人可以清理的數(shù)據(jù)沼澤,最終以為TCO(Total cost of ownship)過高而被企業(yè)所拋棄。
這個時候我意識到:“大數(shù)據(jù),不被有效使用就會成為大垃圾。”
如何讓大數(shù)據(jù)的水保持清亮不會成為數(shù)據(jù)沼澤?
中國有句諺語:
“流水不腐,戶樞不蠹”。
數(shù)據(jù)只有流動起來,才可以不成為數(shù)據(jù)沼澤,湖泊只是暫存數(shù)據(jù)河流的基地。數(shù)據(jù)流動就意味著所有的數(shù)據(jù)產(chǎn)生,最終要有它的耕種者和使用者。要讓數(shù)據(jù)有效流動起來,就要建立有效的“數(shù)據(jù)河”(Data River)。
什么是數(shù)據(jù)河?
數(shù)據(jù)河(Data River)就是在由源頭產(chǎn)生清晰干凈的有效數(shù)據(jù)(去ETL化,數(shù)據(jù)源頭業(yè)務就像生態(tài)水源一樣,不讓污水流下去),通過各個河流網(wǎng),流向各個數(shù)據(jù)消費端的架構(gòu)。
數(shù)據(jù)河的特點如下:
- 源頭有效:根據(jù)大數(shù)據(jù)IOTA架構(gòu),數(shù)據(jù)河在產(chǎn)生的源頭就需要加工為有效的CDM數(shù)據(jù)(Common Data Model),參見文章《Lambda架構(gòu)已死,去ETL化的IOTA才是未來》,數(shù)據(jù)通過數(shù)據(jù)耕種方和使用方直接在數(shù)據(jù)產(chǎn)生源頭通過Edge SDK?進行清洗。
- 全局唯一:多條數(shù)據(jù)河的差別在于CDM模型的不同,而不是使用者的使用方法不同,避免同樣數(shù)據(jù)源被多次加工失去數(shù)據(jù)唯一性。
- 高低流向:數(shù)據(jù)河一定是要有高低流向,即每條河流都需要有確定的使用者,而不是漫無目的的洪水,數(shù)據(jù)源頭的質(zhì)量是通過環(huán)境治理由使用者定義的,而不是由產(chǎn)生者,產(chǎn)生者只關注數(shù)據(jù)是真實即可。
- 湖中暫存:數(shù)據(jù)河一定是基于IOTA架構(gòu)的實時數(shù)據(jù),在CDM模型的支持下,實時流向使用者。數(shù)據(jù)河在數(shù)據(jù)湖中只是暫存,一定會流向其他河流和分支,而不會沉積在數(shù)據(jù)湖中,否則會產(chǎn)生數(shù)據(jù)淤泥,最終成為數(shù)據(jù)沼澤。
最終一個企業(yè)內(nèi)部由多條河流組成一個公司內(nèi)部的數(shù)據(jù)生態(tài)(Enterprise Data Eco System?):
- 數(shù)據(jù)源頭(Data Source):數(shù)據(jù)產(chǎn)生者,確保產(chǎn)生的數(shù)據(jù)都是真實數(shù)據(jù),像冰川雪水一樣確保數(shù)據(jù)真實性。通過邊緣計算,變?yōu)镮OTA架構(gòu)當中的CDM模型,確保CDM全局唯一,不用管數(shù)據(jù)業(yè)務統(tǒng)計的計算邏輯。
- 數(shù)據(jù)河(Data River):有全局CDM模型唯一定義的,由數(shù)據(jù)源頭流向數(shù)據(jù)消費者的數(shù)據(jù)架構(gòu),可以使用大數(shù)據(jù)IOTA架構(gòu)或者其他類似的去實時數(shù)據(jù)處理架構(gòu)。
- 數(shù)據(jù)消費者(Data Cosumer):數(shù)據(jù)消費方,拿到原始真實的數(shù)據(jù),根據(jù)自己的業(yè)務邏輯,實時計算為自己所需要的結(jié)果或者根據(jù)數(shù)據(jù)實時驅(qū)動自己的業(yè)務。
- 數(shù)據(jù)三角洲(Data Delta):多條數(shù)據(jù)河交匯使用的地方,需要數(shù)據(jù)耕種者(Data Cultivators)把兩個不同的CDM模型(例如:用戶行為數(shù)據(jù)的CDM與商品庫存數(shù)據(jù)的CDM),實時合并,提供給數(shù)據(jù)消費者實時驅(qū)動自己的業(yè)務。一般,三角洲的河流交匯越多,這個三角洲的土壤更加肥沃。數(shù)據(jù)三角洲的耕種,可以通過AI或者機器學習會產(chǎn)生新的數(shù)據(jù)源,在新的CDM模型和使用者的支撐下可以是新的數(shù)據(jù)源頭(Data Source)。
- 數(shù)據(jù)湖(Data Lake):在河流交匯或者河水需要暫存下來的時候,這是根據(jù)數(shù)據(jù)耕種者的需要,其中的數(shù)據(jù)一定是要繼續(xù)流動的,而不是死水,即數(shù)據(jù)在數(shù)據(jù)湖中暫存時間是有限的,例如:3個月或者6個月,最終在數(shù)據(jù)消費者這里才是永久保留。
這個模式比較典型的一個實現(xiàn)就是易觀方舟,易觀方舟以IOTA架構(gòu)安裝到企業(yè)內(nèi)部,幫助企業(yè)建立用戶行為分析這個CDM的數(shù)據(jù)河,以“主、謂、賓”的模式打通企業(yè)內(nèi)部用戶的各種行為,直接提供給產(chǎn)品和運營做相關的數(shù)據(jù)分析,同時也是一個PaaS平臺,可以供給給其他數(shù)據(jù)耕種者繼續(xù)再次加工。
數(shù)據(jù)河是數(shù)據(jù)驅(qū)動中臺的最終架構(gòu),只有讓數(shù)據(jù)流動起來不斷消費才可以讓數(shù)據(jù)不斷的自我更新迭代數(shù)據(jù)質(zhì)量,不斷自我加強才可以實現(xiàn)數(shù)據(jù)驅(qū)動業(yè)務。
數(shù)據(jù),只有流動起來才可以產(chǎn)生價值。寧要IOTA架構(gòu)下的數(shù)據(jù)河,不要Lambda架構(gòu)下的數(shù)據(jù)湖。
本文由@Analysys易觀 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理 。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
不明覺厲qwq