聯機分析(OLAP)處理專門設計用于支持復雜的分析操作,側重對決策人員和高層管理人員的決策支持,可以應分析人員要求快速、靈活地進行大數據量的復雜查詢處理,并且以一種直觀易懂的形式將查詢結果提供決策人員,.
1993年,E.F.Codd 將這類技術定義為“OLAP”。鑒于Codd 關系數據庫之父的影響。OLAP 的提出引起了很大反響,OLAP作為一類產品同OLTP明顯區別開來。
Codd提出OLAP的12條準則來描述OLAP系統:
* 準則1 OLAP模型必須提供多維概念視圖
* 準則2 透明性準則
* 準則3 存取能力推測
* 準則4 穩定的報表能力
* 準則5 客戶/服務器體系結構
* 準則6 維的等同性準則
* 準則7 動態的稀疏矩陣處理準則
* 準則8 多用戶支持能力準則
* 準則9 非受限的跨維操作
* 準則10 直觀的數據操縱
* 準則11 靈活的報表生成
* 準則12 不受限的維與聚集層次
你可以產看http://ttnn.c3crm.com/index.php?title=OLAP 獲得更多OLAP的信息。
rolap 中的r是relational的意思,使用關系數據庫RDBMS,所以性能的更多是靠RDBMS的性能和技巧,ROLAP支持更多的用戶和數據量,ROLAP將多維數據庫的多維結構劃分為兩類表:一類是事實表,用來存儲數據和維關鍵字(外鍵);另一類是維表,每個維至少使用一個表來存放維的層次,所謂的'"星型模式"就是指維表和事實表通過主關鍵字和外關鍵字聯系在一起。對于層次復雜的維,為避免冗余數據占用過大的存儲空間,可以使用多個表來描述,這種星型模式的擴展稱為"雪花模式"。如果你對星型模型和雪花模型有興趣的話,也可以到http://mondrian.pentaho.org/documentation/aggregate_tables.php 看看。
molap 中的M是指multidimensional 多維的意思,它使用一種預先設計和計算過cube,所以數據處理的速度要快的多.
rolap和molap的比較:
rolap使用現有的RDBMS,相對容易建模和控制。相應速度比MOLAP慢,數據裝載的速度快,儲存空間小,沒有文件大小的限制,數據庫可以做很多優化.
molap性能好,反映速度快,但是建模的難度很大,而且無法支持維度的動態變化,文件大小有限制,沒有象關系型數據庫那樣有標準的訪問接口比如JDBC,ODBC之類的。
HOLAP 是混合OLAP。
DOLAP 是 Desktop的OLAP , 應用不是很廣,了解一下就夠了。
OLAP 分為Server 和 Client .讓我們看看都又有那些開源的產品實現了OLAP的功能。
Mondrian : http://mondrian.pentaho.org . Mondrian是開源世界中最為有名的OLAP Server 了,在后面介紹Momdrian的時候會特別介紹的。
JPivot : http://jpivot.sourceforge.net/ 一個OLAP的客戶端,使用XML+XSL來展現OLAP的數據,雖然我們總是說Mondrian + JPivot ,但是其實Mondrian官方都說他們是小心翼翼的分開Mondrian + JPivot的,所以你可以任意選擇OLAP Server 和 OLAP Client 的組合的,JPivot 也支持MSSQL Server的 OLAP 數據源的.
Palo : http://www.imppalo.com/ 一個MOLAP實現,已經有商業化公司運行了,產品相對成熟,如果你看過RoadMap 那一篇的話,你就應該已經知道spagoBI的roadmap里面已經開始要支持Palo了.
JPalo : http://www.jpalo.com/ 一個基于Palo的Java客戶端,基于eclipse的RCP 技術,并提供API訪問Palo的Server 。SpagoBI 在RoadMap中也計劃支持這對組合,Mondrian + JPivot 的競爭對手.
Cubulus OLAP : http://cubulus.sourceforge.net/ 一個OLAP Server + Client , Python寫的,目前支持mySQL,PostgreSQL , SQLite .看來還很不成熟。
openRubik : http://sourceforge.net/projects/open-rubik/ 一個基于WEB的OLAP 的 Client ,目前還沒有可以下載的版本。(沒有下載的你也寫上去!可能跟Jrubik有關,不然為什么叫openRubik 呢?)
Jrubik : http://rubik.sourceforge.net/ Jrubik 是一個基于Mondrian 或 MS Analysis的Java客戶端,是一個JPivot的Swing客戶端,基于JPivot的組件,Mondrian官方顯然知道JPivot的不足所以用Swing的架構來擴展OLAP 的功能.
FreeAnalysis : http://sourceforge.net/projects/freeanalysis/ 一個基于eclipse的RCP + WEB 2.0(Dojo) 的項目,目的是提供和Mondrian 和Microsoft Analysis 和 Hyperion相同功能,目前是0.69版,上面有個視頻可以看看Demo,感覺還不錯。
FreeOLAP : http://freeolap.com/ 改名之前的FreeAnalysis
olap4j : http://sourceforge.net/projects/olap4j/ 上面就一個PDF文件,不知道它要干嘛。
OpenROLAP : http://www.openrolap.org/index.shtml 從名字就知道是ROLAP的Server 端。官方上面說對RDBMS做了很多的優化,支持大數據量。目前是0.1版,還很不成熟。
JMagallanes Olap and Report : http://sourceforge.net/projects/jmagallanes/ OLAP + Report . 只只有有這個名字,不知道是怎么樣子的.
JasperAnalysis : http://www.jaspersoft.com/ jaspersoft 一直在Mondrian就有開發人員的,在mondrian的mail list 和 forum 里面經常可以看到jaspersoft 的人,至于jaspersoft的analysis是怎么樣的我不知道,不過Mondrian有一個編寫MDX Scheme的 workbench 軟件就是Jaspersoft里面的一個人做的,所以jaspersoft一直在OLAP方面都有投入的.(現在大家該相信我說jaspersoft不光只是做報表了吧).
BIOLAP : http://biolap.sourceforge.net/ BIOLAP 是源與corwinjoy對JPivot顯示樹狀結構不爽,然后跑到Mondrian的mail list里面去問有沒有辦法顯示JTreeMap , Mondrian里面的人說你可以自己去實現一個,然后那個人就自己跑去實現了一個BIOLAP.
http://www.chinabi.net/CIO/knowledge/200706/444.html