天天看點

資料倉庫概念(一)

資料倉庫

一、 資料倉庫

1. 資料倉庫的基本概念

資料倉庫,

英文名稱為Data Warehouse,可簡寫為DW或DWH。資料倉庫的目的是建構面向分析的內建化資料環境,為企業提供決策支援(Decision Support)。它出于分析性報告和決策支援目的而建立。

資料倉庫本身并不“生産”任何資料,同時自身也不需要“消費”任何的資料,資料來源于外部,并且開放給外部應用,這也是為什麼叫“倉庫”,而不叫“工廠”的原因。

2. 資料倉庫的主要特征

資料倉庫是面向主題的(Subject-Oriented )、內建的(Integrated)、非易失的(Non-Volatile)和時變的(Time-Variant )資料集合,用以支援管理決策。

2.1. 面向主題

傳統資料庫中,最大的特點是面向應用進行資料的組織,各個業務系統可能是互相分離的。而資料倉庫則是面向主題的。主題是一個抽象的概念,是較高層次上企業資訊系統中的資料綜合、歸類并進行分析利用的抽象。在邏輯意義上,它是對應企業中某一宏觀分析領域所涉及的分析對象。

操作型處理(傳統資料)對資料的劃分并不适用于決策分析。而基于主題組織的資料則不同,它們被劃分為各自獨立的領域,每個領域有各自的邏輯内涵但互不交叉,在抽象層次上對資料進行完整、一緻和準确的描述。一些主題相關的資料通常分布在多個操作型系統中。

2.2. 內建性

通過對分散、獨立、異構的資料庫資料進行抽取、清理、轉換和彙總便得到了資料倉庫的資料,這樣保證了資料倉庫内的資料關于整個企業的一緻性。

資料倉庫中的綜合資料不能從原有的資料庫系統直接得到。是以在資料進入資料倉庫之前,必然要經過統一與綜合,這一步是資料倉庫建設中最關鍵、最複雜的一步,所要完成的工作有:

(1)要統一源資料中所有沖突之處,如字段的同名異義、異名同義、機關不統一、字長不一緻,等等。

(2)進行資料綜合和計算。資料倉庫中的資料綜合工作可以在從原有資料庫抽取資料時生成,但許多是在資料倉庫内部生成的,即進入資料倉庫以後進行綜合生成的。

下圖說明一個保險公司綜合資料的簡單處理過程,其中資料倉庫中與“保險” 主題有關的資料來自于多個不同的操作型系統。這些系統内部資料的命名可能不同,資料格式也可能不同。把不同來源的資料存儲到資料倉庫之前,需要去除這些不一緻。

資料倉庫概念(一)

2.3. 非易失性(不可更新性)

操作型資料庫主要服務于日常的業務操作,使得資料庫需要不斷地對資料實時更新,以便迅速獲得目前最新資料,不至于影響正常的業務運作。在資料倉庫中隻要儲存過去的業務資料,不需要每一筆業務都實時更新資料倉庫,而是根據商業需要每隔一段時間把一批較新的資料導入資料倉庫。

資料倉庫的資料反映的是一段相當長的時間内曆史資料的内容,是不同時點

的資料庫快照的集合,以及基于這些快照進行統計、綜合和重組的導出資料。

資料非易失性主要是針對應用而言。資料倉庫的使用者對資料的操作大多是資料查詢或比較複雜的挖掘,一旦資料進入資料倉庫以後,一般情況下被較長時間保留。資料倉庫中一般有大量的查詢操作,但修改和删除操作很少。是以,資料經加工和內建進入資料倉庫後是極少更新的,通常隻需要定期的加載和更新。

2.4. 時變性

資料倉庫包含各種粒度的曆史資料。資料倉庫中的資料可能與某個特定日期、星期、月份、季度或者年份有關。資料倉庫的目的是通過分析企業過去一段時間業務的經營狀況,挖掘其中隐藏的模式。雖然資料倉庫的使用者不能修改資料,但并不是說資料倉庫的資料是永遠不變的。分析的結果隻能反映過去的情況,當業務變化後,挖掘出的模式會失去時效性。是以資料倉庫的資料需要更新,以适應決策的需要。從這個角度講,資料倉庫建設是一個項目,更是一個過程 。資料倉庫的資料随時間的變化表現在以下幾個方面。

(1) 資料倉庫的資料時限一般要遠遠長于操作型資料的資料時限。

(2) 操作型系統存儲的是目前資料,而資料倉庫中的資料是曆史資料。

(3) 資料倉庫中的資料是按照時間順序追加的,它們都帶有時間屬性。

3. 資料倉庫與資料庫差別

資料庫與資料倉庫的差別實際講的是 OLTP 與 OLAP 的差別。

操作型處理,叫聯機事務處理 OLTP(On-Line Transaction Processing,),也可以稱面向交易的處理系統,它是針對具體業務在資料庫聯機的日常操作,通常對少數記錄進行查詢、修改。使用者較為關心操作的響應時間、資料的安全性、完整性和并發支援的使用者數等問題。傳統的資料庫系統作為資料管理的主要手段,主要用于操作型處理。

分析型處理,叫聯機分析處理 OLAP(On-Line Analytical Processing)一般針對某些主題的曆史資料進行分析,支援管理決策。

首先要明白,資料倉庫的出現,并不是要取代資料庫。

 資料庫是面向事務的設計,資料倉庫是面向主題設計的。

 資料庫一般存儲業務資料,資料倉庫存儲的一般是曆史資料。

 資料庫設計是盡量避免備援,一般針對某一業務應用進行設計,比如一張簡單的User表,記錄使用者名、密碼等簡單資料即可,符合業務應用,但是不符合分析。資料倉庫在設計是有意引入備援,依照分析需求,分析次元、分析名額進行設計。

 資料庫是為捕獲資料而設計,資料倉庫是為分析資料而設計。

以銀行業務為例。資料庫是事務系統的資料平台,客戶在銀行做的每筆交易都會寫入資料庫,被記錄下來,這裡,可以簡單地了解為用資料庫記賬。資料倉庫是分析系統的資料平台,它從事務系統擷取資料,并做彙總、加工,為決策者提供決策的依據。比如,某銀行某分行一個月發生多少交易,該分行目前存款餘額是多少。如果存款又多,消費交易又多,那麼該地區就有必要設立ATM了。

顯然,銀行的交易量是巨大的,通常以百萬甚至千萬次來計算。事務系統是實時的,這就要求時效性,客戶存一筆錢需要幾十秒是無法忍受的,這就要求資料庫隻能存儲很短一段時間的資料。而分析系統是事後的,它要提供關注時間段内所有的有效資料。這些資料是海量的,彙總計算起來也要慢一些,但是,隻要能夠提供有效的分析資料就達到目的了。

資料倉庫,是在資料庫已經大量存在的情況下,為了進一步挖掘資料資源、為了決策需要而産生的,它決不是所謂的“大型資料庫”。

繼續閱讀