發展背景
隨著
資料庫技術的廣泛套用,
企業信息系統產生了大量的業務數據,如何從這些海量的業務數據中提取出對企業
決策分析有用的信息,這成為
企業決策管理人員所面臨的重要難題。因此,人們逐漸嘗試對OLTP資料庫中的數據進行再加工,以形成一個綜合的、
面向服務對象、訪問方式、
事務管理乃至物理存儲等方面都有不同的特點和要求,因此,直接在操作型資料庫上建立
決策支持系統是不合適的。
數據倉庫技術就是在這樣的背景下發展起來的。
隨著
市場競爭的日趨激烈,企業更加強調決策的
及時性和
準確性,這使得以支持
決策管理分析為主要目的的套用迅速崛起,這類套用被稱為在線上分析處理,它所存儲的數據被稱為信息數據。
在線上分析處理的概念最早由
關係資料庫之父E.F.Codd於1993年提出。Codd認為,在線上事務處理已不能滿足
終端用戶對資料庫查詢分析的要求,SQL對大容量資料庫的簡單查詢也不能滿足
用戶分析的需求。用戶的決策分析需要對關係資料庫進行大量的計算才能得到結果,而查詢的結果並不能滿足決策者提出的需求。因此,Codd提出了
多維資料庫和多維分析的概念,即OLAP。OLAP委員會對在線上分析處理的定義為:使分析人員、管理人員或執行人員能夠從多種角度對從
原始數據中轉化出來的、能夠真正為用戶所理解的、並真實反映企業維特性的信息進行快速、一致、互動的存取,從而獲得對數據更深入了解的一類軟體技術。
邏輯概念
OLAP展現在用戶面前的是一幅幅多維視圖。維(Dimension):是人們觀察數據的特定角度,是考慮問題時的一類屬性,屬性集合構成一個維(
時間維、地理維等)。
維的層次(Level):人們觀察數據的某個特定角度(即某個維)還可以存在細節程度不同的各個描述方面(時間維:日期、月份、季度、年)。
維的成員(Member):維的一個取值,是
數據項在某維中位置的描述。(“
某年某月某日”是在時間維上位置的描述)。
OLAP的基本多維分析操作有鑽取(Drill-up和Drill-down)、切片(Slice)和切塊(Dice)、以及旋轉(Pivot)等。
鑽取:是改變維的層次,
變換分析的粒度。它包括向下鑽取(Drill-down)和向上鑽取(Drill-up)/上卷(Roll-up)。Drill-up是在某
一維上將低層次的細節數據概括到高層次的匯總數據,或者減少
維數;而Drill-down則相反,它從匯總數據深入到細節數據進行觀察或增加新維。
切片和切塊:是在一部分維上選定值後,關心度量數據在剩餘維上的分布。如果剩餘的維只有兩個,則是切片;如果有三個或以上,則是切塊。
旋轉:是變換維的方向,即在表格中重新安排維的放置(例如行列互換)。
體系結構
數據倉庫與OLAP的關係是互補的,現代OLAP系統一般以數據倉庫作為基礎,即從數據倉庫中抽取詳細數據的一個子集並經過必要的聚集存儲到OLAP
存儲器中供前端分析工具讀取。
OLAP系統按照其存儲器的數據
存儲格式可以分為
關係OLAP(RelationalOLAP,簡稱
ROLAP)、多維OLAP(MultidimensionalOLAP,簡稱MOLAP)和混合型OLAP(HybridOLAP,簡稱HOLAP)三種類型。
ROLAP
ROLAP將分析用的多維
數據存儲在
關係資料庫中並根據套用的需要有選擇的定義一批實視圖作為表也存儲在關係資料庫中。不必要將每一個SQL查詢都作為實視圖保存,只定義那些套用頻率比較高、計算工作量比較大的查詢作為實視圖。對每個針對OLAP伺服器的查詢,優先利用已經計算好的實視圖來生成查詢結果以提高查詢效率。同時用作ROLAP存儲器的
RDBMS也針對OLAP作相應的最佳化,比如並行存儲、並行查詢、並行
數據管理、基於成本的查詢最佳化、
點陣圖索引、SQL的OLAP擴展(cube,rollup)等等。
MOLAP
MOLAP將OLAP分析所用到的多維數據物理上存儲為
多維數組的形式,形成“
立方體”的結構。維的
屬性值被映射成多維數組的下標值或下標的範圍,而總結數據作為多維數組的值存儲在數組的單元中。由於MOLAP採用了新的
存儲結構,從
物理層實現起,因此又稱為物理OLAP(PhysicalOLAP);而ROLAP主要通過一些
軟體工具或
中間軟體實現,物理層仍採用關係資料庫的存儲結構,因此稱為虛擬OLAP(VirtualOLAP)。
HOLAP
由於MOLAP和ROLAP有著各自的優點和缺點(如下表所示),且它們的結構迥然不同,這給分析
人員設計OLAP結構提出了難題。為此一個新的OLAP結構——混合型OLAP(HOLAP)被提出,它能把MOLAP和ROLAP兩種結構的優點結合起來。迄今為止,對HOLAP還沒有一個正式的定義。但很明顯,HOLAP結構不應該是MOLAP與ROLAP結構的簡單組合,而是這兩種
結構技術優點的
有機結合,能滿足用戶各種複雜的分析請求。
功能
基本功能
(1)切片和切塊(Slice and Dice)
切片和切塊是在維上做投影操作。
切片就是在多維數據上選定一個二維子集的操作,即在某兩個維上取一定區間的維成員或全部維成員,而在其餘的維上選定一個維成員的操作。
維是觀察數據的角度,那么切片的作用或結果就是捨棄一些
觀察角度,使人們能在兩個維上集中觀察數據。因為人的
空間想像能力畢竟有限,一般很難想像四維以上的
空間結構,所以對於
維數較多的多維
數據空間,數據切片是十分有意義的.
(2)鑽取(Drill)
鑽取有向下鑽取(
Drill Down)和向上鑽取(Drill up)操作。向下鑽取是使用戶在多層數據中展現漸增的細節層次,獲得更多的細節性數據。向上鑽取以漸增概括方式匯總數據(例如,從周到季度,再到年度)。
(3)旋轉(Pivoting)
通過旋轉可以得到不同視角的數據。
旋轉操作相當於在平面內將
坐標軸旋轉。例如,旋轉可能包含了交換行和列,或是把某一個行維移到列維中去,或是把頁面顯示中的一個維和頁面外的維進行交換(令其成為新的行或列中的一個)。
廣義功能
從廣義上講,任何能夠有助於輔助用戶理解數據的技術或者操作都可以作為OLAP功能,這些有別於基本OLAP的功能被稱為廣義OLAP功能。
(1)基本代理操作
“代理”是一些智慧型性代理,當系統處於某種特殊狀態時提醒
分析員。
①示警報告:定義一些條件,一旦條件滿足,系統會提醒分析員去做分析。如每日報告完成或月訂貨完成等通知分析員作分析。
③異常報告:當超出
邊界條件時提醒分析員。如銷售情況已超出預定義閾值的上限或下限時提醒分析員。
計算引擎用於特定需求的計算或某種複雜計算。
(3)模型計算
特點
在線上分析處理的主要特點,是直接仿照用戶的多角度思考模式,預先為用戶組建多維的
數據模型,在這裡,維指的是用戶的分析角度。例如對銷售數據的分析,
時間周期是一個維度,產品類別、
分銷渠道、
地理分布、客戶群類也分別是一個維度。一旦多維數據模型建立完成,用戶可以快速地從各個分析角度獲取數據,也能動態的在各個角度之間切換或者進行多角度綜合分析,具有極大的分析靈活性。這也是在線上分析處理被廣泛關注的根本原因,它從
設計理念和真正實現上都與舊有的
管理信息系統有著本質的區別。
事實上,隨著
數據倉庫理論的發展,
數據倉庫系統已逐步成為新型的決策管理信息系統的解決方案。數據倉庫系統的核心是在線上分析處理,但數據倉庫包括更為廣泛的內容。
概括來說,數據倉庫系統是指具有綜合
企業數據的能力,能夠對大量企業數據進行快速和準確分析,輔助做出更好的商業決策的系統。它本身包括三部分內容:
1、
數據層:實現對企業運算元據的抽取、轉換、清洗和匯總,形成信息數據,並存儲在企業級的中心信息資料庫中。
2、套用層:通過在線上分析處理,甚至是
數據挖掘等套用處理,實現對信息數據的分析。
3、表現層:通過前台分析工具,將查詢報表、
統計分析、多維在線上分析和數據發掘的結論展現在用戶面前。
從套用角度來說,數據倉庫系統除了在線上分析處理外,還可以採用傳統的報表,或者採用
數理統計和人工智慧等數據挖掘手段,涵蓋的範圍更廣;就
套用範圍而言,在線上分析處理往往根據用戶分析的主題進行套用分割,例如:
銷售分析、
市場推廣分析、客戶
利潤率分析等等,每一個分析的主題形成一個OLAP套用,而所有的OLAP套用實際上只是數據倉庫系統的一部分。