帶有ODS的體系結(jié)構(gòu)中數(shù)據(jù)倉庫的設(shè)計(jì)方法
在數(shù)據(jù)倉庫的設(shè)計(jì)指導(dǎo)思想中,數(shù)據(jù)倉庫的概念定義是非常重要的,數(shù)據(jù)倉庫概念規(guī)定了數(shù)據(jù)倉庫所具有的幾個(gè)基本特性,這些特性也正是對(duì)數(shù)據(jù)倉庫設(shè)計(jì)結(jié)果進(jìn)行檢驗(yàn)的重要依據(jù)。
根據(jù)Bill.Inmon的定義,“數(shù)據(jù)倉庫是面向主題的、集成的、穩(wěn)定的、隨時(shí)間變化的,主要用于決策支持的數(shù)據(jù)庫系統(tǒng)”。
ODS(Operational Data Store)是數(shù)據(jù)倉庫體系結(jié)構(gòu)中的一個(gè)可選部分,ODS具備數(shù)據(jù)倉庫的部分特征和OLTP系統(tǒng)的部分特征,它是“面向主題的、集成的、當(dāng)前或接近當(dāng)前的、不斷變化的”數(shù)據(jù)。
一般在帶有ODS的系統(tǒng)體系結(jié)構(gòu)中,ODS都設(shè)計(jì)為如下幾個(gè)作用:
1.在業(yè)務(wù)系統(tǒng)和數(shù)據(jù)倉庫之間形成一個(gè)隔離層
一般的數(shù)據(jù)倉庫應(yīng)用系統(tǒng)都具有非常復(fù)雜的數(shù)據(jù)來源,這些數(shù)據(jù)存放在不同的地理位置、不同的數(shù)據(jù)庫、不同的應(yīng)用之中,從這些業(yè)務(wù)系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行抽取并不是一件容易的事。因此,ODS用于存放從業(yè)務(wù)系統(tǒng)直接抽取出來的數(shù)據(jù),這些數(shù)據(jù)從數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)之間的邏輯關(guān)系上都與業(yè)務(wù)系統(tǒng)基本保持一致,因此在抽取過程中極大降低了數(shù)據(jù)轉(zhuǎn)化的復(fù)雜性,而主要關(guān)注數(shù)據(jù)抽取的接口、數(shù)據(jù)量大小、抽取方式等方面的問題。
2.轉(zhuǎn)移一部分業(yè)務(wù)系統(tǒng)細(xì)節(jié)查詢的功能
在數(shù)據(jù)倉庫建立之前,大量的報(bào)表、分析是由業(yè)務(wù)系統(tǒng)直接支持的,在一些比較復(fù)雜的報(bào)表生成過程中,對(duì)業(yè)務(wù)系統(tǒng)的運(yùn)行產(chǎn)生相當(dāng)大的壓力。ODS的數(shù)據(jù)從粒度、組織方式等各個(gè)方面都保持了與業(yè)務(wù)系統(tǒng)的一致,那么原來由業(yè)務(wù)系統(tǒng)產(chǎn)生的報(bào)表、細(xì)節(jié)數(shù)據(jù)的查詢自然能夠從ODS中進(jìn)行,從而降低業(yè)務(wù)系統(tǒng)的查詢壓力。
3.完成數(shù)據(jù)倉庫中不能完成的一些功能
一般來說,帶有ODS的數(shù)據(jù)倉庫體系結(jié)構(gòu)中,DW層所存儲(chǔ)的數(shù)據(jù)都是進(jìn)行匯總過的數(shù)據(jù),并不存儲(chǔ)每筆交易產(chǎn)生的細(xì)節(jié)數(shù)據(jù),但是在某些特殊的應(yīng)用中,可能需要對(duì)交易細(xì)節(jié)數(shù)據(jù)進(jìn)行查詢,這時(shí)就需要把細(xì)節(jié)數(shù)據(jù)查詢的功能轉(zhuǎn)移到ODS來完成,而且ODS的數(shù)據(jù)模型按照面向主題的方式進(jìn)行存儲(chǔ),可以方便地支持多維分析等查詢功能文章來源:中國公務(wù)網(wǎng) 2005-6-20 1:51:55。
在一個(gè)沒有ODS層的數(shù)據(jù)倉庫應(yīng)用系統(tǒng)體系結(jié)構(gòu)中,數(shù)據(jù)倉庫中存儲(chǔ)的數(shù)據(jù)粒度是根據(jù)需要而確定的,但一般來說,最為細(xì)節(jié)的業(yè)務(wù)數(shù)據(jù)也是需要保留的,實(shí)際上也就相當(dāng)于ODS,但與ODS所不同的是,這時(shí)的細(xì)節(jié)數(shù)據(jù)不是“當(dāng)前、不斷變化的”數(shù)據(jù),而是“歷史的,不再變化的”數(shù)據(jù)。
設(shè)計(jì)方法
在數(shù)據(jù)倉庫設(shè)計(jì)方法和信息模型建模方法中,前人的著作對(duì)各種思路和方法都做過大量的研究和對(duì)比,重點(diǎn)集中在ER模型和維模型的比較和應(yīng)用上。根據(jù)我們的實(shí)踐經(jīng)驗(yàn),ER模型和維模型在數(shù)據(jù)倉庫設(shè)計(jì)中并非絕對(duì)對(duì)立,尤其在ODS設(shè)計(jì)上,從宏觀的角度來看數(shù)據(jù)之間的關(guān)系,以ER模型最為清晰,但從實(shí)現(xiàn)出來的數(shù)據(jù)結(jié)構(gòu)上看,用維模型更加符合實(shí)際的需要。因此孤立地看ER模型或者維模型都缺乏科學(xué)客觀的精神,需要從具體應(yīng)用上去考慮如何應(yīng)用不同的設(shè)計(jì)方法,但目標(biāo)是一定的,就是要能夠把企業(yè)的數(shù)據(jù)從宏觀到微觀能夠清晰表達(dá),并且能夠?qū)崿F(xiàn)出來。
本文中重點(diǎn)介紹維模型的應(yīng)用。
#p#
ODS設(shè)計(jì)指南
在ODS的概念定義中,已經(jīng)描述了ODS的功能和特點(diǎn),實(shí)際上ODS設(shè)計(jì)的目標(biāo)就是以這些特點(diǎn)作為依據(jù)的。ODS設(shè)計(jì)與DW設(shè)計(jì)在著眼點(diǎn)上有所不同,ODS重點(diǎn)考慮業(yè)務(wù)系統(tǒng)數(shù)據(jù)是什么樣子的,關(guān)系如何,在業(yè)務(wù)流程處理的哪個(gè)環(huán)節(jié),以及數(shù)據(jù)抽取接口等問題。
***步:數(shù)據(jù)調(diào)研
有關(guān)數(shù)據(jù)調(diào)研的內(nèi)容和要求,在《調(diào)研規(guī)范》文檔中做了詳細(xì)定義,此處不再重復(fù)。
第二步:確定數(shù)據(jù)范圍
確定數(shù)據(jù)范圍實(shí)際上是對(duì)ODS進(jìn)行主題劃分的過程,這種劃分是基于對(duì)業(yè)務(wù)系統(tǒng)的調(diào)研的基礎(chǔ)上而進(jìn)行的,并不十分關(guān)心整個(gè)數(shù)據(jù)倉庫系統(tǒng)上端應(yīng)用需求,但是需要把上端應(yīng)用需求與ODS數(shù)據(jù)范圍進(jìn)行驗(yàn)證,以確保應(yīng)用所需的數(shù)據(jù)都已經(jīng)從業(yè)務(wù)系統(tǒng)中抽取出來,并且得到了很好的組織。一般來講,主題的劃分是以業(yè)務(wù)系統(tǒng)的信息模型為依據(jù)的,設(shè)計(jì)者需要綜合各種業(yè)務(wù)系統(tǒng)的信息模型,并進(jìn)行宏觀的歸并,得到企業(yè)范圍內(nèi)的高層數(shù)據(jù)視圖,并加以抽象,劃定幾個(gè)邏輯的數(shù)據(jù)主題范圍。在這個(gè)階段,以ER模型表示數(shù)據(jù)主題關(guān)系最為恰當(dāng)。
第三步:根據(jù)數(shù)據(jù)范圍進(jìn)行進(jìn)一步的數(shù)據(jù)分析和主題定義
在***步中定義出來了企業(yè)范圍內(nèi)的高層數(shù)據(jù)視圖,以及所收集到的各種業(yè)務(wù)系統(tǒng)的資料,在這一步中,需要對(duì)大的數(shù)據(jù)主題進(jìn)行分解,并進(jìn)行主題定義,直到每個(gè)主題能夠直接對(duì)應(yīng)一個(gè)主題數(shù)據(jù)模型為止。在這個(gè)階段,將把***步生成的每個(gè)ER圖中的實(shí)體進(jìn)行分解,分解的結(jié)果仍以ER表示為佳。
第四步:定義主題元素
定義維、度量、主題、粒度、存儲(chǔ)期限
定義維的概念特性:
維名稱:名稱應(yīng)該能夠清晰表示出這個(gè)維的業(yè)務(wù)含義;
維成員:也就是這個(gè)維所代表的具體的數(shù)據(jù);
維層次:維成員之間的隸屬與包含的層次關(guān)系,每個(gè)層次需要定義名稱。
定義度量的概念特性:
度量名稱:名稱應(yīng)該能夠清晰標(biāo)書這個(gè)度量的業(yè)務(wù)含義。
定義主題的概念特性:
主題名稱和含義:說明該主題主要包含哪些數(shù)據(jù),用于什么分析;
主題所包含的維和度量;
主題的事實(shí)表,以及事實(shí)表的數(shù)據(jù)。
定義粒度:
主題中事實(shí)表的數(shù)據(jù)粒度說明,這種粒度可以通過對(duì)維的層次限制加以說明,也可以通過對(duì)事實(shí)表數(shù)據(jù)的業(yè)務(wù)細(xì)節(jié)程度進(jìn)行說明。
定義存儲(chǔ)期限:
主題中事實(shí)表中的數(shù)據(jù)存儲(chǔ)周期。
第五步:迭代,歸并維、度量的定義
在ODS中,因數(shù)據(jù)來自于多個(gè)系統(tǒng),數(shù)據(jù)主題劃分時(shí)雖然對(duì)數(shù)據(jù)概念進(jìn)行了一定程度上的歸并,但具體的業(yè)務(wù)代碼所形成的各個(gè)維、以及維成員等還需要進(jìn)一步進(jìn)行歸并,把概念統(tǒng)一的維定義成一個(gè)維,不允許同一個(gè)維存在不同的實(shí)體表示(象不同的業(yè)務(wù)系統(tǒng)中一樣)。
第六步:物理實(shí)現(xiàn)
定義每個(gè)主題的數(shù)據(jù)抽取周期、抽取時(shí)間、抽取方式、數(shù)據(jù)接口,抽取流程和規(guī)則。
物理設(shè)計(jì)不僅僅是ODS部分的數(shù)據(jù)庫物理實(shí)現(xiàn),設(shè)計(jì)數(shù)據(jù)庫參數(shù)、操作系統(tǒng)參數(shù)、數(shù)據(jù)存儲(chǔ)設(shè)計(jì)之外,有關(guān)數(shù)據(jù)抽取接口等問題必須清晰定義。
#p#
DW設(shè)計(jì)指南
盡管我們看到過很多關(guān)于“不考慮應(yīng)用,先建立數(shù)據(jù)平臺(tái)”的說法,但建立一個(gè)“***的”東西是不可能的,所以數(shù)據(jù)倉庫的設(shè)計(jì)必須參照應(yīng)用范圍、應(yīng)用類型,例如要考慮到系統(tǒng)用于報(bào)表、OLAP、數(shù)據(jù)挖掘的哪些模型等等,不同的應(yīng)用對(duì)數(shù)據(jù)倉庫的設(shè)計(jì)有不同的要求。
數(shù)據(jù)倉庫是面向主題的、集成的、穩(wěn)定的、隨時(shí)間變化的數(shù)據(jù),數(shù)據(jù)倉庫的這幾個(gè)特征的含義在這里不具體多介紹,但本人要說明如何實(shí)現(xiàn)這些特性。
在數(shù)據(jù)倉庫的設(shè)計(jì)中時(shí)刻不能忘記的幾個(gè)問題列舉如下:
1.數(shù)據(jù)粒度和數(shù)據(jù)組織
在數(shù)據(jù)倉庫的每個(gè)主題,都必須知道這個(gè)主題所限定的維的層次、事實(shí)數(shù)據(jù)的粒度;事實(shí)數(shù)據(jù)存儲(chǔ)的期限,“過期”的數(shù)據(jù)的處理方法。
2.維和度量的唯一性和公用性
千萬不要在不同的主題中定義多個(gè)表示同一內(nèi)容的維,尤其對(duì)于業(yè)務(wù)代碼類型的維,如果一個(gè)業(yè)務(wù)代碼形成了多個(gè)維表,那么在元數(shù)據(jù)維護(hù)過程中將困難重重GongWu.Com.Cn 2005-6-20 1:51:55。在整個(gè)系統(tǒng)范圍內(nèi),要不斷檢視維定義是否唯一,如果有可能,一個(gè)維表要盡量被多個(gè)主題引用。
3.數(shù)據(jù)粒度一旦變粗,就要考慮多個(gè)主題的融合匯總
在數(shù)據(jù)倉庫中,我們出于數(shù)據(jù)組織的規(guī)則、業(yè)務(wù)的要求、性能的要求,都可能對(duì)一個(gè)主題的事實(shí)數(shù)據(jù)進(jìn)行匯總,形成粒度較粗的事實(shí)數(shù)據(jù),但這時(shí)候我們往往忘記了粒度變粗的事實(shí)數(shù)據(jù)為最終的用戶提供了更宏觀的數(shù)據(jù)視圖,這種宏觀的數(shù)據(jù)視圖當(dāng)然需要進(jìn)行跨主題的數(shù)據(jù)融合才能更加具有應(yīng)用的價(jià)值。
4.不論如何歸并,需要保持?jǐn)?shù)據(jù)之間的聯(lián)系
在數(shù)據(jù)倉庫中,不同主題的數(shù)據(jù)之間的物理約束或許不再存在,但無論這些數(shù)據(jù)如何變化,要知道必須有一些“鍵”在邏輯上保持著不同數(shù)據(jù)之間的聯(lián)系,這樣就可以保證有聯(lián)系的主題數(shù)據(jù)之間可以進(jìn)行匯總以支持未知的應(yīng)用,否則數(shù)據(jù)倉庫的數(shù)據(jù)是一潭死水,不可能靈活支持各種應(yīng)用的。
數(shù)據(jù)倉庫設(shè)計(jì)可以自底向上地進(jìn)行,也就是說從匯總ODS數(shù)據(jù)入手,逐漸過渡到應(yīng)用主題上面去(也就是說,ODS里面的數(shù)據(jù)主題域與DW中的分析主題完全不是一回事)。我們?nèi)匀话床烤桶嗟刂痦?xiàng)設(shè)計(jì),這樣并不是完全限定設(shè)計(jì)思路和步驟,但可以有效地提醒設(shè)計(jì)者有哪些事情要做。
***步:對(duì)ODS中的各個(gè)主題的事實(shí)數(shù)據(jù)進(jìn)行時(shí)間上的匯總
ODS的事實(shí)數(shù)據(jù)是純細(xì)節(jié)的交易數(shù)據(jù),進(jìn)入ODS的***步就是要按照時(shí)間維進(jìn)行匯總,以實(shí)現(xiàn)初步的信息沉淀。這種匯總不是只進(jìn)行一次,而是要制定下來匯總的級(jí)別,比如日匯總信息保留3個(gè)月,月匯總信息保留2年,年匯總信息長(zhǎng)期保存(當(dāng)然在時(shí)間粒度變粗的同時(shí)一般都伴隨著其他維粒度的變粗或者舍棄),我們最終一定要定義到何種程度的數(shù)據(jù)可以在數(shù)據(jù)倉庫中***保存為止的地步。
第二步:按照業(yè)務(wù)邏輯的規(guī)則,對(duì)數(shù)據(jù)進(jìn)行歸并
把ODS中不同主題中的表示相同業(yè)務(wù)的數(shù)據(jù)(來自不同的業(yè)務(wù)系統(tǒng))進(jìn)行歸并,例如一般企業(yè)的客服系統(tǒng)(Call Center)都受理一部分業(yè)務(wù),而這些業(yè)務(wù)受理與在營業(yè)廳或銷售店的受理是一樣的,因此這類數(shù)據(jù)要?dú)w并到一起。
第三步:把包含細(xì)節(jié)過多的交易記錄進(jìn)行拆分
事實(shí)上,一個(gè)交易記錄所包含的信息內(nèi)容非常豐富,往往超越了某個(gè)人或部門的分析需求,但不同的人有不同的關(guān)注點(diǎn),因此為提高性能起見,我們需要把一個(gè)長(zhǎng)記錄包含的信息進(jìn)行分析、分解、匯總。例如在電信企業(yè)中,經(jīng)過二次批價(jià)后的通話詳單包含多種信息,經(jīng)過分析,它包括網(wǎng)絡(luò)信息、業(yè)務(wù)類型信息、時(shí)間信息、地理信息、費(fèi)用信息這樣幾個(gè)類別的信息,而每一類信息都由幾個(gè)字段來進(jìn)行記錄。這些不同類別的信息是很少有人都同時(shí)關(guān)心的,一般來說網(wǎng)管部門關(guān)心網(wǎng)絡(luò)信息,市場(chǎng)部門關(guān)心業(yè)務(wù)類型信息,而時(shí)間信息和地理信息恰是所有部門都需要的。按照這樣的情況,我們把一條話單按照信息內(nèi)容進(jìn)行拆分,拆分后進(jìn)行匯總歸并,以支持不同部門的分析要求。當(dāng)然,對(duì)于數(shù)據(jù)挖掘應(yīng)用,可能同時(shí)關(guān)心所有的信息以發(fā)掘不同信息之間的關(guān)系,但這種情況一則很少,二則真正的數(shù)據(jù)挖掘更多的時(shí)候依賴于交易細(xì)節(jié)數(shù)據(jù),也就是說,對(duì)于專題問題的研究可以從ODS中進(jìn)行數(shù)據(jù)的再次處理。
第四步:匯總、再匯總
匯總的問題決不僅僅是為了提高性能而做的事情(當(dāng)然匯總能夠有效提高性能),但匯總同時(shí)意味著更高程度的綜合,在這個(gè)過程中,我們會(huì)發(fā)現(xiàn)與ODS系統(tǒng)設(shè)計(jì)過程相反,我們從細(xì)節(jié)走向了宏觀,在ODS中我們初步確定了企業(yè)信息模型,對(duì)企業(yè)信息模型進(jìn)行初步分解,再分解、再分解,得到了一個(gè)個(gè)的主題;在數(shù)據(jù)倉庫中,我們從一個(gè)個(gè)的主題開始,綜合、再綜合,我們沿著與ODS相反的方向,走向了企業(yè)的宏觀數(shù)據(jù)視圖。事實(shí)上在DW設(shè)計(jì)中,匯總、綜合的***目標(biāo),是要在***把多個(gè)主題匯總成為一個(gè)大的主題,而這個(gè)主題所包含的維度和度量就是這個(gè)企業(yè)運(yùn)行的命脈指標(biāo),是企業(yè)老板所最為關(guān)注的那幾個(gè)指標(biāo)。
【編輯推薦】






















