mondrian是一个开源的数据分析工程, 网上有关mondrian3.X的源码部署比较多, 有关4.X的部署较少. 目前官方推荐使用的时mondrian3.7的修订版, 可以再github上下载到最近更新维护的mondrian-master, 下载下来后基本上只需要按部就班的使用maven build一下就可以正常使用了, 如有问题可以根据提示进行一下排查就OK了. mondrian4.7目前是一个beta版, 相关的部署文档较少, 笔者也是痛苦的部署了很多次, 各方请教才部署成功的, 下面就部署的一些坑进行相关记录.

1. 环境配置

ant 1.9.11

maven 3.3.9

git 2.17.0

jdk 1.8.0_91

可以在GitHub上下载mondrian4.7.0.11的源码  https://github.com/pentaho/mondrian/tree/4.7.0.11

建议在 http://sourceforge.net/projects/mondrian/ 上也下载一份相应的源码, 此处的源码是.jar结尾的

2. 源码编译

在github上下载的源码和在源码在编译之前是会缺失一部分java文件的. 因此首先需对工程进行编译.

2.1 ant编译环境

将github上下载的源码解压缩, 解压之后在跟你目录下运行ant, 如下图所示. 由于ant编译过程中需要时使用的git, 因此我们需要安装配置git的环境.

在file:///C:/Users/Administrator/Downloads/mondrian-4.7.0.11/mondrian-4.7.0.11/doc/developer.html中提供了开发者源码编译步骤. 可以作为参考.

如果编译的过程中出现类似如下错误, 则可以根据提示去对应网址(https://nexus.pentaho.org/content/groups/omni/), 下载相应的jar包, 放在{user}/.subfloor/对应的目录中:

下载后的目录如下图所示:

ant环境配置好后, 继续执行ant命令, 会出现如下图所示的提示, 则表示ant编译成功, 缺失的类也生成了.

2.2 maven环境配置

可以将(https://nexus.pentaho.org/content/groups/omni/)配置为maven中央仓库, mondrian大部分以来的jar包都可以在此处找到. 不过笔者该仓库配置没有生效, 不知道是不是应为https的原因. 对于无法自动下载的jar包, 笔者手动下载安装到maven仓库中了. 下载过的jar包如下图所示.

将jar包手动install到本地仓库的命令如下:

mvn install:install-file -Dfile=C:\Users\Administrator\Downloads\jmxri-1.2.1.jar -DgroupId=com.sun.jmx -DartifactId=jmxri -Dversion=1.2.1 -Dpackaging=jar

其中: Dfile: 指定jar所在路径

DgroupId: 指定jar包对应的groupId

DartiactId: 指定jar包的artifactId

Dversion: 指定jar包的版本信息

Dpackaging: 指定打包的形式, 此处为jar

3 工程导入eclipse

将经过ant编译后的工程导入eclipse中, eclipse一般会制动识别指定的source所在的包, 如果无法识别或者是识别后无法将java文件自动编译成.class文件的话, 则在buildpath中手动添加source或将之前的添加的删除然后手动添加一遍, 并指定编译后class的存放路径.

由于ant编译时, 只编译的部分类, 因此在eclipse中可以在run as-->maven bulid.. 中使用install -DskipTests -X命令来编译所有java文件(test除外).

初始导入install后的工程如下图所示, java文件中‘空心J‘表示java文件未编译:

在build path中将source移除后重新导入, 并制定变异后class的存放地址, 即可自动编译java文件

mondrian编译打包完成后, 就可以进行相应的测试了

4 mondrian源码测试:

mondrian本身自带demo, 在demo中包含一套完整的测试时所需要的schema和sql建表语句. 测试类如下所示:

package com.rodge;

import java.io.PrintWriter;

import mondrian.olap.Connection;

import mondrian.olap.DriverManager;

import mondrian.olap.Query;

import mondrian.olap.Result;

public class TestMondrian {

public static void main(String[] args) {

String str = "Provider=mondrian;"+

"Jdbc=jdbc:mysql://localhost:3306/foodmart?user=root&password=123456;"+

"Catalog=file:///F:/mondrian/mondrian-4.7.0.11/demo/FoodMart.mondrian.xml;"+

"JdbcDrivers=com.mysql.jdbc.Driver; ";

Connection conn = DriverManager.getConnection(str, null);

// 定义查询语句,遵循mdx语法

String queryStr = "select {[Measures].[Unit Sales]} on columns from Sales";

// 利用connection生成一个Query对象

Query query = conn.parseQuery(queryStr);

@SuppressWarnings("deprecation")

// 执行查询得到结果:

Result result = conn.execute(query);

// 控制台打印结果

PrintWriter pw = new PrintWriter(System.out);

result.print(pw);

pw.flush();

System.out.println("successful!");

}

}

foodmart的数据创建将在后面介绍, 当数据库配置完成后, 运行该测试类, 会出现如下错误:

这是因为, 在mondrian.resource.MondrianResource中, 找不到MondrianResource.propertis配置文件. 该配置文件可以在mondrian-4.7.0.0-12.jar\mondrian\resource 中获取, mondrian-4.7.0.0-12.jar实在(https://sourceforge.net/projects/mondrian/files/mondrian/mondrian-4.7.0/mondrian-4.7.0.0-12-sources.jar)中下载得到的. 将MondrianResource.propertis配置文件拷贝到eclipse中/mondrian/src/main/java/mondrian/resource/MondrianResource.properties中即可.

5 测试foodmart数据库的配置

foodmart测试数据库的配置在网上有很多版本, 但是笔者测试后, 发现都需要进行相关改动, 位置, 笔者将数据库配置的步骤进行了整理.

有序mondrian4.7中不包含foodmart的相关信息的配置, 改配置信息需要在mondrian-3.7.0.0-752.zip中寻找, 下载地址为:ttp://sourceforge.net/projects/mondrian/files/mondrian/mondrian-3.7.0/mondrian-3.7.0.0-752.zip

下载下来后, 解压, 在mondrian-3.7.0.0-752.zip\lib目录中, 将jpivot.war拷贝到tomcat/webapps并重命名为mondrian.war, 解压该war包, 并将mysql的链接类拷贝到tomcat/lib中,

进入E:\application\apache-tomcat-7.0.65\webapps\mondrian\WEB-INF\lib目录, 执行如下命令, 即可创建foodmark需要的表结构, 当然, 前提是数据中库拥有foodmart这个数据库.

java -cp "E:/application/apache-tomcat-7.0.65/webapps/mondrian/WEB-INF/lib/mondrian.jar;E:/application/apache-tomcat-7.0.65/webapps/mondrian/WEB-INF/lib/log4j-1.2.8.jar;E:/application/apache-tomcat-7.0.65/webapps/mondrian/WEB-INF/lib/commons-logging-1.0.4.jar;E:/application/apache-tomcat-7.0.65/webapps/mondrian/WEB-INF/lib/eigenbase-resgen.jar;E:/application/apache-tomcat-7.0.65/webapps/mondrian/WEB-INF/lib/eigenbase-xom.jar;E:/application/apache-tomcat-7.0.65/webapps/mondrian/WEB-INF/lib/eigenbase-properties.jar;E:/application/apache-tomcat-7.0.65/lib/mysql-connector-java-5.1.31.jar" mondrian.test.loader.MondrianFoodMartLoader -verbose -tables -data -indexes -jdbcDrivers=com.mysql.jdbc.Driver -inputFile="C:/Users/Administrator/Downloads/demo/FoodMartCreateData/FoodMartCreateData.sql" -outputJdbcURL="jdbc:mysql://localhost:3306/foodmart?user=root&password=123456"

mondrain配置mysql_mondrian 4.7 源码部署(示例代码)相关推荐

  1. 1.NetDh框架之数据库操作层--Dapper简单封装,可支持多库实例、多种数据库类型等(附源码和示例代码)...

    1.NetDh框架开始的需求场景 需求场景: 1.之前公司有不同.net项目组,有的项目是用SqlServer做数据库,有的项目是用Oracle,后面也有可能会用到Mysql等,而且要考虑后续扩展成主 ...

  2. python 源码编译 without_vcmi(魔法门英雄无敌3 - 开源复刻版) 源码编译(示例代码)...

    1 准备 CMake 官网 vcmi 源码 下载 QT5 with mingw 官网 Boost 源码1.55 下载 MSYS2 官网 2 安装 2.1 vcmi源码 目标路径 D:/vcmi/sou ...

  3. MySQL 源码 需要 什么基础_MySQL 基础之 源码 部署

    源码部署 1. 需要先卸载一些软件 centos7 中需要先卸载 mariadb-libs 软件包 # rpm -e --nodeps mariadb-libs 2. 安装依赖包 yum -y ins ...

  4. SHOP++源码部署说明:

    2019独角兽企业重金招聘Python工程师标准>>> SHOP++源码部署说明: 1. 安装MyEclipse.Tomcat.MySQL/Oracle/SQL Server 2. ...

  5. Openfire4源码部署到eclipse中并编译

    Openfire4源码部署到eclipse中并编译 概述 Openfire是众所周知的基于xmpp协议的IM开源服务,所有操作,配置,监控,调试等以B/S方式进行展示,非常的方便管理员进行管理.它的强 ...

  6. 使用源码部署CITA(Ubuntu18.0.4 | VMware)

    使用源码部署CITA(Ubuntu18.0.4 | VMware) 先挑选一个地方准备用做下载位置(自主选择) 提前进入选择的目录 例: $ cd /home/liubai $ mkdir cita ...

  7. 人工智能研究中心快递柜——源码部署及分析综述

    2021SC@SDUSC 目录 项目简介 1.格子柜 2.审计柜 人员分工 源码部署 项目简介 1.格子柜 格子柜项目主要用于物品的存储和中转功能,项目分为微信小程序.安卓柜子端.web后台三个呈现形 ...

  8. openfire服务器源码,Openfire源码部署以及编译运行.doc

    Openfire源码部署以及编译运行 Openfire源码下载 可以去官方网站:官网地址/projects/openfire/. 也可以利用eclispe自带的SVN插件导入,再次就过多介绍,官网上写 ...

  9. 什么是Mybatis配置解析?(源码+图文)

    什么是Mybatis配置解析?(源码+图文) 1. 核心配置文件 mybatis-config.xml configuration(配置)properties(属性)settings(设置)typeA ...

最新文章

  1. CentOS7中多台服务器配置SSH免密钥登录
  2. 清华大学保研笔试题目及解答
  3. C语言中变量的链接属性
  4. 《SAP 传奇人物》系列人物故事:看透生死远没有操作0和1那么简单
  5. github设置中文_【Github】100+ Chinese Word Vectors 上百种预训练中文词向量
  6. linux mysql启动_MySQL 安装(二)
  7. Unity 内嵌网页
  8. xwpython aui 子窗口-Python/wxPython:AUI管理器,防止面板离开Fram
  9. Linux 命令 之 【stat】 查看文件状态。 (包括修改时间)
  10. Django 输出二维码
  11. 直播首屏耗时400ms以下的优化实践
  12. Haar特征与积分图
  13. 桌面总是弹出计算机内存不足,Win10提示计算机的内存不足请保存文件并关闭这些程序怎么办...
  14. 2018年 数据挖掘“泰迪杯” C题 第二问
  15. SAP HANA XS 专栏
  16. 【广东大学生网络攻防大赛-WriteUp(非官方)】Misc | 复合
  17. 【STM32 基础实验矩阵按键】
  18. 一级域名是什么?和二级域名有什么区别?
  19. transmac装黑苹果_黑苹果 篇一:黑苹果安装-clover引导10.15.3超详细
  20. 恒生电子股份有限公司--软件测试--《社招、校招jd、校招行程,招聘动态》整理

热门文章

  1. insert /*+ APPEND */
  2. [BOOST] BOOST::Format
  3. 如何添加自定义icon
  4. sed之G、H、g、h使用
  5. 微软所谓的无人工介入的自动的机器翻译系统
  6. 智能实验室-全能优化(Guardio) 4.0.0.670 beta 8
  7. C#解析Markdown文档,实现替换图片链接操作
  8. docker-compose 一键部署分布式配置中心Apollo
  9. 瞒不住了,难怪.NET进大厂这么难!
  10. 如何使用 C# 中的 ValueTask