第四章OLAP技術4.1OLAP技術概述4.2OLAP與多維度分析4.3OLAP的執行4.4多維度與關聯式OLAP4.5OLAP技術評估習題OLAP技術主要有兩個特色:•線上(On_Line),其呈現方式為對客戶申請的快速回應和互動式操作,它的執行是由客戶端╱伺服器架構完成的;•多維分析(Multi_Analysis),這也是OLAP技術的重點所在。4.1.1OLAP的發展•在1960年代末期,E.P.Codd提出關聯式資料模型,促進了關聯式資料庫與線上交易處理的發展。•E.F.Codd在1993年將這類技術稱為OLAP。•OLAP主要是針對特定問題的線上資料查詢和分析。4.1.2OLAP的特色(1)快速性需求系統能在數秒內對客戶的多數分析需求作出反應。(2)可分析性OLAP系統應能處理與應用有關的邏輯及統計分析。(3)多重維度性多維性是OLAP的關鍵屬性。系統能夠提供對資料分析的多維視覺圖和多維分析。(4)資訊性不論資料量有多大.也不管資料儲存在何處,OLAP系統應能即時獲得資料,並且管理大容量資訊。4.2OLAP與多維度分析4.2.1多維基本概念1.維度(Dimension)•資料倉儲中的維度,一般具有水平階層和垂直階層。水平階層由維度階層中相同級別的欄位值構成,例如圖4.1中的北部、中部和南部階層。•垂直階層則由為度階層架構中具有不同級別的字元值所構成,例如圖4.1中的北部、台北階層。2.多維度資料集合多維度資料集合是決策支援的支柱,也是0LAP的重點,有時也稱為立方體或超立方。OLAP展現在客戶面前的是一幅幅多維度視覺圖。3.維度成員•維度成員是維度的一個取值,如果維度已經分成了若干個維度,那麼維度成員就是不同維度階層取值的組合。例如,某一公司的銷售資料有市、區、里地理維度的三個階層,那麼”台北市”就構成了地理維度的一個維度成員。•維度成員並不是一定要在維度的每一個階層上都取值。例如,“台北市”、“文山區”都是地理位置維度的維度成員。維度成員的值並不是人們在資料倉儲中所關心的物件,人們常常是用這些維度成員去描述他所關心的主題。4.多維資料集的度量值在多維資料集中有一組度量值,這些值是多維資料集中事實表導向的一列或多列,這些值應該是數字。5.群集(Agrregation)群集或聚合是指收集了基本交易資料的結構。在一個立方體中包括很多階層,這些階層可以向客戶提供某一階層的一般化資料。4.2.2多維分析1.多維的切片在切片的概念中,有兩個重要的概念必須確實掌握:•一個是多維資料集的切片數量的多少是由所選定的那個維的維成員數量的多寡所決定的。•另一個是進行切片操作的目的是使人們能夠更好地了解多維資料集。2.多維的切塊實際上,切塊操作也可以看成是進行了多次切片操作之後,將每次切片操作所得到的切片重疊在一起而形成的。3.旋轉在對資料倉儲中的多維資料集進行顯示操作過程中,客戶常常希望能夠對多維資料集改變其顯示的維度方向,也就是說進行多維度資料的旋轉(rotate)操作。4.其他OLAP操作在OLAP的分析中,還有”上捲”(roll_up)、”下鑽”(drill_down)、”鑽過”(drill_across)和”鑽透”(drill_through)等鑽取操作。4.2.3維度的階層關係4.2.4維度的類別關係4.2.5OLAP與資料倉儲的關係從OLAP使用效率的角度考量,在設計資料倉儲時應該考量這樣一些因素:•可能使用星形架構,如果採用雪花結構,就要最小化事實表底層維度表之後的維度表的數量。•為客戶設計包含事實表的維度表,這些維度表應該包含有意義的、客戶希望瞭解的資訊。•維度表的設計應該符合通常意義上的範式限制,維度表中不要出現相關的資訊。•事實表中不要包含匯總資料,事實表中所包含的客戶需要存取的資料應該具有必須的粒度,這些資料應該是同一階層的資料。•對事實表和維度表中的關鍵字必須建立索引,同一種資料可能使用一個是事實表。•保證資料的參考完備性,史事時表中的所有資料都出現在所有的維度表中,避免事實表中的某些資料行在立方體進行群集運算時沒有加進來。4.3OLAP的執行這種三層客戶端╱伺服器的架構通常將資料倉儲、OLAP伺服器與客戶端區隔分開。系統的主要處理(例如資料存取、後端資料處理、報表的預先處理)都是由OLAP伺服器上的應用完成,而不是由客戶端完成。4.4多維度與關聯式OLAP如果採用多維度資料庫(MDDB-MultiDimensionalDataBase)儲存、顯示資料,那麼這種OLAP系統就是多維度導向的OLAP,即MOLAP。4.4.1多維度資料庫4.4.2多維度資料庫的資料儲存在MDDB中。其資料的儲存是由許多類似於陣列的物件來完成的。在這些物件中包含了經過高度壓縮的索引和指標,利用這些索引和指標將許多儲存資料的單元連接在一起。4.4.3多維度資料庫與資料倉儲在OLAP的實際應用中,有不少人希望直接從交易處理系統中萃取資料,也就是將圖4.6中的第三層去掉,將第二層的OLAP伺服器直接與交易處理系統連接。這樣在OLAP的應用中,系統設計就十分簡便,但是此種OLAP的架構在實際應用中有下列一些很嚴重的問題:•增加資料萃取部分的工作量•缺乏統一的資料來源和結論•加大系統的維護工作量•缺乏對超資料的有效管理•加大OLAP系統的開發投入4.4.4MOLAP的創建與功能1.MOLAP的創建•選擇功能•確定分析數值•架構分析維度•定義邏輯模型2.MOLAP的功能•快速回應能力•與多維度資料庫進行互動的能力•採掘資訊之間的關係•多樣化模型•資料導覽能力4.4.5ROLAP執行的三個規則ROLAP的執行必須遵照這樣三個規則:1.支援OLAP原則ROLAP是將資料儲存在關聯式資料庫中,但是它的基本功能依然是線上分析處理。2.資料儲存在某一個關聯式資料庫中3.支援某種形式的群集導覽所謂的群集導覽是一種能夠為客戶的不同查詢,選擇一個最小可用列表的軟體,因為在資倉儲中除了基本事實表以外,還包含了一些概況表。4.4.6ROLAP的多維度表示法事實表運用每一個維度的主鍵值與維度表聯結在一起,這樣就構成了如圖4.8所示的“星型模式”。在圖中心的銷售情況表是一個事實表,在表中儲存了產品ID、經銷商ID、地址ID、時間ID四個維度表的主鍵。2.雪花模式在關聯式資料庫中的表示法在產品維度上劃分產地類別、銷售地類別、用途類別、產品類別等若干類別,這樣在星型模式的角上就出現了分支,也就是說星型模式變成了“雪花”模式。在圖4.9中所示的“雪花模式”就是在圖4.8的星型模式上的產品維度上演變而來的。4.4.7ROLAP的創建與功能1.ROLAP的創建ROLAP的創建首先與MOLAP一樣需要執行選擇功能、確定分析數值、建構分析維度、定義邏輯模型,然後還需要根據ROLAP執行的準則完成。(1)資料添加(2)資料管理(3)超資料儲存(4)應用工具建構2.ROLAP的功能(1)關聯式資料的商業視覺圖(2)維度階層支援(3)模型的自訂定義(4)細剖細節性階層(5)資料的備份、恢復和安全功能(6)超資料導覽航(7)OLAP伺服器性能的協調4.5OLAP技術評估4.5.1MOLAP與ROLAP的比較1.查詢性能MOLAP的查詢能力一般較好,因為在多維度資料庫中常常根據客戶的需求事先做好了許多計算。2.資料載入性能在許多MOLAP中多維度資料庫的載入往往是一個月才進行一次。而對於ROLAP來說,在資料載入過程中所要完成的操作僅是資料載入、索引和概況表的創建。3.分析能力ROLAP的分析結果往往由於SQL語言的限制,使ROLAP的分析效果往往不如MOLAP。4.資料市集的大小ROLAP中所使用的關聯式資料庫,一般不會出現稀疏矩陣的情況。而且在實際應中,ROLAP資料庫可以支持無限成長的資料儲存要求,只要硬碟空間足夠大,而大多數多維度資料庫的容量不能無限成長。5.維度的管理ROLAP資料庫由於採用了星型模式構建,星型模式的維度表可能很寬,可以包含很多列。6.維護能力OLAP在建構成功以後,需要不斷地對其進行維護。MOLAP能夠較好地進行自我維護。4.5.2OLAP的衡量標準(1)多維度性(2)具體性(3)可存取性(4)解讀性整批處理萃取(5)OLAP分析模型(6)客戶端/伺服器結構性(7)透明性或開放性(8)多重客戶性(9)處理非正規資料性(10)儲存OLAP結果(11)萃取遺漏值(12)處理遺漏值(13)彈性報表(14)一致性能報表(15)對實體層的自動調整(16)通用維度(17)無限制跨維度操作4.5.3OLAP伺服器和工具的評估標準1.OLAP功能OLAP作為一種資料分析技術,主要是透過對現有的資料進行計算、轉換產生新的資訊,並顯示給客戶。例如在不同維度之間進行成本分配或在電子試算表中按照不同維度進行損益表的計算。2.存取性能管理人員所組成的OLAP客戶,在使用OLAP時,希望能夠得到多種存取資料工具的選擇,能夠將客戶所熟悉的存取工具整合進OLAP中。例如VisualBasic、PowerBuilder、VisualC等應用環境或OLE.DDE.CORBA等介面,也是衡量OLAP工具存取性能的一個評估標準。3.引擎功能OLAP的服務引擎都應該滿足分析模型及應用在功能、規模和技術特徵上的要求。這些要求主要集中在能否滿足進行互動式預測和預算的應用程式的讀寫功能。4.管理能力OLAP並不像一般的業務作業系統,客戶對其提出了強大的處理功能和便捷的使用需求,而要求OLAP能夠提供有力的管理工具。