淺談數(shù)據(jù)倉庫架構(gòu)設(shè)計(jì)
1. 數(shù)據(jù)中臺(tái)與DW/BI/DSS
個(gè)人認(rèn)為數(shù)據(jù)中臺(tái)本質(zhì)上是一種新的適配大數(shù)據(jù)技術(shù)發(fā)展的新的“數(shù)據(jù)倉庫-決策支持(商業(yè)智能)”架構(gòu)。這個(gè)架構(gòu)是構(gòu)建在傳統(tǒng)的架構(gòu)基礎(chǔ)之上,對(duì)傳統(tǒng)架構(gòu)的一種新的發(fā)展。
數(shù)據(jù)中臺(tái)從企業(yè)的視角出發(fā),要求企業(yè)在構(gòu)建數(shù)據(jù)倉庫到?jīng)Q策支持系統(tǒng)的過程中構(gòu)建一個(gè)服務(wù)型的架構(gòu)。數(shù)據(jù)中臺(tái)希望構(gòu)建在數(shù)據(jù)倉庫基礎(chǔ)上的決策支持系統(tǒng)的建設(shè)能更加迅速敏捷,縮短業(yè)務(wù)需求實(shí)現(xiàn)過程中的數(shù)據(jù)開發(fā)過程的時(shí)間。數(shù)據(jù)中臺(tái)把應(yīng)用的共性需求沉淀在中臺(tái),做厚數(shù)據(jù)服務(wù)層,這樣應(yīng)用前臺(tái)在構(gòu)建的時(shí)候可以大幅度的利用已沉淀在中臺(tái)的各種能力,可以做到快速搭建,形成大中臺(tái)小前臺(tái)的層次架構(gòu)。
1.1. 數(shù)據(jù)倉庫(DW)/商務(wù)智能(BI)/決策支持(DSS)
數(shù)據(jù)倉庫之父比爾·恩門(Bill Inmon)在1991年出版的“Building the Data Warehouse” (《建立數(shù)據(jù)倉庫》)一書中所提出的定義被廣泛接受,數(shù)據(jù)倉庫是一個(gè)面向主題的(Subject Oriented)、集成的(Integrate)、相對(duì)穩(wěn)定的(Non-Volatile)、反映歷史變化(Time Variant)的數(shù)據(jù)集合,用于支持管理決策。
數(shù)據(jù)倉庫是一個(gè)過程而不是一個(gè)項(xiàng)目;數(shù)據(jù)倉庫是一個(gè)環(huán)境,而不是一件產(chǎn)品。數(shù)據(jù)倉庫提供用戶用于決策支持的當(dāng)前和歷史數(shù)據(jù),這些數(shù)據(jù)在傳統(tǒng)的操作型數(shù)據(jù)庫中很難或不能得到。數(shù)據(jù)倉庫技術(shù)是為了有效的把操作形數(shù)據(jù)集成到統(tǒng)一的環(huán)境中以提供決策型數(shù)據(jù)訪問,的各種技術(shù)和模塊的總稱。所做的一切都是為了讓用戶更快更方便查詢所需要的信息,提供決策支持。
商業(yè)智能(Business Intelligence,簡(jiǎn)稱:BI),又稱商業(yè)智慧或商務(wù)智能,指用現(xiàn)代數(shù)據(jù)倉庫技術(shù)、線上分析處理技術(shù)、數(shù)據(jù)挖掘和數(shù)據(jù)展現(xiàn)技術(shù)進(jìn)行數(shù)據(jù)分析以實(shí)現(xiàn)商業(yè)價(jià)值。
決策支持系統(tǒng)(Decision Support System)是一個(gè)基于計(jì)算機(jī)用于支持業(yè)務(wù)或組織決策活動(dòng)的信息系統(tǒng)。 DSS服務(wù)于組織管理、運(yùn)營(yíng)和規(guī)劃管理層(通常是中級(jí)和高級(jí)管理層),并幫助人們對(duì)可能快速變化并且不容易預(yù)測(cè)結(jié)果的問題做出決策。決策支持系統(tǒng)可以全計(jì)算機(jī)化、人力驅(qū)動(dòng)或二者結(jié)合。
從概念上來講,BI與DSS都是一組概念的概括性的總稱,可以有很多定義。從歷史沿革上來說,先有的決策支持系統(tǒng),利用計(jì)算機(jī)來輔助人做決策。后續(xù)商務(wù)智能的發(fā)展,為決策支持提供了數(shù)據(jù)分析預(yù)測(cè)的能力,商務(wù)智能(BI)提供的數(shù)據(jù)分析能力是現(xiàn)代決策支持系統(tǒng)(DSS)的基石。
(概念引用:商務(wù)智能與分析-決策支持系統(tǒng))
1.2. 先賢的一些詞匯與觀點(diǎn)的爭(zhēng)議
數(shù)據(jù)倉庫行業(yè)內(nèi)容的兩位觀點(diǎn)部分相左的先賢,分別是Bill Inmon與Ralph Kimball。
1.2.1. 定義與用詞
在數(shù)據(jù)倉庫支撐的分析型系統(tǒng)的用詞上:
Bill Inmon-數(shù)據(jù)倉庫是體系結(jié)構(gòu)設(shè)計(jì)環(huán)境的核心,是決策支持系統(tǒng)處理的基礎(chǔ)。(The data warehouse is the heart of the architected environment, and is the foundation of all DSS processing. )
Ralph Kimball-數(shù)據(jù)倉庫和商業(yè)智能(Data Warehousing and Business Intelligence, DW/BI)系統(tǒng)
顯然BI與DSS是有區(qū)別的,但是DW無疑是可以支撐BI和DSS。BI是手段是能力,而DSS是BI的目標(biāo)。
在數(shù)據(jù)倉庫的定義上,因?yàn)?strong>Bill Inmon是數(shù)據(jù)倉庫之父,他對(duì)數(shù)據(jù)倉庫的定義獲得了廣泛的認(rèn)可。而Ralph Kimball并未對(duì)數(shù)據(jù)倉庫概念有單獨(dú)的定義,但是從架構(gòu)與實(shí)現(xiàn)上來看,其實(shí)還是有區(qū)別的。
1.2.2. 架構(gòu)設(shè)計(jì)
在數(shù)據(jù)倉庫架構(gòu)的設(shè)計(jì)上:
Bill Inmon - 全局視角,要先構(gòu)建企業(yè)級(jí)數(shù)據(jù)倉庫,然后再基于企業(yè)級(jí)數(shù)據(jù)倉庫之上去構(gòu)建數(shù)據(jù)集市。數(shù)據(jù)的整合是的企業(yè)對(duì)數(shù)據(jù)有一個(gè)真正企業(yè)范圍級(jí)的觀察,業(yè)務(wù)分析人員是從整體而不是局部進(jìn)行數(shù)據(jù)分析。
數(shù)據(jù)倉庫前期的需求是不明確的,業(yè)務(wù)人員是先要看到數(shù)據(jù)再去構(gòu)建探索真實(shí)需求,所以數(shù)據(jù)倉庫是不斷的迭代構(gòu)建。采用3RD模型來構(gòu)建一個(gè)企業(yè)級(jí)的業(yè)務(wù)模型,確保數(shù)據(jù)的完整性與一致性。
Ralph Kimball -需求視角,以業(yè)務(wù)需求驅(qū)動(dòng),面向分析。事實(shí)要構(gòu)建在最細(xì)的粒度上,不同的業(yè)務(wù)需求之間靠一致性維度來確保數(shù)據(jù)的一致性。
- DW/BI架構(gòu)
- 輻射狀企業(yè)信息工廠(CIF)
- 混合輻射狀企業(yè)信息工廠與KimBall架構(gòu)
從上面幾張圖上我們可以看到,之所以在Kimball的書中會(huì)有與Inmon組合的混合架構(gòu),是因?yàn)檫@幾張架構(gòu)圖中的層次基本是一致的。而Kimball架構(gòu)中并未去描述如何去做數(shù)據(jù)的規(guī)范化、完整性、一致性,只是要去做,而Inmon的架構(gòu)中恰好可以實(shí)現(xiàn)這個(gè)部分。對(duì)于后面數(shù)據(jù)展現(xiàn)區(qū)的數(shù)據(jù)模型,又都一致的認(rèn)為是以維度模型來建模。
從實(shí)際構(gòu)建方式上來看,Bill Inmon架構(gòu)強(qiáng)調(diào)數(shù)據(jù)倉庫應(yīng)該是統(tǒng)一構(gòu)建,業(yè)務(wù)模型是企業(yè)級(jí)的。這個(gè)出發(fā)點(diǎn)是更具有宏觀意義,假設(shè)企業(yè)有30個(gè)交易系統(tǒng),建設(shè)的時(shí)候就需要都納入需求分析范圍,然后按需分階段完成企業(yè)級(jí)的數(shù)據(jù)倉庫模型。Ralph Kimball架構(gòu)強(qiáng)調(diào)以業(yè)務(wù)需求為導(dǎo)向,構(gòu)建維度模型,后續(xù)的需求只要確保整個(gè)企業(yè)范圍內(nèi)一致性維度,就可以構(gòu)建更加高效的數(shù)據(jù)倉庫。Ralph Kimball認(rèn)為Bill Inmon的架構(gòu)太過于龐大,可能會(huì)讓企業(yè)投入巨大但是看不到回報(bào)。而Bill Inmon則認(rèn)為維度模型構(gòu)建的數(shù)據(jù)倉庫,很容易變成松散的多個(gè)不一致的數(shù)據(jù)集市。雖然Ralph Kimball也強(qiáng)調(diào)獨(dú)立集市架構(gòu)是不可取的。
其實(shí)綜合實(shí)踐與現(xiàn)實(shí)中數(shù)據(jù)倉庫的案例來看,在以Teradata\IBM\Oracle等公司構(gòu)建的企業(yè)級(jí)的數(shù)據(jù)倉庫架構(gòu),全部都是以Bill Inmon的架構(gòu)來構(gòu)建了一個(gè)3RD的企業(yè)級(jí)的數(shù)據(jù)倉庫模型,并且在一些規(guī)模宏大的銀行、保險(xiǎn)、電信等行業(yè)取得了比較巨大的成功。尤其是國(guó)內(nèi)Teradata的金融模型,幾乎占據(jù)了國(guó)內(nèi)全部的大銀行、保險(xiǎn)機(jī)構(gòu)的市場(chǎng)。而Ralph Kimball的架構(gòu),在銀行、電信、零售電商等行業(yè)也是受到了廣泛的好評(píng)。
這兩種架構(gòu)各有千秋,各有側(cè)重。并且從兩位先賢相互指責(zé)的問題來看,問題都是真實(shí)存在的。Ralph Kimball架構(gòu)雖然強(qiáng)調(diào)不能建設(shè)成獨(dú)立集市架構(gòu),要采用全局一致性維度,但是,業(yè)務(wù)部門分頭建設(shè)且以需求為導(dǎo)向的結(jié)構(gòu),很容易失控就走成獨(dú)立集市架構(gòu)。Bill Inmon的架構(gòu)因?yàn)橛幸粚訑?shù)據(jù)倉庫層,從機(jī)能上就會(huì)去協(xié)調(diào),避免這種情況的產(chǎn)生。但是Bill Inmon的架構(gòu),因?yàn)闃?gòu)建投入巨大,也只是在金融業(yè)獲得了巨大的成功。在一些業(yè)務(wù)相對(duì)簡(jiǎn)單規(guī)模不大的客戶場(chǎng)景中,因?yàn)榻灰仔拖到y(tǒng)本身就是3RD模型,所以,本身并沒有需求再去構(gòu)建一個(gè)數(shù)據(jù)倉庫的3RD模型,ODS系統(tǒng)就基本替代的這一層。
在數(shù)據(jù)集市、數(shù)據(jù)應(yīng)用的分析型場(chǎng)景中,Ralph Kimball與Bill Inmon都應(yīng)該使用維度模型來構(gòu)建。
1.3. 綜合的選擇
從Bill Inmon與Ralph Kimball的書中,我們可以看到兩位先賢的觀點(diǎn)。個(gè)人認(rèn)為在不同的場(chǎng)景可以有不同的選擇,在業(yè)務(wù)復(fù)雜、業(yè)務(wù)變化不頻繁、數(shù)據(jù)倉庫上游的交易型系統(tǒng)特別多、能接受足夠長(zhǎng)時(shí)間大投入的企業(yè)級(jí)數(shù)倉建設(shè)的場(chǎng)景,Inmon的架構(gòu)(或者說是CIF與DW/BI混合架構(gòu))顯然是更好的選擇,這種架構(gòu)更加宏觀,且具有企業(yè)級(jí)視角,只有在這種視角下才能實(shí)現(xiàn)數(shù)據(jù)中臺(tái)的設(shè)計(jì)目標(biāo)。而在業(yè)務(wù)模型簡(jiǎn)單、業(yè)務(wù)變化頻繁、難以接受企業(yè)級(jí)架構(gòu)構(gòu)建的時(shí)間成本的場(chǎng)景,最好使用DW/BI架構(gòu)。
如果可以放眼眼前的數(shù)據(jù)倉庫的案例,就會(huì)發(fā)現(xiàn)這是一種比較現(xiàn)實(shí)的選擇。