ODS是一個(gè)面向主題的、集成的、可變的、當(dāng)前的細(xì)節(jié)數(shù)據(jù)集合,用于支持企業(yè)對(duì)于即時(shí)性的、操作性的、集成的全體信息的需求。常常被作為數(shù)據(jù)倉(cāng)庫(kù)的過(guò)渡,也是數(shù)據(jù)倉(cāng)庫(kù)項(xiàng)目的可選項(xiàng)之一。
根據(jù)Bill.Inmon的定義,“數(shù)據(jù)倉(cāng)庫(kù)是面向主題的、集成的、穩(wěn)定的、隨時(shí)間變化的,主要用于決策支持的數(shù)據(jù)庫(kù)系統(tǒng)”
ODS是一個(gè)面向主題的、集成的、可變的、當(dāng)前的細(xì)節(jié)數(shù)據(jù)集合,用于支持企業(yè)對(duì)于即時(shí)性的、操作性的、集成的全體信息的需 求。常常被作為數(shù)據(jù)倉(cāng)庫(kù)的過(guò)渡,也是數(shù)據(jù)倉(cāng)庫(kù)項(xiàng)目的可選項(xiàng)之一。
在Kimball的<<數(shù)據(jù)倉(cāng)庫(kù)生命周期工具集The Data WareHouse Liftcycle Toolkit>>,他是這樣定義的:
1. 是操作型系統(tǒng)中的集成,用于當(dāng)前,歷史以及其它細(xì)節(jié)查詢(xún)(業(yè)務(wù)系統(tǒng)的一部分)
2. 為決策支持提供當(dāng)前細(xì)節(jié)數(shù)據(jù)(數(shù)據(jù)倉(cāng)庫(kù)的一部分)
因此操作數(shù)據(jù)存儲(chǔ)(ODS) 是用于支持企業(yè)日常的全局應(yīng)用的數(shù)據(jù)集合,ODS的數(shù)據(jù)具有面向主題、集成的、可變的和數(shù)據(jù)是當(dāng)前的或是接近當(dāng)前的4個(gè)基本特征。同樣也可以看出ODS是介于DB和DW 之間的一種數(shù)據(jù)存儲(chǔ)技術(shù),和原來(lái)面向應(yīng)用的分散的DB相比,ODS中的數(shù)據(jù)組織方式和數(shù)據(jù)倉(cāng)庫(kù)(DW)一樣也是面向主題的和集成的,所以對(duì)進(jìn)入ODS的數(shù) 據(jù)也象進(jìn)入數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)一樣進(jìn)行集成處理。另外ODS只是存放當(dāng)前或接近當(dāng)前的數(shù)據(jù),如果需要的話(huà)還可以對(duì)ODS中的數(shù)據(jù)進(jìn)行增、刪和更新等操 作,雖然DW中的數(shù)據(jù)也是面向主題和集成的,但這些數(shù)據(jù)一般不進(jìn)行修改,所以O(shè)DS和DW的區(qū)別主要體現(xiàn)數(shù)據(jù)的可變性、當(dāng)前性、穩(wěn)定性、匯總度上。
由于ODS仍然存儲(chǔ)在普通的關(guān)系數(shù)據(jù)庫(kù)中,出于性能、存儲(chǔ)和備份恢復(fù)等數(shù)據(jù)庫(kù)的角度以及對(duì)源數(shù)據(jù)庫(kù)的性能影響角度,個(gè)人不建議ODS保存相當(dāng)長(zhǎng)周期的數(shù)據(jù),同樣ODS中的數(shù)據(jù)也盡量不做轉(zhuǎn)換,而是原封不動(dòng)地與業(yè)務(wù)數(shù)據(jù)庫(kù)保持一致。即ODS只是業(yè)務(wù)數(shù)據(jù)庫(kù)的一個(gè)備份或者映像,目的是為了使數(shù)據(jù)倉(cāng)庫(kù)的處理和決策支持要求與OLTP系統(tǒng)相隔離,減少?zèng)Q策支持要求對(duì)OLTP系統(tǒng)的影響。
為什么需要有一個(gè)ODS系統(tǒng)呢?一般在帶有ODS的系統(tǒng)體系結(jié)構(gòu)中,ODS都具備如下幾個(gè)作用:
1)在業(yè)務(wù)系統(tǒng)和數(shù)據(jù)倉(cāng)庫(kù)之間形成一個(gè)隔離層。
一 般的數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用系統(tǒng)都具有非常復(fù)雜的數(shù)據(jù)來(lái)源,這些數(shù)據(jù)存放在不同的地理位置、不同的數(shù)據(jù)庫(kù)、不同的應(yīng)用之中,從這些業(yè)務(wù)系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行抽取并不是一件 容易的事。因此,ODS用于存放從業(yè)務(wù)系統(tǒng)直接抽取出來(lái)的數(shù)據(jù),這些數(shù)據(jù)從數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)之間的邏輯關(guān)系上都與業(yè)務(wù)系統(tǒng)基本保持一致,因此在抽取過(guò)程中極 大降低了數(shù)據(jù)轉(zhuǎn)化的復(fù)雜性,而主要關(guān)注數(shù)據(jù)抽取的接口、數(shù)據(jù)量大小、抽取方式等方面的問(wèn)題。
2)轉(zhuǎn)移一部分業(yè)務(wù)系統(tǒng)細(xì)節(jié)查詢(xún)的功能
在 數(shù)據(jù)倉(cāng)庫(kù)建立之前,大量的報(bào)表、分析是由業(yè)務(wù)系統(tǒng)直接支持的,在一些比較復(fù)雜的報(bào)表生成過(guò)程中,對(duì)業(yè)務(wù)系統(tǒng)的運(yùn)行產(chǎn)生相當(dāng)大的壓力。ODS的數(shù)據(jù)從粒度、 組織方式等各個(gè)方面都保持了與業(yè)務(wù)系統(tǒng)的一致,那么原來(lái)由業(yè)務(wù)系統(tǒng)產(chǎn)生的報(bào)表、細(xì)節(jié)數(shù)據(jù)的查詢(xún)自然能夠從ODS中進(jìn)行,從而降低業(yè)務(wù)系統(tǒng)的查詢(xún)壓力。
3)完成數(shù)據(jù)倉(cāng)庫(kù)中不能完成的一些功能。
一般來(lái)說(shuō),帶有ODS的數(shù)據(jù)倉(cāng)庫(kù)體系結(jié)構(gòu)中,DW層所存儲(chǔ)的數(shù)據(jù)都是進(jìn)行匯總過(guò)的數(shù)據(jù)和運(yùn)營(yíng)指標(biāo),并不存儲(chǔ)每筆交易產(chǎn)生的細(xì)節(jié)數(shù)據(jù),但是在某些特殊的應(yīng)用中,可能需要 對(duì)交易細(xì)節(jié)數(shù)據(jù)進(jìn)行查詢(xún),這時(shí)就需要把細(xì)節(jié)數(shù)據(jù)查詢(xún)的功能轉(zhuǎn)移到ODS來(lái)完成,而且ODS的數(shù)據(jù)模型按照面向主題的方式進(jìn)行存儲(chǔ),可以方便地支持多維分析 等查詢(xún)功能。即數(shù)據(jù)倉(cāng)庫(kù)從宏觀角度滿(mǎn)足企業(yè)的決策支持要求,而ODS層則從微觀角度反映細(xì)節(jié)交易數(shù)據(jù)或者低粒度的數(shù)據(jù)查詢(xún)要求。
在一個(gè)沒(méi)有ODS層的數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用系統(tǒng)體系結(jié)構(gòu)中,數(shù)據(jù)倉(cāng)庫(kù)中存儲(chǔ)的數(shù)據(jù)粒度是根據(jù)需要而確定的,但一般來(lái)說(shuō),最為細(xì)節(jié)的業(yè)務(wù)數(shù)據(jù)也是需要保留的,實(shí)際上 也就相當(dāng)于ODS,但與ODS所不同的是,這時(shí)的細(xì)節(jié)數(shù)據(jù)不是“當(dāng)前、不斷變化的”數(shù)據(jù),而是“歷史的,不再變化的”數(shù)據(jù)。這樣的數(shù)據(jù)倉(cāng)庫(kù)的存儲(chǔ)壓力和性能壓力都是比較大的,因此對(duì)數(shù)據(jù)倉(cāng)庫(kù)的物理設(shè)計(jì)和邏輯設(shè)計(jì)提出了更高的要求。