Mondrian之初体验

转载 2007年10月01日 10:15:00
概述

    由于项目需要,今天开始接触OLAP(Online Analytics Process, 联机分析处理)。说到OLAP,不能不用穷人通用的Mondrian。Mondrian官方网站(http://mondrian.pentaho.org/)给出的定义是 Mondrian is an OLAP server written in Java. It enables you to interactively analyze very large datasets stored in SQL databases without writing SQL.
     说白了,Mondrian是一个OpenSource的基于关系数据库的分析服务器,遵循MDX、XML/A和JOLAP标准。

·架构

  
  Mondrian从架构上可以分为四个层次:表现层、计算层、聚合层、存储层。
  计算层:分析、验证、执行MDX语句, 先计算坐标轴,然后再计算每个单元格的值,从效率上的考虑,计算层批量从聚合层获取单元格数据集合。
  聚合层:聚合层中缓存了多维查询结果,即单元格的数据集合,如果计算层所需要的数据不在缓存中,从存储层中进行查询获取数据并缓存。
  存储层:采用关系数据库实现,一般采用星型模型构建,提供维表、事实表和聚合表。
  系统部署结构上,可以分三层结构分开部署,将表现层部署在一台机器上,计算层和聚合层部署在第二台,存储层部署在第三台。

·存储和聚合

  根据OLAP服务器数据存储技术,可以分为ROLAP和MOLAP,Mondrian采用ROLAP技术。
  在ROLAP的多维模型组织和存储数据中,比较常用的方式是星型模式,由一个事实表和一组维度表组成。维度必须预先确定,可以是一般的星型架构,也可以是比较特殊的父子架构、雪花架构等。在ORACLE数据库中,我们能够按照维度进行预先的统计、分类、排序,创建大量的实体化视图。对于没有实体化视图类似功能的数据库,我们也可以创建大量的临时聚合表,这样当用户进行比较高级的分析的时候,不用访问数据量庞大的基础事实表,只需要在我们已经形成的实体化视图或聚合表上作进一步的聚合就可以了,这样能够大大提高查询分析的效率,并且减少占用的系统资源。
  在使用聚合表方面有一个关键的技术称之为"聚合感知"技术,只有OLAP引擎必须能够根据多维查询中的维度信息,从适当的聚合表中提取数据,否则聚合表形同虚设。另外在多维模型设计中,设计正确的聚合表也是很关键的。不恰当的设计导致将聚合表的不能满足多维查询的需求,每次从事实表取数据,开销是非常大的。
  Mondrian采用关系数据库存储事实表,其本身不具有"聚合感知"的技术,当需要从比较明细的事实表中汇总数据时,性能就比较差了。但是如果关系数据库能够支持实体化视图或其他聚合技术,那么就可以利用关系数据库的技术透明的提高系统性能。我们可以利用Oracle实体化视图来提高Mondrian的效率。 

·初次使用

   从SourceForge上下载了mondrian-2.3.2.8944版(http://sourceforge.net/project/showfiles.php?group_id=35302),解压得到了里面的demo war包,自己搭建环境使用了一下Mondrian。下面的截图是我运行得到的结果:


    关于具体如何使用,请关注我的下一篇文章 :-)


PS:  历史上的Mondrian

    Mondrian,蒙得里安·皮特,1872-1944荷兰画家,作品以交错的三原色为基色的垂直线条和平面为特点,他的著作包括新造型主义(1920年),对抽象艺术的发展曾经产生很深影响。
  以下为这位艺术家的几幅作品:

 

Linux脚本编程之初体验

  • 2013年07月17日 09:30
  • 118KB
  • 下载

Web基础——WebApp之初体验(三)

  • 2016年09月26日 14:58
  • 656KB
  • 下载

Android百度地图开发(一)之初体验

转载请注明出处:http://blog.csdn.net/crazy1235/article/details/42614603      做关于位置或者定位的app的时候免不了使用地图功能,本人最近...

嵌入式Linux系统之初体验

  • 2007年03月02日 20:54
  • 17KB
  • 下载

ExtJS4之初体验

  • 2012年06月08日 20:09
  • 70KB
  • 下载

AWR之初体验-手动管理Snapshots

Snapshots是一组某个时间点历史数据的集合,这些数据可被ADDM(Automatic Database DiagnosticMonitor)用来做性能对比。默认情况下,AWR能够自动以小时为单位...

嵌入式Linux系统之初体验

  • 2011年02月01日 11:29
  • 15KB
  • 下载

AWR之初体验-手动控制Snapshots.docx

  • 2013年05月09日 14:34
  • 20KB
  • 下载

Android开发学习之路--RxAndroid之初体验

学了一段时间android,看了部分的项目代码,然后想想老是学基础也够枯燥乏味的,那么就来学习学习新东西吧,相信很多学java的都听说过RxJava,那么android下也有RxAndroid。   ...

apache activeMQ之初体验(helloworld)

  • 2014年05月29日 19:47
  • 2.19MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Mondrian之初体验
举报原因:
原因补充:

(最多只允许输入30个字)