1. 概述
1.1. Mondrian简介
Mondrian 是一个用 Java 写成的 OLAP 引擎,是开源项目 Pentaho 的一部分。它实现了 MDX语言、XML 解析、JOLAP 规范。它从 SQL 和其它数据源读取数据并把数据聚集在内存缓存中,然后经过 Java API用多维的方式对结果进行展示,同时可以不写 SQL就能分析存储于 SQL 数据库的庞大数据集,可以封装 JDBC数据源并把数据以多维的方式展现出来。
JPivot 是 Mondrian 默认的表现层工具,它是一个 JSP 自定制的标签库,可以绘制 OLAP 分析图表。用户可以执行典型的 OLAP 导航,如下钻、切片。JPivot 使用 Mondrian 作为它的 OLAP 服务器但也支持 XML/A 数据源访问。它使用 WCF (Web Component Framework)框架 ,基于XML/XSLT来渲染 Web UI组件。
Mondrian 支持的数据库或数据仓库主要有:LucidDb、Oracle、 Access、MySQL、Sybase、Ingres、Postgres、Hypersonic、Teredata等。Mondrian 主要特点是对立方体进行了缓存,众所周知,缓存庞大的立方体对性能有很大的影响,但是 Mondrian利用 java语言的特点对这一点进行了很好的控制。其次由于 Mondrian基于 java语言,所以它能运行在不同的平台之上。
相关文档:
- xxx文档的链接
1.2. Mondrian架构
Mondrian从架构上可以分为四个层次:表现层、计算层、聚合层、存储层。
- 计算层:分析、验证、执行 MDX语句,先计算坐标轴,然后再计算每个单元格的值,从效率上的考虑,计算层批量从聚合层获取单元格数据集合。
- 聚合层:聚合层中缓存了多维查询结果,即单元格的数据集合,如果计算层所需要的数据不在缓存中,从存储层中进行查询获取数据并缓存。
- 存储层:采用关系数据库实现,一般采用星型模型构建,提供维表、事实表和聚合表。
系统部署结构上,可以分三层结构分开部署,将表现层部署在一台机器上,计算层和聚合层部署在第二台,存储层部署在第三台。
1.3. Mondrian特性
Mondrian用一个 XML文件来存储 Cube元数据信息,描述 Cube的逻辑视图。有以下特性:
- 支持共享维度。
- 支持虚拟 Cube
- 支持一个维度有多个 Hierarchy
- 支持标准维、雪化维和父子维
- 支持自定义成员/命名集
2. 配置 Mondrian
Mondrian下载地址:http://sourceforge.net/projects/mondrian
Mondrian配置过程大致如下:
1、 下载文件:从SourceForge网站上下载最新版本的mondrian-version.zip并解压;
2、 准备关系数据库:默认可使用 Mondrian自带的 Access(MondrianFoodMart.mdb)数据库,需在机器上配置一个 ODBC数据源连接至此数据库;也可以配置其他数据库。
3、 发布 Mondrian应用:
(1) 准备一个 JDK 1.4.2或以上版本的 Web环境,如 Tomcat 5.5;
(2) 从第(1)步中解压后的目录中找到 mondrian.war文件,解压至/Tomcat_Home
/webapps/mondrian目录下;
(3) 打开 Tomcat_Home/webapps/mondrian/WEB-INF/mondrian.properties文件,修改
mondrian.jdbcDrivers为实际使用的数据库信息。
(4) 打开 Tomcat_Home /webapps/mondrian/WEB-INF/datasources.xml文件,修改
DataSourceInfo为实际使用的数据库信息。
(5) 将 xalan.jar文件和实际使用的数据库的 JDBC驱动程序 jar文件拷贝至
Tomcat_Home /webapps/mondrian/WEB-INF/lib/目录下;
4、 启动Web application即可通过http://localhost:8080/mondrian/访问了。
初次使用 Mondrian时,可采用其内置的 Access数据库及默认的配置文件,无须修改太多内容
即可完成配置。
深入使用 Mondrian时,有如下几个配置文件需要了解清楚:
1、mondrian.properties:属性文件,主要设置Mondrian的运行属性。
2、datasources.xml:数据源定义文件,Mondrian支持多个数据源、多个目录(Catalog)。
3、web.xml:Web应用配置文件,如配置MondrianXmlaServlet。默认可不作修改。