多維聯(lián)機分析處理
1.什么是多維聯(lián)機分析處理
多維聯(lián)機分析處理(多維OLAP)是一個直接編入多維數(shù)據(jù)庫的聯(lián)機分析處理(OLAP)。一般來說,一個OLAP應(yīng)用程序以多維方式處理數(shù)據(jù)。用戶可以觀察數(shù)據(jù)集合體的不同方面,例如銷售時間,地點和產(chǎn)品模型。如果數(shù)據(jù)貯存在相關(guān)的數(shù)據(jù)庫里,那么它能被多維的觀察,但是只能用連續(xù)的訪問和處理數(shù)據(jù)集合體的一個方面的表格的方式。MOLAP處理已經(jīng)存貯在多維列表里的數(shù)據(jù),在列表里數(shù)據(jù)可能的結(jié)合都被考慮,每個數(shù)據(jù)都在一個能夠直接訪問的單元里。因為這個原因,對大多數(shù)用途來說,MOLAP都比關(guān)系型聯(lián)機分析處理(Relational Online Analytical Processing)要更快和更受用戶歡迎。也有HOLAP(混合OLAP),結(jié)合了ROLAP和MOLAP的一些特性。
多維OLAP,基于多維數(shù)據(jù)存儲的在線分析處理,MOLAP服務(wù)器提供數(shù)據(jù)存儲管理,一般是放在物理的“立方塊(Cube)”當(dāng)中。
MOLAP常常用作數(shù)據(jù)倉庫應(yīng)用程序的一部分。
MOLAP使用一種持久穩(wěn)固的立方體結(jié)構(gòu),與關(guān)系型數(shù)據(jù)庫是分離的。Hyperion Essbase、Microsoft Analysis Services、Cognos PowerPlay都是使用了這種方法。因為一個立方體包含一個預(yù)先計算好的數(shù)據(jù)子集,所以與DOLAP和ROLAP相比響應(yīng)時間更快速且可以預(yù)測。 MOLAP數(shù)據(jù)庫傳統(tǒng)上還具有更大程度的多維計算,比ROLAP中也更容易實現(xiàn)。例如,Hyperion Essbase使用一個@DESCENDANTS功能,讓你將一個特定級別中的成員指向同一層次(如,一月、二月、三月并列是第一季度的下一級)。盡管一些關(guān)系數(shù)據(jù)庫具有CASE功能,也可以使你在一個計算中指向這些行,但并不是所有都能做到,而且計算并不一定都是直截了當(dāng)。
MOLAP的大幅下降是因為它是需要IT支持、管理、維護的另外一種數(shù)據(jù)存儲。公司抱怨維護200個立方體需要很多努力,或公司擁有的是花費一個星期重新計算的設(shè)計不良的立方體,這都是很平常的。當(dāng)一個維空間改變,如增加一個新的產(chǎn)品或改組業(yè)務(wù)單元,你可能就不得不重新計算整個MOLAP立方體。
MOLAP是事先生成多維立方體,供以后查詢分析用,而ROLAP是通過動態(tài)的生成Sql,去做查詢關(guān)系型數(shù)據(jù)庫,如果沒有做性能優(yōu)化,數(shù)據(jù)量很大的時候,性能問題就會顯得比較突出了。
以多維數(shù)據(jù)組織方式為核心,也就是說,MOLAP使用多維數(shù)組存儲數(shù)據(jù)。多維數(shù)據(jù)在存儲中將形成“立方塊(Cube)”的結(jié)構(gòu),在MOLAP中對“立方塊”的“旋轉(zhuǎn)”、“切塊”、“切片”是產(chǎn)生多維數(shù)據(jù)報表的主要技術(shù)。
2.多維聯(lián)機分析處理的特點
在MOLAP中,不但把多維實視圖在概念上看成一個超立方體,而且在物理上把多維實視圖組成一個多維數(shù)據(jù)庫,而不像ROLAP那樣,以表的形式存儲實視圖。
在MOLAP中,維的屬性值被映射成多維數(shù)組的下標(biāo)值或下標(biāo)的范圍,而總結(jié)數(shù)據(jù)作為多維數(shù)組的值存儲在數(shù)據(jù)的單元中。維可以看作為自變量,總結(jié)數(shù)據(jù)稱為因變量。自變量相當(dāng)于關(guān)系中的主關(guān)鍵字,由多個維組成,總結(jié)數(shù)據(jù)是由自變量的值決定的。
ROLAP在節(jié)省存儲空間、靈活性、與關(guān)系數(shù)據(jù)庫保持一致等方面有明顯的優(yōu)勢;MOLAP則在性能和管理的簡便性方面有其優(yōu)點。雖然MOLAP的查詢速度比較快,但是在實現(xiàn)時也有下面3方面的限制:
1) 用多維數(shù)組實現(xiàn)多維實視圖,需要很大的存儲空間。在實際的數(shù)據(jù)倉庫中,每維的屬性值個數(shù)可達數(shù)萬,乃至更多。例如幾萬種產(chǎn)品、幾萬個連鎖店等。而實際的維數(shù)可能多達幾十乃至幾百。耗費的存儲空間相當(dāng)可觀,由此帶來加載、維護等問題。
2) 在多維數(shù)組中,很可能有些單元是空白的,例如節(jié)假日商店不營業(yè);某些產(chǎn)品在某些地區(qū)不銷售等。
3) MOLAP與關(guān)系數(shù)據(jù)庫系統(tǒng)從存儲結(jié)構(gòu)到查詢語言都有相當(dāng)大的差別,不可能在RDBMS的基礎(chǔ)上實現(xiàn)。
3.多維聯(lián)機分析處理與關(guān)系型聯(lián)機分析處理比較
Rolap | Molap |
---|---|
沿用現(xiàn)有的關(guān)系數(shù)據(jù)庫的技術(shù) | 專為olap所設(shè)計 |
響應(yīng)速度比molap慢:現(xiàn)有關(guān)系型數(shù)據(jù)庫已經(jīng)對olap做了很多優(yōu)化,包括并行存儲、并行查詢、并行數(shù)據(jù)管理、基于成本的查詢優(yōu)化、位圖索引、sql 的olap擴展(cube,rollup)等,性能有所提高 | 性能好、響應(yīng)速度快 |
數(shù)據(jù)裝載速度快 | 數(shù)據(jù)裝載速度慢 |
存儲空間耗費小,維數(shù)沒有限制 | 需要進行預(yù)計算,可能導(dǎo)致數(shù)據(jù)爆炸,維數(shù)有限;無法支持維的動態(tài)變化 |
借用rdbms存儲數(shù)據(jù),沒有文件大小限制 | 受操作系統(tǒng)平臺中文件大小的限制,難以達到tb 級(只能10~20g) |
可以通過結(jié)構(gòu)化查詢語言(sql)實現(xiàn)詳細數(shù)據(jù)與概要數(shù)據(jù)的存儲 | 缺乏數(shù)據(jù)模型和數(shù)據(jù)訪問的標(biāo)準(zhǔn) |
不支持有關(guān)預(yù)計算的讀寫操作:sql無法完成部分計算;無法完成多行的計算;無法完成維之間的計算 | 支持高性能的決策支持計算:復(fù)雜的跨維計算;多用戶的讀寫操作;行級的計算 |
維護困難 | 管理簡便 |