看了很多數(shù)據(jù)倉庫方面的資料,都涉及到了“數(shù)據(jù)集市”這一說法,剛開始對數(shù)據(jù)倉庫和數(shù)據(jù)集市的區(qū)別也理解得比較膚淺,現(xiàn)在做個(gè)深入的歸納和總結(jié),主要從如下幾個(gè)方面進(jìn)行闡述:
(1)?基本概念
(2)?為什么提出數(shù)據(jù)集市
(3)?數(shù)據(jù)倉庫設(shè)計(jì)方法論
(4)?數(shù)據(jù)集市和數(shù)據(jù)倉庫的區(qū)別
(5)?倉庫建模與集市建模
(6)?案例分析:電信CRM數(shù)據(jù)倉庫
Bill Inmon說過一句話叫“IT經(jīng)理們面對最重要的問題就是到底先建立數(shù)據(jù)倉庫還是先建立數(shù)據(jù)集市”,足以說明搞清楚這兩者之間的關(guān)系是十分重要而迫切的!通常在考慮建立數(shù)據(jù)倉庫之前,會(huì)涉及到如下一些問題:
(1)?采取自上而下還是自下而上的設(shè)計(jì)方法
(2)?企業(yè)范圍還是部門范圍
(3)?先建立數(shù)據(jù)倉庫還是數(shù)據(jù)集市
(4)?建立領(lǐng)航系統(tǒng)還是直接實(shí)施
(5)?數(shù)據(jù)集市是否相互獨(dú)立
?
一、基本概念
數(shù)據(jù)倉庫一詞尚沒有一個(gè)統(tǒng)一的定義,著名的數(shù)據(jù)倉庫專家W. H. Inmon 在其著作《Buildingthe Data Warehouse》一書中給予如下描述:數(shù)據(jù)倉庫(Data Warehouse) 是一個(gè)面向主題的(SubjectOri2ented) 、集成的( Integrate ) 、相對穩(wěn)定的(Non -Volatile ) 、反映歷史變化( TimeVariant) 的數(shù)據(jù)集合用于支持管理決策。對于數(shù)據(jù)倉庫的概念我們可以從兩個(gè)層次予以理解,首先,數(shù)據(jù)倉庫用于支持決策,面向分析型數(shù)據(jù)處理,它不同于企業(yè)現(xiàn)有的操作型數(shù)據(jù)庫;其次,數(shù)據(jù)倉庫是對多個(gè)異構(gòu)的數(shù)據(jù)源有效集成,集成后按照主題進(jìn)行了重組,并包含歷史數(shù)據(jù),而且存放在數(shù)據(jù)倉庫中的數(shù)據(jù)一般不再修改。
為最大限度地實(shí)現(xiàn)靈活性,集成的數(shù)據(jù)倉庫的數(shù)據(jù)應(yīng)該存儲(chǔ)在標(biāo)準(zhǔn)RDBMS 中,并經(jīng)過規(guī)范的數(shù)據(jù)庫設(shè)計(jì),以及為了提高性能而增加一些小結(jié)性信息和不規(guī)范設(shè)計(jì)。這種類型的數(shù)據(jù)倉庫設(shè)計(jì)被稱為原子數(shù)據(jù)倉庫。原子數(shù)據(jù)倉庫的子集,又稱為數(shù)據(jù)集市。原子倉庫存在的主要目的是作為數(shù)據(jù)集市的工作基礎(chǔ),同時(shí)也作為參照性數(shù)據(jù)倉庫。原子倉庫的大小、集中存放和數(shù)據(jù)庫設(shè)計(jì)可能無法滿足特殊類型用戶的各種需求。其子集,即各個(gè)數(shù)據(jù)集市被拷貝到其它計(jì)算機(jī)上,可作為它們自己的數(shù)據(jù)倉庫。數(shù)據(jù)集市可以和產(chǎn)生它們的原子數(shù)據(jù)倉庫一樣大,甚至更大。它們可以位于原子數(shù)據(jù)倉庫的附近,或分布到更靠近用戶的位置,放置在何處取決于使用和通訊成本。數(shù)據(jù)集市是用來滿足特殊用戶的應(yīng)用需求的數(shù)據(jù)倉庫,它們的規(guī)模可能達(dá)到數(shù)百GB。使其成為數(shù)據(jù)集市的關(guān)鍵是它的使用目標(biāo)、范圍,而非規(guī)模大小。
數(shù)據(jù)集市可以理解為是一個(gè)小型的部門或者工作組級別的數(shù)據(jù)倉庫。有兩種類型的數(shù)據(jù)集市(如下圖):
?
獨(dú)立型(直接從操作型環(huán)境中獲取數(shù)據(jù)):這些數(shù)據(jù)集市是由特定的工作組、部門或業(yè)務(wù)線進(jìn)行控制的,完全是為滿足其需求而構(gòu)建的。實(shí)際上,它們甚至與其他工作組、部門或業(yè)務(wù)線中的數(shù)據(jù)集市沒有任何連通性
從屬型(從企業(yè)級數(shù)據(jù)倉庫中獲取數(shù)據(jù)):這樣的數(shù)據(jù)集市往往以分布式的方式實(shí)現(xiàn)。雖然不同的數(shù)據(jù)集市是在特定的工作組、部門或生產(chǎn)線中實(shí)現(xiàn)的,但它們可以是集成、互連的,以提供更加全局的業(yè)務(wù)范圍的數(shù)據(jù)視圖。實(shí)際上,在最高的集成層次上,它們可以成為業(yè)務(wù)范圍的數(shù)據(jù)倉庫。這意味著一個(gè)部門中的終端用戶可以訪問和使用另一部門中數(shù)據(jù)集市中的數(shù)據(jù)
?
二、為什么提出數(shù)據(jù)集市
雖然 OLTP 和遺留系統(tǒng)擁有寶貴的信息,但是可能難以從這些系統(tǒng)中提取有意義的信息并且速度也較慢。而且這些系統(tǒng)雖然一般可支持預(yù)先定義操作的報(bào)表,但卻經(jīng)常無法支持一個(gè)組織對于歷史的、聯(lián)合的、智能的或易于訪問的信息的需求。因?yàn)閿?shù)據(jù)分布在許多跨系統(tǒng)和平臺(tái)的表中,而且通常是“臟的”,包含了不一致的和無效的值,使得難于分析。
數(shù)據(jù)集市將合并不同系統(tǒng)的數(shù)據(jù)源來滿足業(yè)務(wù)信息需求。若能有效地得以實(shí)現(xiàn),數(shù)據(jù)集市將可以快速且方便地訪問簡單信息以及系統(tǒng)的和歷史的視圖。一個(gè)設(shè)計(jì)良好的數(shù)據(jù)集市有如下特點(diǎn)(有些特點(diǎn)數(shù)據(jù)倉庫也具有,有些特點(diǎn)是相對于數(shù)據(jù)倉庫來講的):
(1)?特定用戶群體所需的信息,通常是一個(gè)部門或者一個(gè)特定組織的用戶,且無需受制于源系統(tǒng)的大量需求和操作性危機(jī)(想對于數(shù)據(jù)倉庫)。
(2)?支持訪問非易變(nonvolatile)的業(yè)務(wù)信息。(非易變的信息是以預(yù)定的時(shí)間間隔進(jìn)行更新的,并且不受 OLTP 系統(tǒng)進(jìn)行中的更新的影響。)
(3)?調(diào)和來自于組織里多個(gè)運(yùn)行系統(tǒng)的信息,比如賬目、銷售、庫存和客戶管理以及組織外部的行業(yè)數(shù)據(jù)。
(4)?通過默認(rèn)有效值、使各系統(tǒng)的值保持一致以及添加描述以使隱含代碼有意義,從而提供凈化的(cleansed)數(shù)據(jù)。
(5)?為即席分析和預(yù)定義報(bào)表提供合理的查詢響應(yīng)時(shí)間(由于數(shù)據(jù)集市是部門級的,相對于龐大的數(shù)據(jù)倉庫來講,其查詢和分析的響應(yīng)時(shí)間會(huì)大大縮短)。
三、數(shù)據(jù)倉庫設(shè)計(jì)方法論
在數(shù)據(jù)倉庫建立之前,會(huì)考慮其實(shí)現(xiàn)方法,通常有自頂向下、自底向上和兩者綜合進(jìn)行的這樣三種實(shí)現(xiàn)方案,下面分別對其做簡要闡述:
(1)自頂向下的實(shí)現(xiàn)
自頂向下的方法就是在單個(gè)項(xiàng)目階段中實(shí)現(xiàn)數(shù)據(jù)倉庫。自頂向下的實(shí)現(xiàn)需要在項(xiàng)目開始時(shí)完成更多計(jì)劃和設(shè)計(jì)工作。這就需要涉及參與數(shù)據(jù)倉庫實(shí)現(xiàn)的每個(gè)工作組、部門或業(yè)務(wù)線中的人員。要使用的數(shù)據(jù)源、安全性、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)質(zhì)量、數(shù)據(jù)標(biāo)準(zhǔn)和整個(gè)數(shù)據(jù)模型的有關(guān)決策一般需要在真正的實(shí)現(xiàn)開始之前就完成。
(2)自底向上的實(shí)現(xiàn)
自底向上的實(shí)現(xiàn)包含數(shù)據(jù)倉庫的計(jì)劃和設(shè)計(jì),無需等待安置好更大業(yè)務(wù)范圍的數(shù)據(jù)倉庫設(shè)計(jì)。這并不意味著不會(huì)開發(fā)更大業(yè)務(wù)范圍的數(shù)據(jù)倉庫設(shè)計(jì);隨著初始數(shù)據(jù)倉庫實(shí)現(xiàn)的擴(kuò)展,將逐漸增加對它的構(gòu)建。現(xiàn)在,該方法得到了比自頂向下方法更廣泛的接受,因?yàn)閿?shù)據(jù)倉庫的直接結(jié)果可以實(shí)現(xiàn),并可以用作擴(kuò)展更大業(yè)務(wù)范圍實(shí)現(xiàn)的證明。
(3)一種折中方案
每種實(shí)現(xiàn)方法都有利弊。在許多情況下,最好的方法可能是某兩種的組合。該方法的關(guān)鍵之一就是確定業(yè)務(wù)范圍的架構(gòu)需要用于支持集成的計(jì)劃和設(shè)計(jì)的程度,因?yàn)閿?shù)據(jù)倉庫是用自底向上的方法進(jìn)行構(gòu)建。在使用自底向上或階段性數(shù)據(jù)倉庫項(xiàng)目模型來構(gòu)建業(yè)務(wù)范圍架構(gòu)中的一系列數(shù)據(jù)集市時(shí),您可以一個(gè)接一個(gè)地集成不同業(yè)務(wù)主題領(lǐng)域中的數(shù)據(jù)集市,從而形成設(shè)計(jì)良好的業(yè)務(wù)數(shù)據(jù)倉庫。這樣的方法可以極好地適用于業(yè)務(wù)。在這種方法中,可以把數(shù)據(jù)集市理解為整個(gè)數(shù)據(jù)倉庫系統(tǒng)的邏輯子集,換句話說數(shù)據(jù)倉庫就是一致化了的數(shù)據(jù)集市的集合。這種方案的實(shí)施步驟通常分如下幾步:
(6)?從整個(gè)企業(yè)的角度定義計(jì)劃和需求
(7)?構(gòu)建完整的倉庫體系結(jié)構(gòu)
(8)?使數(shù)據(jù)內(nèi)容一致而且標(biāo)準(zhǔn)化
(9)?將數(shù)據(jù)倉庫作為一種超級數(shù)據(jù)集市來實(shí)施
關(guān)于Inmon 和 Kimball的大辯論:
Ralph Kimball 和 Bill Inmon 一直是商業(yè)智能領(lǐng)域中的革新者,開發(fā)并測試了新的技術(shù)和體系結(jié)構(gòu)。
Bill Inmon 將數(shù)據(jù)倉庫定義為“一個(gè)面向主題的、集成的、隨時(shí)間變化的、非易變的用于支持管理的決策過程的數(shù)據(jù)集合”;他通過“面向主題”表示應(yīng)該圍繞主題來組織數(shù)據(jù)倉庫中的數(shù)據(jù),例如客戶、銷售、產(chǎn)品等等。每個(gè)主題區(qū)域僅僅包含該主題相關(guān)的信息。數(shù)據(jù)倉庫應(yīng)該一次增加一個(gè)主題,并且當(dāng)需要容易地訪問多個(gè)主題時(shí),應(yīng)該創(chuàng)建以數(shù)據(jù)倉庫為來源的數(shù)據(jù)集市。換言之,某個(gè)特定數(shù)據(jù)集市中的所有數(shù)據(jù)都應(yīng)該來自于面向主題的數(shù)據(jù)存儲(chǔ)。 Inmon 的方法包含了更多上述工作而減少了對于信息的初始訪問。但他認(rèn)為這個(gè)集中式的體系結(jié)構(gòu)持續(xù)下去將提供更強(qiáng)的一致性和靈活性,并且從長遠(yuǎn)來看將真正節(jié)省資源和工作。下圖是他的設(shè)計(jì)方法圖解:
?
Ralph Kimball 說“數(shù)據(jù)倉庫僅僅是構(gòu)成它的數(shù)據(jù)集市的聯(lián)合”,他認(rèn)為“可以通過一系列維數(shù)相同的數(shù)據(jù)集市遞增地構(gòu)建數(shù)據(jù)倉庫”。每個(gè)數(shù)據(jù)集市將聯(lián)合多個(gè)數(shù)據(jù)源來滿足特定的業(yè)務(wù)需求。通過使用“一致的”維,能夠共同看到不同數(shù)據(jù)集市中的信息,這表示它們擁有公共定義的元素。設(shè)計(jì)方法如下圖:
?
?? Kimball 的方法將提供集成的數(shù)據(jù)來回答組織迫切的業(yè)務(wù)問題并且要快于 Inmon 的方法。Inmon 的方法是只有在構(gòu)建幾個(gè)單主題區(qū)域之后,集中式的數(shù)據(jù)倉庫才創(chuàng)建數(shù)據(jù)集市。而 Kimball 認(rèn)為該方法缺乏靈活性并且在現(xiàn)在的商業(yè)環(huán)境中所花時(shí)間太長。
實(shí)際上,方法的選擇取決于項(xiàng)目的主要商業(yè)驅(qū)動(dòng)。如果該組織正忍受糟糕的數(shù)據(jù)管理和不一致的數(shù)據(jù),或者希望為今后打下良好的基礎(chǔ),那么 Inmon 的方法就更好一些。 如果該組織迫切需要給用戶提供信息,那么 Kimball 的方法將滿足該需求。而一旦滿足了迫切的信息需求后,就應(yīng)該考慮包含獨(dú)立數(shù)據(jù)倉庫的數(shù)據(jù)體系結(jié)構(gòu)的轉(zhuǎn)換計(jì)劃。數(shù)據(jù)倉庫將使數(shù)據(jù)集市與遺留系統(tǒng)和 OLTP 系統(tǒng)隔離,并且支持更快地創(chuàng)建將來的數(shù)據(jù)集市。由于數(shù)據(jù)倉庫在整個(gè)發(fā)展中一直承擔(dān)了重任,所以它將支持極力關(guān)注數(shù)據(jù)集市。實(shí)際上基于商業(yè)驅(qū)動(dòng)的需要,采用上面三種設(shè)計(jì)方案中的最后一種方法:自頂向下和自底向上綜合的方案會(huì)很好的適應(yīng)數(shù)據(jù)倉庫建立過程中的不同需求。
四、數(shù)據(jù)倉庫與數(shù)據(jù)集市的區(qū)別
數(shù)據(jù)倉庫是企業(yè)級的,能為整個(gè)企業(yè)各個(gè)部門的運(yùn)行提供決策支持手段;而數(shù)據(jù)集市則是一種微型的數(shù)據(jù)倉庫,它通常有更少的數(shù)據(jù),更少的主題區(qū)域,以及更少的歷史數(shù)據(jù),因此是部門級的,一般只能為某個(gè)局部范圍內(nèi)的管理人員服務(wù),因此也稱之為部門級數(shù)據(jù)倉庫。數(shù)據(jù)倉庫和數(shù)據(jù)集市之間的區(qū)別如下圖:
數(shù)據(jù)倉庫和數(shù)據(jù)集市的區(qū)別可從如下三個(gè)方面進(jìn)行理解:
(1)?數(shù)據(jù)倉庫向各個(gè)數(shù)據(jù)集市提供數(shù)據(jù)
(2)?幾個(gè)部門的數(shù)據(jù)集市組成一個(gè)數(shù)據(jù)倉庫
?
(3) 下面從其數(shù)據(jù)內(nèi)容特征進(jìn)行分析,數(shù)據(jù)倉庫中數(shù)據(jù)結(jié)構(gòu)采用規(guī)范化模式,數(shù)據(jù)集市中的數(shù)據(jù)結(jié)構(gòu)采用星型模式,通常倉庫中數(shù)據(jù)粒度比集市的粒度要細(xì),下圖反映了數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)內(nèi)容特征的區(qū)別
?

?
五、數(shù)據(jù)倉庫建模與數(shù)據(jù)集市建模
數(shù)據(jù)只是所有業(yè)務(wù)活動(dòng)、資源以及企業(yè)結(jié)果的記錄。數(shù)據(jù)模型是對那些數(shù)據(jù)的組織良好的抽象,因此數(shù)據(jù)模型成為理解和管理企業(yè)業(yè)務(wù)的最佳方法是極其自然的。數(shù)據(jù)模型起到了指導(dǎo)或計(jì)劃數(shù)據(jù)倉庫的實(shí)現(xiàn)的作用。在真正的實(shí)現(xiàn)開始之前,聯(lián)合每個(gè)業(yè)務(wù)領(lǐng)域的數(shù)據(jù)模型可以幫助確保其結(jié)果是有效的數(shù)據(jù)倉庫,并且可以幫助減少實(shí)現(xiàn)的成本。
(1)數(shù)據(jù)倉庫的建模
數(shù)據(jù)倉庫數(shù)據(jù)的建模是將需求轉(zhuǎn)換成圖畫以及支持表示那些需求的元數(shù)據(jù)的過程。出于易讀性目的,本文將關(guān)于需求和建模的討論相分離,但實(shí)際上這些步驟通常是重疊的。一旦在文檔中記錄一些初始需求,初始模型就開始成型。隨著需求變得更加完整,模型也會(huì)如此。
最重要的是向終端用戶提供良好集成并易于解釋的數(shù)據(jù)倉庫的邏輯模型。這些邏輯模型是數(shù)據(jù)倉庫元數(shù)據(jù)的核心之一。為終端用戶提供的簡單性以及歷史數(shù)據(jù)的集成和聯(lián)合是建模方法應(yīng)該幫助提供的關(guān)鍵原則。
(2)數(shù)據(jù)集市的數(shù)據(jù)建模
因?yàn)閭}庫終端用戶直接與數(shù)據(jù)集市進(jìn)行交互,所以數(shù)據(jù)集市的建模是捕獲終端用戶業(yè)務(wù)需求的最有效工具之一。數(shù)據(jù)集市的建模過程取決于許多因素。下面描述了三個(gè)最重要的:
數(shù)據(jù)集市的建模是終端用戶驅(qū)動(dòng)的。終端用戶必須參與數(shù)據(jù)集市的建模過程,因?yàn)樗麄冿@然是要使用該數(shù)據(jù)集市的人。因?yàn)槟鷳?yīng)期望終端用戶完全不熟悉復(fù)雜的數(shù)據(jù)模型,所以應(yīng)該將建模技術(shù)和建模過程作為整體進(jìn)行組織,以便使復(fù)雜性對終端用戶透明。
數(shù)據(jù)集市的建模是由業(yè)務(wù)需求驅(qū)動(dòng)的。數(shù)據(jù)集市模型對于捕獲業(yè)務(wù)需求十分有用,因?yàn)樗鼈兺ǔS山K端用戶直接使用,且易于理解。
數(shù)據(jù)集市的建模極大地受到了數(shù)據(jù)分析技術(shù)的影響。數(shù)據(jù)分析技術(shù)可以影響所選擇的數(shù)據(jù)模型的類型及其內(nèi)容。目前,有幾種常用的數(shù)據(jù)分析技術(shù):查詢和報(bào)表制作、多維分析以及數(shù)據(jù)挖掘。
如果僅僅意圖提供查詢和報(bào)表制作功能,那么帶有正規(guī)(normalized)或非正規(guī)(denormalized)數(shù)據(jù)結(jié)構(gòu)的 ER 模型就是最合適的。維度數(shù)據(jù)模型也可能是較好的選擇,因?yàn)樗怯脩粲押玫模⒕哂懈玫男阅堋H绻淠繕?biāo)是執(zhí)行多維數(shù)據(jù)分析,那么維度數(shù)據(jù)模型就是這里的惟一選擇。然而,數(shù)據(jù)挖掘通常在可用的最低細(xì)節(jié)級(level of detail)工作得最好。因此,如果數(shù)據(jù)倉庫是用于數(shù)據(jù)挖掘的,就應(yīng)該在模型中包含較低細(xì)節(jié)級(level of detail)的數(shù)據(jù)。
凡是有該標(biāo)志的文章,都是該blog博主Caoer(草兒)原創(chuàng),凡是索引、收藏
、轉(zhuǎn)載請注明來處和原文作者。非常感謝。