網(wǎng)易有數(shù):漫談企業(yè)數(shù)據(jù)倉庫的演進(jìn)
數(shù)據(jù)倉庫的概念誕生最早可追溯到上世紀(jì)70年代,回顧早期的企業(yè)環(huán)境,企業(yè)的生產(chǎn)與服務(wù)是一個很長周期,導(dǎo)致業(yè)務(wù)數(shù)據(jù)呈現(xiàn)一種粗粒度模式。
隨著互聯(lián)網(wǎng)的快速滲透,從早期的pc到現(xiàn)在的移動互聯(lián)網(wǎng),業(yè)務(wù)的需求與服務(wù)周期逐漸變短,業(yè)務(wù)數(shù)據(jù)量級,與數(shù)據(jù)類型的多樣化暴增,對應(yīng)著的技術(shù)、架構(gòu)、理論也顯出快速發(fā)展。從最開始的數(shù)據(jù)倉庫到現(xiàn)在的大數(shù)據(jù),中間經(jīng)歷過太多的技術(shù)、架構(gòu)模式的演進(jìn)與變革,從最初的數(shù)據(jù)倉庫到海量數(shù)據(jù),從大數(shù)據(jù)到現(xiàn)在的數(shù)據(jù)平臺,從數(shù)據(jù)中臺到數(shù)據(jù)湖。中間還穿插著人工智能與云計算兩大技術(shù)體系。
數(shù)據(jù)倉庫在國外的發(fā)展歷史多年,進(jìn)入中國的時間大概在1998-1999年左右,中間大致經(jīng)歷了兩個階段,從傳統(tǒng)企業(yè)的數(shù)據(jù)倉庫架構(gòu)到現(xiàn)在互聯(lián)網(wǎng)時代的大數(shù)據(jù)之下的數(shù)據(jù)倉庫架構(gòu),有著明顯的變更。本文按照數(shù)據(jù)倉庫的發(fā)展歷程,細(xì)說數(shù)據(jù)倉庫的發(fā)展歷程,最后再討論下技術(shù)體系對數(shù)據(jù)倉庫架構(gòu)的影響。
——1——
傳統(tǒng)企業(yè)數(shù)據(jù)倉庫
從數(shù)據(jù)倉庫的萌芽至今,傳統(tǒng)企業(yè)的數(shù)據(jù)倉庫大致可以分為五個時代,四種架構(gòu)。
1970~1991 數(shù)據(jù)倉庫概念萌芽到全企業(yè)集成
1991~1994 EDW企業(yè)數(shù)據(jù)集成時代(Inmon 數(shù)據(jù)倉庫一書,范式建模)
1994~1996 數(shù)據(jù)集市時代(kimball維度建模)
1996~1997 神仙大戰(zhàn)時代(維度建模與范式建模爭論)
1998~2001 合并時代(CIF架構(gòu))
1.1 范式建模
五個時代均是以重要事件或者人物的出現(xiàn)作為劃分,比如說EDW企業(yè)數(shù)據(jù)集成時代是以Bill Inmon大作《Building the Data Warehouse》作為劃分,在這本書里面Inmon給出了數(shù)據(jù)倉庫定義:數(shù)據(jù)倉庫(DataWarehouse)是一個面向主題的(Subject Oriented)、集成的(Integrated)、相對穩(wěn)定的(Non-Volatile)、反映歷史變化的(Time Variant)數(shù)據(jù)集合,用于支持管理決策(Decision-Making Support)。該書還提供了建立數(shù)據(jù)倉庫的指導(dǎo)意見和基本原則。憑借此書,Bill Inmon被稱為數(shù)據(jù)倉庫之父。
1.2 維度建模
數(shù)據(jù)倉庫的概念確立之后,有關(guān)數(shù)據(jù)倉庫的實(shí)施方法、實(shí)施路徑和架構(gòu)等問題引發(fā)了諸多爭議。在實(shí)際運(yùn)用中,大部分企業(yè)也都以失敗告終。這時候數(shù)據(jù)集市時代代表人物 Ralph kilmball及其代表作《The Data Warehouse Toolkit》出現(xiàn)。在數(shù)據(jù)倉庫的建設(shè)上提出了自下而上的建設(shè)方法,剛好與Bill Inmon的范式建模自上而下建設(shè)理論相反。這兩種理論的架構(gòu)是各有千秋,所以就進(jìn)入的爭吵年代。

(范式建模以及維度建模的架構(gòu)圖)
Inmon提出的集線器的自上而下(EDW-DM)的數(shù)據(jù)倉庫架構(gòu)。操作型或事務(wù)型系統(tǒng)的數(shù)據(jù)源,通過ETL抽取轉(zhuǎn)換和加載到數(shù)據(jù)倉庫的ODS層,然后通過ODS的數(shù)據(jù)建設(shè)原子數(shù)據(jù)的數(shù)據(jù)倉庫EDW,EDW不是多維格式的,不方便上層應(yīng)用做數(shù)據(jù)分析,所以需要通過匯總建設(shè)成多維格式的數(shù)據(jù)集市層。
范式建模應(yīng)用在EDW層,一個符合3范式的關(guān)系必須具有以下三個條件:
每個屬性的值唯一,不具有多義性;
每個非主屬性必須完全依賴于整個主鍵,而非主鍵的一部分;
每個非主屬性不能依賴于其他關(guān)系中的屬性,因?yàn)檫@樣的話,這種屬性應(yīng)該歸到其他關(guān)系中去。
但是由于EDW的數(shù)據(jù)是原子粒度的,數(shù)據(jù)量比較大,完全規(guī)范的3范式在數(shù)據(jù)的交互的時候效率比較低下,所以通常會根據(jù)實(shí)際情況在事實(shí)表上做一些冗余,減少過多的數(shù)據(jù)交互。
Inmon理論下結(jié)構(gòu)就是:ODS、EDW(ADM/FDM)和DM,也就是貼源層、主題模型層、共性加工層以及集市層。每一個層對應(yīng)于數(shù)據(jù)庫下面的模式,接下來依次介紹:
(1)ODS(貼源層):即這里存放的數(shù)據(jù)與原系統(tǒng)保持一致,將采集公司所有的系統(tǒng)產(chǎn)生的數(shù)據(jù)以及外部數(shù)據(jù)(包括合作數(shù)據(jù)以及爬蟲獲得的數(shù)據(jù)),將所采集的數(shù)據(jù)匯總到一起,供EDW和DM使用;
(2)EDW:這一層分為兩個,即ADM(共性加工層)和FDM(主題模型層)。其中FDM將從ODS層不同系統(tǒng)不同表的字段進(jìn)行分類,同一主題的字段都?xì)w為一類,之前針對不同行業(yè)的十大主題;ADM是加工一些共性的指標(biāo),指標(biāo)從ODS或者FDM的字段加工來,這層主要供集市層使用;
(3)DM:數(shù)據(jù)集市層,這一層是將業(yè)務(wù)部門所關(guān)注的指標(biāo)進(jìn)行匯總,形成的數(shù)據(jù),不同的業(yè)務(wù)部門可以形成不同的集市,具體情況可以視情況而定;集市層的架構(gòu)可以細(xì)分為:基礎(chǔ)層、匯總層和分析層。
Kimball提出的總線式的自下而上(DM-DW)的數(shù)據(jù)倉庫架構(gòu)。同樣的,操作型或事務(wù)型系統(tǒng)的數(shù)據(jù)源,通過ETL抽取轉(zhuǎn)換和加載到數(shù)據(jù)倉庫的ODS層,然后通過ODS的數(shù)據(jù),利用維度建模方法建設(shè)一致維度的數(shù)據(jù)集市。通過一致性維度可以將數(shù)據(jù)集市聯(lián)系在一起,由所有的數(shù)據(jù)集市組成數(shù)據(jù)倉庫。
在復(fù)合式的數(shù)據(jù)倉庫架構(gòu)中,操作型或事務(wù)型系統(tǒng)的數(shù)據(jù)源,通過ETL抽取轉(zhuǎn)換和加載到數(shù)據(jù)倉庫的ODS層,然后通過ODS的數(shù)據(jù),利用范式建模方法,建設(shè)原子數(shù)據(jù)的數(shù)據(jù)倉庫EDW,然后基于EDW,利用維度建模方法建設(shè)數(shù)據(jù)集市。一般采用的模型是星型模型(推薦)和雪花模型。
范式建模和維度建模的區(qū)別在于,范式建模是先進(jìn)行全企業(yè)數(shù)據(jù)的數(shù)據(jù)倉庫建設(shè),包含數(shù)據(jù)倉庫生命周期中的所有內(nèi)容,在一開始的時候不會過于關(guān)注數(shù)據(jù)的應(yīng)用與變現(xiàn),通過對數(shù)據(jù)質(zhì)量的摸底,分階段的去按照一條數(shù)據(jù)主線的方式將全企業(yè)數(shù)據(jù)聚集起來。最后再將第一階段數(shù)據(jù)倉庫中的數(shù)據(jù)再次通過階梯型高度聚合進(jìn)入到數(shù)據(jù)集市DM中,完成對業(yè)務(wù)的支撐。
由于需要對企業(yè)全局進(jìn)行規(guī)范化建模,這將導(dǎo)致較大的工作量。但這一步必須完成好,才能繼續(xù)往上建設(shè)數(shù)據(jù)集市。因此也就導(dǎo)致規(guī)范化數(shù)據(jù)倉庫需要一定時間才能投入使用,敏捷性相對后者來說略差。但是規(guī)范化數(shù)據(jù)倉庫一旦建立好了,則以后數(shù)據(jù)就更易于管理。而且由于開發(fā)人員不能直接使用其數(shù)據(jù)倉庫(通過數(shù)據(jù)集市的方式使用),更加確保了數(shù)據(jù)質(zhì)量。還有由于中心數(shù)據(jù)庫是采用規(guī)范化設(shè)計的,冗余情況也會更少。
而維度建模則是更像是根據(jù)需求,面向業(yè)務(wù)的提取相關(guān)業(yè)務(wù)數(shù)據(jù),按照維度建模的方式組織數(shù)據(jù),最后進(jìn)入到數(shù)據(jù)集市,維度建模敏捷性更強(qiáng),而且適用于業(yè)務(wù)變化比較頻繁的情況,對開發(fā)人員的要求也沒有規(guī)范化數(shù)據(jù)倉庫那么高。

(范式建模與維度建模大致區(qū)別)
1.3 CIF架構(gòu)
隨著數(shù)據(jù)倉庫的不斷實(shí)踐與迭代發(fā)展,從爭吵期進(jìn)入到了合并的時代,Bill inmon 與 Ralph kilmball 的爭吵沒有結(jié)論,干脆提出一種新的架構(gòu)包含對方,也就是后來Bill Inmon 提出的CIF(corporation information factory) 架構(gòu)模式,這也算是數(shù)據(jù)倉庫的第三代架構(gòu),其架構(gòu)特點(diǎn)是把整個架構(gòu)劃分為不同層次,把每一層次的定義與功能都詳細(xì)的描述下來,CIF主要包括集成轉(zhuǎn)換層(DSA)、操作數(shù)據(jù)存儲(ODS)、數(shù)據(jù)倉庫(EDW)、數(shù)據(jù)集市(DM)、探索倉庫(EW)等部件。

在后續(xù)的數(shù)據(jù)倉庫建設(shè)過程中,一般是合用維度建模和CIF兩種架構(gòu)進(jìn)行的,即建立CIF的數(shù)據(jù)倉庫和維度建模的數(shù)據(jù)集市。
CIF模式架構(gòu)建設(shè)周期較長且設(shè)計復(fù)雜,初始階段建立企業(yè)級數(shù)據(jù)模型和數(shù)據(jù)標(biāo)準(zhǔn)以及相關(guān)的數(shù)據(jù)清洗整合工作,需要花費(fèi)大量的人力和時間,但是一旦建立起企業(yè)級數(shù)據(jù)模型,數(shù)據(jù)的完整性和一致性問題就能夠得到根本解決,針對需求變化易于擴(kuò)展,后續(xù)的成本較低。
維度建模架構(gòu)首先著重于某幾個業(yè)務(wù)過程進(jìn)行構(gòu)建,以增量演進(jìn)的方式簡化企業(yè)級數(shù)據(jù)倉庫的實(shí)現(xiàn)過程,啟動成本和設(shè)計方法較為簡單,通過維度建模方式將原子層和匯總層合二為一,可以快速創(chuàng)建分析應(yīng)用,但是企業(yè)級數(shù)據(jù)倉庫的穩(wěn)定性和數(shù)據(jù)集市之間數(shù)據(jù)的一致性需要持續(xù)維護(hù)一致性維度來保證,后續(xù)擴(kuò)展數(shù)據(jù)集市的工作量較大。
1.4 OPDM
OPDM 大約是在2011年提出來的,嚴(yán)格上來說,OPDM 操作型數(shù)據(jù)集市(倉庫)是實(shí)時數(shù)據(jù)倉庫的一種,它更多的是面向操作型數(shù)據(jù)而非歷史數(shù)據(jù)查詢與分析。這里的操作型數(shù)據(jù)集市指的是將那些支持企業(yè)日常運(yùn)作的系統(tǒng)數(shù)據(jù)(比如說訂單系統(tǒng),財務(wù)系統(tǒng),CRM系統(tǒng)產(chǎn)生的數(shù)據(jù)),通過一種實(shí)時技術(shù),將這些分布在各個孤島的數(shù)據(jù),按照業(yè)務(wù)的邏輯有機(jī)的整合到一起。提供業(yè)務(wù)系統(tǒng)的監(jiān)控與指導(dǎo)(這些技術(shù)可以大體可以認(rèn)為是storm、spark、flink)這一部分的內(nèi)容和后續(xù)大數(shù)據(jù)時代下的數(shù)據(jù)倉庫實(shí)時數(shù)倉重合,我們后續(xù)進(jìn)行討論。
——2——
互聯(lián)網(wǎng)時代的大數(shù)據(jù)平臺
傳統(tǒng)企業(yè)數(shù)據(jù)倉庫的正確讀法應(yīng)該是 傳統(tǒng)-企業(yè)數(shù)據(jù)倉庫,從架構(gòu)體系上來說,傳統(tǒng)企業(yè)數(shù)據(jù)倉庫是數(shù)據(jù)倉庫一個從無到有的過程,中間的有著不停的探索與實(shí)踐。但是隨著互聯(lián)網(wǎng)的高速發(fā)展,傳統(tǒng)企業(yè)數(shù)據(jù)倉庫的劣勢也愈來展現(xiàn)。
不能滿足海量數(shù)據(jù)存儲需求
不能處理不同類型的數(shù)據(jù)
計算與處理能力差
隨著大數(shù)據(jù)技術(shù)的發(fā)展,互聯(lián)網(wǎng)時代的數(shù)據(jù)倉庫閃亮登場,互聯(lián)網(wǎng)的數(shù)據(jù)平臺從07年-08年左右開始迅猛發(fā)展,在發(fā)展的初期也是從傳統(tǒng)數(shù)據(jù)平臺的第三代架構(gòu)開始演進(jìn)的,互聯(lián)網(wǎng)產(chǎn)品發(fā)展特點(diǎn)是“糙、快、猛”,原有的技術(shù)體系必然無法支撐高IO吞吐、密集型計算,由此帶來了一系列的技術(shù)變革,適合互聯(lián)網(wǎng)時代的大數(shù)據(jù)平臺應(yīng)運(yùn)而生。

(網(wǎng)易有數(shù)大數(shù)據(jù)平臺架構(gòu))

