傳統的操作型數據庫主要是面向業務的,所執行的操作基本上也是聯機事務處理,但隨著企業規模的增長,歷史積累的數據越來越多,如何利用歷史數據來為未來決策服務,就顯得越來越重要了,而數據倉庫就是其中的一種技術。
企業常見的數據處理工作大致可以分成兩大類,分別是 OLTP(On-LineTransaction Processing ,聯機事務處理 ) 和 OLAP (On-LineAnalytical Processing ,聯機分析處理 ) 。OLTP是傳統的關系型數據庫的主要應用, OLAP 是數據倉庫系統的主要應用,支持復雜的分析操作,側重決策支排,并且提供直觀易懂的查詢結果。
1 數據倉庫的概念
著名的數據倉庫專家 W.H.Inmon 在 《Building the Data Warehouse 》 一書中將數據倉庫定義為:數據倉庫( Data Warehouse )是一個面向主題的 、 集成的 、 相對穩定的 、 且隨時間變化的數據集合,用于支持管理決策。
(1)面向主題的
面向主題的操作型數據庫的數據組織是面向事務處理任務(面向應用),各個業務系統之間各自分離,而數據倉庫中的數據是按照一定的主題域進行組織的。主題是一個抽象的概念,是指用戶使用數據倉庫進行決策時所關心的重點方面,一個主題通常與多個操作型信息系統相關。例如,一個保險公司所進行的事務處理(應用問題)可能包括汽車保險 、 人壽保險 、 健康保險和意外保險等,而公司的主要主題范圍可能是顧客 、 保險單 、 保險費和索賠等。
(2)集成
集成性,在數據倉庫的所有特性中,這是最重要的。面向事務處理的操作型數據庫通常與某些特定的應用相關,數據庫之間相互獨立,并且往往是異構的。而數據倉庫中的數據是在對原有分散的數據庫數據抽取 、 清理的基礎上經過系統加工 、 匯總和整理得到的,必須消除源數據中的不一致性,以保證數據倉庫內的信息是關于整個企業的一致的全局信息。
(3) 相對穩定
相對穩定的操作型數據庫中的數據通常實時更新,數據根據需要及時發生變化。數據倉庫的數據主要供企業決策分析之用,所涉及的數據操作主要是數據查詢,一旦某個數據進入數據倉庫以后,一般情況下將被長期保留,也就是數據倉庫中一般有大量的查詢操作,但修改和刪除操作很少,通常只需要定期地加載 、 刷新。
(4)隨時間變化
隨時間變化的操作型數據庫主要關心當前某一個時間段內的數據,而數據倉庫中的數據通常包含歷史信息,系統記錄了企業從過去某一時點(如開始應用數據倉庫的時點)到目前的各個階段的信息,通過這些信息,可以對企業的發展歷程和未來趨勢做出定量分析和預測。
數據倉庫反映歷史變化的屬性主要表現在:
- 數據倉庫中的數據時間期限要遠遠長于傳統操作型數據系統中的數據時間期限,傳統操作型數據系統中的數據時間期限可能為數十天或數個月,數據倉庫中的數據時間期限往往為數年甚至幾十年;
- 傳統操作型數據系統中的數據含有 “ 當前值 ” 的數據,這些數據在訪問時是有效的,當然數據的當前值也能被更新,但數據倉庫中的數據僅僅是一系列某一時刻(可能是傳統操作型數據系統)生成的復雜的快照;
- 傳統操作型數據系統中可能包含也可能不包含時間元素,如年 、 月 、 日 、 時 、 分 、 秒等,而數據倉庫中一定會包含時間元素。
數據倉庫雖然是從傳統數據庫系統發展而來,但是兩者還是存在著諸多差異,如:從數據存儲的內容看,數據庫只存放當前值,而數據倉庫則存放歷史值;數據庫數據的目標是面向業務操作人員的,為業務處理人員提供數據處理的支持,而數據倉庫則是面向中高層管理人員的,為其提供決策支持等。表 1 詳細說明了數據倉庫與傳統數據庫的區別。
比較項目 | 傳統數據庫 | 數據倉庫 |
---|---|---|
數據內容 | 當前值 | 歷史的、歸檔的、歸納的、計算的數據(處理過的數據) |
數據目標 | 面向業務操作程序、重復操作 | 面向主體域、分析應用 |
數據特性 | 動態變化、更新 | 靜態、只能定時添加與更新,不能直接更新 |
數據結構 | 高度結構化、復雜,適合操作計算 | 簡單、適合分析 |
使用頻率 | 高 | 低 |
數據訪問量 | 每個事務一般只訪問少量記錄 | 每個事務一般訪問大量記錄 |
對響應時間的要求 | 計時單位小,如秒 | 計時單位相對較大,除秒之外,還有分鐘、小時 |
2 數據倉庫的結構
從數據倉庫的概念結構看,一般來說,數據倉庫系統要包含數據源 、 數據準備區 、 數據倉庫數據庫 、 數據集市 / 知識挖掘庫及各種管理工具和應用工具,如圖 1 所示。數據倉庫建立之后,首先要從數據源中抽取相關的數據到數據準備區,在數據準備區中經過凈化處理后再加載到數據倉庫數據庫,最后根據用戶的需求將數據導入數據集市和知識挖掘庫中。當用戶使用數據倉庫時,可以利用包括 OLAP ( On-Line Analysis Processing ,聯機分析處理)在內的多種數據倉庫應用工具向數據集市 / 知識挖掘庫或數據倉庫進行決策查詢分析或知識挖掘。數據倉庫的創建 、 應用可以利用各種數據倉庫管理工具輔助完成。
2.1 數據倉庫的參考框架
數據倉庫的參考框架由數據倉庫基本功能層 、 數據倉庫管理層和數據倉庫環境支持層組成,如圖 2 所示。
(1)數據倉庫基本功能層
數據倉庫的基本功能層部分包含數據源 、 數據準備區 、 數據倉庫結構 、 數據集市或知識挖掘庫,以及存取和使用部分。本層的功能是從數據源抽取數據,對所抽取的數據進行篩選 、 清理,將處理過的數據導入或者說加載到數據倉庫中,根據用戶的需求設立數據集市,完成數據倉庫的復雜查詢 、 決策分析和知識的挖掘等。
(2)數據倉庫管理層
數據倉庫的正常運行除了需要數據倉庫功能層提供的基本功能外,還需要對這些基本功能進行管理與支持的結構框架。數據倉庫管理層由數據倉庫的數據管理和數據倉庫的元數據管理組成。
數據倉庫的數據管理層包含數據抽取 、 新數據需求與查詢管理,數據加載 、 存儲 、 刷新和更新系統,安全性與用戶授權管理系統及數據歸檔 、 恢復及凈化系統等四部分。
(3)數據倉庫的環境支持層
數據倉庫的環境支持層由數據倉庫數據傳輸層和數據倉庫基礎層組成。數據倉庫中不同結構之間的數據傳輸需要數據倉庫的傳輸層來完成。
數據倉庫的傳輸層包含數據傳輸和傳送網絡 、 客戶 / 服務器代理和中間件 、 復制系統及數據傳輸層的安全保障系統。
2.2 數據倉庫架構
大眾觀點的數據倉庫的架構如圖 3 所示。
(1)數據源
數據源是數據倉庫系統的基礎,是整個系統的數據源泉。通常包括企業內部信息和外部信息。內部信息包括存放于 R DBMS (關系型 DBMS )中的各種業務處理數據和各類文檔數據。外部信息包括各類法律法規 、 市場信息和競爭對手的信息等。
(2)數據的存儲與管理
是整個數據倉庫系統的核心。數據倉庫的真正關鍵是數據的存儲和管理。數據倉庫的組織管理方式決定了它有別于傳統數據庫,同時也決定了其對外部數據的表現形式。要決定采用什么產品和技術來建立數據倉庫的核心,則需要從數據倉庫的技術特點著手分析。針對現有各業務系統的數據,進行抽取 、 清理,并有效集成,按照主題進行組織。數據倉庫按照數據的覆蓋范圍可以分為企業級數據倉庫和部門級數據倉庫(通常稱為數據集市)。
(3)OLAP 服務器
OLAP 是使分析入員 、 管理人員或執行人員能夠從多角度對信息進行快速 、 一致 、 交互地存取,從而獲得對數據的更深入了解的一類軟件技術。 OLAP 的目標是滿足決策支持或者滿足在多維環境下特定的査詢和報表需求,它的技術核心是 “ 維 ” 的概念。維是人們觀察客觀世界的角度,是一種高層次的類型劃分。維一般包含著層次關系,這種層次關系有時會相當復雜。通過把一個實體的多項重要的屬性定義為多個維,使用戶能對不同維上的數據進行比較。因此 OLAP 也可以說是多維數據分析工具的集合。
OLAP 的基本多維分析操作有鉆取 、 切片和切塊 、 旋轉等。
- 鉆取 : 是改變維的層次,變換分析的粒度。它包括向上鉆取和向下鉆取。向上鉆取是在某一維上將低層次的細節數據概括到高層次的匯總數據,或者減少維數;而向下鉆取則相反,它從匯總數據深入到細節數據進行觀察或增加新維 。
- 切片和切塊 : 是在一部分維上選定值后,關心度量數據在剩馀維上的分布。如果剩馀的維只有兩個,則是切片 : 如果有三個,則是切塊;
- 旋轉 : 是變換維的方向,即在表格中重新安排維的放置 ( 例如行列互換 ) 。
OLAP 有多種實現方法,根據存儲數據的方式不同,可以分為(ROLAP (Relational OLAP ,基于關系數據庫的 OLAP 實現)、MOLAP (Multidimensional OLAP ,基于多維數據組織的 OLAP 實現)、HOLAP (Hybrid OLAP ,基于混合數據組織的 OLAP 實現)。
- ROLAP:以關系數據庫為核心,以關系型結構進行多維數據的表示和存儲;ROLAP 將多維數據庫的多維結構劃分為兩類表 : 一類是事實表,用來存儲數據和維關鍵字 : 另一類是維表,即對每個維至少使用一個表來存放維的層次 、 成員類別等維的描述信息。維表和事實表通過主關鍵字和外關鍵字聯系在一起,形成了 “ 星型模式 ” 。 對于層次復雜的維,為避免冗馀數據占用過大的存儲空間,可以使用多個表來描述,這種星型模式的擴展稱為 “ 雪花模式 ” ;
- MOLAP : 以多維數據組織方式為核心,也就是說, MOLAP 使用多維數組存儲數據。多維數據在存儲中將形成立方塊 ( Cube ) 的結構,在 MOLAP 中對立方塊的旋轉切塊 、 切片是產生多維數據報表的主要技術 。
- HOLAP : 低層是關系型的,高層是多維矩陣型的 ; 或者反之。這種方式具有更好的靈活性。還有其他的一些實現 OLAP 的方法,如提供一個專用的 SQL Server ,對某些存儲模式 ( 如星型 、 雪片型 ) 提供對 SQL 查詢的特殊支持。
OLAP 工具是針對特定問題的聯機數據訪問與分析,它通過多維的方式對數據進行分析 、 査詢和報表。多維分析是指對以多維形式組織起來的數據采取切片 、 切塊 、 鉆取 、 旋轉等各種分析動作,以求剖析數據,使用戶能從多個角度 、 多側面地觀察數據庫中的數據,從而深入理解包含在數據中的信息。
(4)前端工具
主要包括各種報表工具 、 查詢工具 、 數據分析工具 、 數據挖掘工具及各種基于數據倉庫或數據集市的應用開發工具。其中數據分析工具主要針對 OLAP 服務器,報表工具 、 數據挖掘工具主要針對數據倉庫。
3 數據倉庫的實現方法
數據倉庫的特性決定了數據倉庫的設計不同于傳統的數據庫設計方法。數據倉庫系統的原始需求通常不是很明確,并且需求仍在不斷變化 、 增加,所以,數據倉庫的建立是一個過程,從建立簡單的基本框架著手,不斷豐富和完善整個系統。這一過程將由以下幾部分構成:需求分析 、 概念模型設計 、 邏輯模型設計 、 物理模型設計和數據倉庫生成。
從整體的角度來看,數據倉庫的實現方法主要有自頂向下法、自底向上法和聯合方法。
(1)自頂向下法
在該方法中,首先應找出數據倉庫解決方案所要滿足的商業需求,把商業需求視為實現數據倉庫的首要任務。數據倉庫是一種功能而不是一種特征,數據倉庫保存信息,并以外部工具易于顯示和操作的方式組織這些信息。因此,如果不借助于可以利用這種功能的外部工具,最終用戶就無法將這種功能嵌入數據倉庫中。這樣,就很難定出該功能的范圍,除非用廣義上的商業術語,如 “ 數據倉庫將包含有關客戶 、 供應商 、 市場 、 產品的信息 ”。 自頂向下方法的優點和缺點如表 2 所示。
優點 | 缺點 |
---|---|
商業需求清楚地描繪出數據倉庫實現的范圍,因此是實現數據倉庫解決方案的有效方法。 | 機會有時超出了當前的業務范圍。 |
技術取決于商業 | 技術可以促進商業和競爭優勢,但開始時對商業的促進是不明顯的。 |
易于向決策者提供數據倉庫的收益情況 | 一旦數據倉庫實現,可能就不再要求更高的目標。 |
規劃和實現數據倉庫的自頂向下方法一般用于以下情況:
- 實現單位比較熟悉技術,并具有根據商業需求采用自頂向下方法開發應用程序的豐富經驗。
- 決策層(總經理 、 決策者 、 投資者)完全清楚數據倉庫的預測目標。
- 決策層(總經理 、 決策者 、 投資者)完全清楚數據倉庫用作哪些機構的決策支持工具。
- 決策層(總經理 、 決策者 、 投資者)完全清楚數據倉庫已經是商業過程中的一個子過程。
如果技術是成熟的和眾所周知的,或者必須解決的商業問題是顯而易見的,那么自頂向下方法是很有用的。采用自頂向下方法可以將技術和商業目標有機地結合起來。
(2)自底向上法
自底向上方法一般從實驗和基于技術的原形入手。先選擇一個特定的 、 眾所周知的商業問題的子集,再為該子集制訂方案。實現自底向上一般是比較快的。自底向上可以使一個單位在發展時用盡可能少的經費和時間,就可以在做出有效的投入之前評估技術的收益情況。在數據倉庫領域,自底向上方法是快速實現數據集市 、 部門級數據倉庫的有效手段。自底向上方法的優點和缺點如表 3 所示。
優點 | 缺點 |
---|---|
實現的需求和開始時的需求遠遠超過自頂向下分析和長期考慮的范圍 | 最初方案實現之后,最好回顧下方案是如何服務整個企業的。 |
在企業對數據倉庫了解的早期,該方法使企業無須巨大投入就可見到效益。 | 單個自底向上工程項目的失敗,可能推遲潛在技術的實現。 |
少數人集中工作在一個部門范圍,可以加速實現決策過程 | 早期的小組應不斷發展為較大的小組,以擴充最初方案的覆蓋范圍。 |
規劃和實現數據倉庫的自底向上方法一般用于以下情況:
- 企業還沒有確實掌握數據倉庫技術,希望進行技術評估來決定運行該技術的方式 、 地點和時間。
- 企業希望了解實現和運行數據倉庫所需要的各種費用情況。
- 企業在對數據倉庫進行投資選擇。自底向上方法對于希望從數據倉庫投資中快速得到回報的用戶是非常有效的。該方法可以使企業充分利用各種技術,無須冒很大風險。
(3)聯合方法
在以上兩種方法的聯合方法中,企業在保持自底向上方法的快速實現和機遇應用的同時,還可以利用自頂向下方法的規劃和決策性質。這種方法依賴于以下兩個因素:
- 自頂向下的結構 、 標準和設計小組,可以從一個項目向另外一個項目傳遞知識,也可以把戰術決策變為戰略決策。
- 自底向上方法的項目小組,它直接負責在短期內實現一個集中的 、 部門級的商務解決方案。
聯合方法具有以上兩種方法的優點,但是難以作為一個項目來管理。該方法一般用于:
- 實現企業擁有經驗豐富的設計師,有能力建立 、 證明 、 應用和維護數據結構 、 技術結構及企業模型,可以很容易地從具體(運作系統中的元數據)轉移到抽象。
- 企業擁有固定的項目小組,完全清楚數據倉庫技術應用的場所。他們可以清楚地看到當前的商務需求。
聯合方法適合數據倉庫技術的快速試運行,并且保留了建立長遠的決策方案的機會。