联机分析(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.