最近刚接触Mondrian,准备学习这个强大的开源Olap工具,首先从它自带的demo例子程序学起,下面将在windows平台给出几种连接数据库(odbc数据源、mysql、oracle)的配置方法。
一、对Mondrian的介绍(引用官方的介绍):
Mondrian is an OLAP (online analytical processing) database written in Java. It reads from JDBC data sources, aggregates data in a memory cache, and implements the MDX language and XML/A API.
(Forums and mailing list at http://mondrian.pentaho.org.)
二、下载Mondrian工具
开源网站的下载地址: http://sourceforge.net/project/showfiles.php?group_id=35302
下载最新版本(
2007-08-31 ): mondrian-2.4.2.9831.zip 还有一个derby版的,目前我还不清楚它们有什么区别,暂时下载前面那个就行了。
三、配置运行Mondrian
Mondrian自带的demo是一个web应用程序,直接放在服务器上,然后配置数据库连接就可以运行了。前提条件要求电脑上已安装jdk和服务器tomcat。
首先,将下载到的mondrian-2.4.2.9831.zip解压缩,可以看到包含几个文件夹:demo、doc、lib、mondrian-2.4.2.9831-src.zip。其中demo文件夹里面包含了演示程序需要用到的数据源(access)和sql脚本,还有一个FoodMart.xml,是用MDX语言写的文件;doc文件夹是一些英文帮助文档,可以参考;lib文件夹是Mondrian的核心API类的jar包。
演示程序就是在lib文件夹下的mondrian.war这个文件,将其解压缩放到tomcat服务器下webapp目录,然后配置数据库就可以运行了。下面给出我试验过的三种方式。
(1)jdbc-odbc连接
需要建立数据源,名字为:MondrianFoodMart,数据源指向/demo/access/MondrianFoodMart.mdb这个数据库。然后启动tomcat服务器,浏览器中输入:http://localhost:8080/mondrian 就可以看到效果了。
这种方式是例子程序默认的,不用再修改里面一些文件。
(2)mysql数据库
第一步:打开mysql数据服务器,建立数据库footmart;
第二步:将mysql的jdbc驱动包
mysql-connector-java-5.1.5-bin.jar放在tomcat的lib下面。然后在命令行中建立数据库。运行cmd.exe,输入命令:
java -cp "
C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\mondrian\WEB-INF\lib\
mondrian.jar;C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\mondrian\WEB-INF\lib\
log4j-1.2.8.jar;C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\mondrian\WEB-INF\lib\
eigenbase-resgen.jar;C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\mondrian\WEB-INF\lib\
eigenbase-xom.jar;C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\mondrian\WEB-INF\lib\
eigenbase-properties.jar;C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\
mysql-connector-java-5.1.5-bin.jar" mondrian.test.loader.MondrianFoodMartLoader -verbose -tables -data -indexes -jdbcDrivers=
com.mysql.jdbc.Driver -inputFile=
FoodMartCreateData.sql -outputJdbcURL="
jdbc:mysql://localhost:3306/foodmart?user=root&password=admin"
这一步比较重要,上面红色标识的是需要用到的jar,蓝色标识的标识根据你电脑的情况相应修改,注意里面的空格,最好是在文本文件里写好再复制到命令行里面运行。运行成功的话将开始创建数据库表以及索引和插入测试的数据,可能要持续10分钟。
第三步:修改配置文件,改换驱动连接字符串。
分别修改
mondrian.properties,datasources.xml,web.xml三个文件。
找到下面的代码:
Provider=mondrian;Jdbc=jdbc:odbc:MondrianFoodMart;Catalog=/WEB-INF/queries/FoodMart.xml;JdbcDrivers=sun.jdbc.odbc.JdbcOdbcDriver;
替换为:
Provider=mondrian;Jdbc=jdbc:mysql://localhost:3306/foodmart?user=
root&password=
admin;Catalog=/WEB-INF/queries/FoodMart.xml;JdbcDrivers=com.mysql.jdbc.Driver
上面蓝色的地方根据情况修改。
第四步:修改几个jsp页面,改动里面的驱动连接字符串。
分别修改
TOMCAT_HOME/webapps/mondrian/WEB-INF/queries
文件夹下的
fourheir.jsp
, mondrian.jsp
, colors.jsp
and
arrows.jsp,找到下面的代码:
<jp:mondrianQuery id="query01" jdbcDriver="sun.jdbc.odbc.JdbcOdbcDriver" jdbcUrl="jdbc:odbc:MondrianFoodMart" catalogUri="/WEB-INF/queries/FoodMart.xml">
替换为:
<jp:mondrianQuery id="query01" jdbcDriver="com.mysql.jdbc.Driver" jdbcUrl="jdbc:mysql://localhost:3306/foodmart?user=
root&password=
admin" catalogUri="/WEB-INF/queries/FoodMart.xml">
第五步:已配置完毕,打开tomcat服务器,浏览器输入http://localhost:8080/mondrian,将会出现如下:
Mondrian examples:
- JPivot pivot table
- JPivot pivot table by XMLA
- JPivot with 4 hierarchies
- JPivot with arrows
- JPivot with colors
- Various queries formatted using the Mondrian tag-library
- Basic interface for ad hoc queries
- XML for Analysis tester
随便点一个进去看看,如果没提示错误就成功了 ^ ^
(3)oracle数据库
oracle和mysql的配置步骤差不多,只是相应的把驱动连接字符串改动下即可。下面把我的配置内容给个参考。
第一步:保证打开了oracle数据服务器。
第二步:将oracle的jdbc驱动包
ojdbc14.jar(这个如果是oracle10g的话去oracle目录下jdbc目录里找得到的)放在tomcat的lib下面。然后在命令行中建立数据库。运行cmd.exe,输入命令:
java -cp "
D:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\mondrian\WEB-INF\lib\
mondrian.jar;D:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\mondrian\WEB-INF\lib\
log4j-1.2.8.jar;D:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\mondrian\WEB-INF\lib\
eigenbase-resgen.jar;D:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\mondrian\WEB-INF\lib\
eigenbase-xom.jar;D:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\mondrian\WEB-INF\lib\
ojdbc14.jar;D:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\mondrian\WEB-INF\lib\
eigenbase-properties.jar"
mondrian.test.loader.MondrianFoodMartLoader
-verbose -tables -data -jdbcDrivers="oracle.jdbc.driver.OracleDriver"
-inputFile=
FoodMartCreateData.sql
-outputJdbcURL="jdbc:oracle:thin:
system/
admin@oracle_host:1521:orcl"
这一步很重要,成功了就建好数据库了,不然没法测试数据。
第三步:修改配置文件,改换驱动连接字符串。
分别修改
mondrian.properties,datasources.xml,web.xml三个文件。
找到下面的代码:
Provider=mondrian;Jdbc=jdbc:odbc:MondrianFoodMart;Catalog=/WEB-INF/queries/FoodMart.xml;JdbcDrivers=sun.jdbc.odbc.JdbcOdbcDriver;
替换为:
Provider=mondrian;Jdbc=jdbc:oracle:thin:
system/
admin@localhost:1521:orcl;JdbcDrivers=oracle.jdbc.driver.OracleDriver;Catalog=/WEB-INF/queries/FoodMart.xml
上面蓝色的地方根据情况修改。
第四步:修改几个jsp页面,改动里面的驱动连接字符串。
分别修改
TOMCAT_HOME/webapps/mondrian/WEB-INF/queries
文件夹下的
fourheir.jsp
, mondrian.jsp
, colors.jsp
and
arrows.jsp,找到下面的代码:
<jp:mondrianQuery id="query01" jdbcDriver="sun.jdbc.odbc.JdbcOdbcDriver" jdbcUrl="jdbc:odbc:MondrianFoodMart" catalogUri="/WEB-INF/queries/FoodMart.xml">
替换为:
<jp:mondrianQuery id="query01" jdbcDriver="oracle.jdbc.driver.OracleDriver" jdbcUrl="jdbc:oracle:thin:
system/
admin@localhost:1521:orcl" catalogUri="/WEB-INF/queries/FoodMart.xml">
第五步:已配置完毕,运行一下看成功不。
备注:要想运用mondrian工具进行开发,需要学习它包含的API接口函数,还要学习MDX语言,编写自己的xml文件,才能多维展示我们的数据。可参看doc里面的帮助文件。