1. 程式人生 > >關於資料庫和資料倉庫

關於資料庫和資料倉庫

的過渡,也是資料倉庫專案的可選項之一。

根據Bill.Inmon的定義,“資料倉庫是面向主題的、整合的、穩定的、隨時間變化的,主要用於決策支援的資料庫系統”

ODS是一個面向主題的、整合的、可變的、當前的細節資料集合,用於支援企業對於即時性的、操作性的、整合的全體資訊的需 求。常常被作為資料倉庫的過渡,也是資料倉庫專案的可選項之一。

在Kimball的<<資料倉庫生命週期工具集The Data WareHouse Liftcycle Toolkit>>,他是這樣定義的

1. 是操作型系統中的整合,用於當前,歷史以及其它細節查詢(業務系統的一部分)

2. 為決策支援提供當前細節資料(資料倉庫的一部分)


因此操作資料儲存(ODS) 是用於支援企業日常的全域性應用的資料集合,ODS的資料具有面向主題、整合的、可變的和資料是當前的或是接近當前的4個基本特徵。同樣也可以看出ODS是介於DB和DW 之間的一種資料儲存技術,和原來面向應用的分散的DB相比,ODS中的資料組織方式和資料倉庫(DW)一樣也是面向主題的和整合的,所以對進入ODS的數 據也象進入資料倉庫的資料一樣進行整合處理。另外ODS只是存放當前或接近當前的資料,如果需要的話還可以對ODS中的資料進行增、刪和更新等操 作,雖然DW中的資料也是面向主題和整合的,但這些資料一般不進行修改,所以ODS和DW的區別主要體現資料的可變性、當前性、穩定性、彙總度上。


由於ODS仍然儲存在普通的關係資料庫中,出於效能、儲存和備份恢復等資料庫的角度以及對源資料庫的效能影響角度,個人不建議ODS儲存相當長週期的資料,同樣ODS中的資料也儘量不做轉換,而是原封不動地與業務資料庫保持一致。即ODS只是業務資料庫的一個備份或者映像,目的是為了使資料倉庫的處理和決策支援要求與OLTP系統相隔離,減少決策支援要求對OLTP系統的影響。

為什麼需要有一個ODS系統呢?一般在帶有ODS的系統體系結構中,ODS都具備如下幾個作用:

1) 在業務系統和資料倉庫之間形成一個隔離層。

一 般的資料倉庫應用系統都具有非常複雜的資料來源,這些資料存放在不同的地理位置、不同的資料庫、不同的應用之中,從這些業務系統對資料進行抽取並不是一件 容易的事。因此,ODS用於存放從業務系統直接抽取出來的資料,這些資料從資料結構、資料之間的邏輯關係上都與業務系統基本保持一致,因此在抽取過程中極 大降低了資料轉化的複雜性,而主要關注資料抽取的介面、資料量大小、抽取方式等方面的問題。


2) 轉移一部分業務系統細節查詢的功能

在 資料倉庫建立之前,大量的報表、分析是由業務系統直接支援的,在一些比較複雜的報表生成過程中,對業務系統的執行產生相當大的壓力。ODS的資料從粒度、 組織方式等各個方面都保持了與業務系統的一致,那麼原來由業務系統產生的報表、細節資料的查詢自然能夠從ODS中進行,從而降低業務系統的查詢壓力。

3) 完成資料倉庫中不能完成的一些功能。

一 般來說,帶有ODS的資料倉庫體系結構中,DW層所儲存的資料都是進行彙總過的資料和運營指標,並不儲存每筆交易產生的細節資料,但是在某些特殊的應用中,可能需要 對交易細節資料進行查詢,這時就需要把細節資料查詢的功能轉移到ODS來完成,而且ODS的資料模型按照面向主題的方式進行儲存,可以方便地支援多維分析 等查詢功能。即資料倉庫從巨集觀角度滿足企業的決策支援要求,而ODS層則從微觀角度反映細節交易資料或者低粒度的資料查詢要求。