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年),对抽象艺术的发展曾经产生很深影响。
  以下为这位艺术家的几幅作品:

 

阿里云 ECS 免费体验之旅初体验详细记录

朋友申请了一个ecs的云服务体验,然我帮忙去研究下,部署一个web应用程序,下面是操作记录。 1,输入登录进入查看有一个实例 2,看到实例右边有“管理”,点击管理进去可以看到实例的详细信息3,在“管理...
  • mchdba
  • mchdba
  • 2015年01月11日 12:41
  • 3051

OLAP多维分析之mondrian安装

1、mondrian安装   下载mondrian 地址:http://sourceforge.net/projects/mondrian/files/mondrian/ 我这使用的 是 mondri...
  • u011397857
  • u011397857
  • 2014年03月22日 20:47
  • 1999

Mondrian 3.0.4 学习总结

Mondrian 是一个用 Java 写成的 OLAP 引擎,是开源项目 Pentaho 的一部分。它实现了 MDX 语言、XML 解析、JOLAP 规范。它从 SQL 和其它数据源读取数据并把数...
  • zhangzhongzhong
  • zhangzhongzhong
  • 2016年02月18日 14:01
  • 3203

Mondrian的常用查询语句

Mondrian的常用查询语句
  • qzp1991
  • qzp1991
  • 2015年03月31日 11:39
  • 844

改造mondrian的构想

对OLAP引擎(主要是mondrian)的一些理解
  • yu616568
  • yu616568
  • 2015年08月01日 16:53
  • 1813

mondrian与java工程的集成

mondrian与java工程的集成
  • qzp1991
  • qzp1991
  • 2015年03月04日 15:47
  • 1255

mondrian使用测试

项目中需要调研使用mondrian,自己从网上下了一个的demo,但是运行过程中遇到了一些问题,随着对问题的分析和解决也加深了对mondrian的使用。...
  • yu616568
  • yu616568
  • 2015年03月04日 19:07
  • 4192

mondrian的个人总结

mondrian的个人总结
  • qzp1991
  • qzp1991
  • 2015年03月19日 19:58
  • 1120

Mondrian入门

 Mondrian是一个开放源代码的Rolap服务器,使用java开发的。
  • chch87
  • chch87
  • 2014年04月17日 21:40
  • 2069

Mondrian的schema中,如何做到同一纬度的不同level数据作为查询条件来用?

如下schema代码片段:
  • gsying1474
  • gsying1474
  • 2017年03月22日 22:43
  • 1623
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Mondrian之初体验
举报原因:
原因补充:

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