日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mondrain配置mysql_mondrian 4.7 源码部署(示例代码)

發(fā)布時間:2023/12/4 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mondrain配置mysql_mondrian 4.7 源码部署(示例代码) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

mondrian是一個開源的數(shù)據(jù)分析工程, 網上有關mondrian3.X的源碼部署比較多, 有關4.X的部署較少. 目前官方推薦使用的時mondrian3.7的修訂版, 可以再github上下載到最近更新維護的mondrian-master, 下載下來后基本上只需要按部就班的使用maven build一下就可以正常使用了, 如有問題可以根據(jù)提示進行一下排查就OK了. mondrian4.7目前是一個beta版, 相關的部署文檔較少, 筆者也是痛苦的部署了很多次, 各方請教才部署成功的, 下面就部署的一些坑進行相關記錄.

1. 環(huán)境配置

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編譯環(huán)境

將github上下載的源碼解壓縮, 解壓之后在跟你目錄下運行ant, 如下圖所示. 由于ant編譯過程中需要時使用的git, 因此我們需要安裝配置git的環(huán)境.

在file:///C:/Users/Administrator/Downloads/mondrian-4.7.0.11/mondrian-4.7.0.11/doc/developer.html中提供了開發(fā)者源碼編譯步驟. 可以作為參考.

如果編譯的過程中出現(xiàn)類似如下錯誤, 則可以根據(jù)提示去對應網址(https://nexus.pentaho.org/content/groups/omni/), 下載相應的jar包, 放在{user}/.subfloor/對應的目錄中:

下載后的目錄如下圖所示:

?

ant環(huán)境配置好后, 繼續(xù)執(zhí)行ant命令, 會出現(xiàn)如下圖所示的提示, 則表示ant編譯成功, 缺失的類也生成了.

2.2 maven環(huán)境配置

可以將(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")

// 執(zhí)行查詢得到結果:

Result result = conn.execute(query);

// 控制臺打印結果

PrintWriter pw = new PrintWriter(System.out);

result.print(pw);

pw.flush();

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

}

}

foodmart的數(shù)據(jù)創(chuàng)建將在后面介紹, 當數(shù)據(jù)庫配置完成后, 運行該測試類, 會出現(xiàn)如下錯誤:

這是因為, 在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數(shù)據(jù)庫的配置

foodmart測試數(shù)據(jù)庫的配置在網上有很多版本, 但是筆者測試后, 發(fā)現(xiàn)都需要進行相關改動, 位置, 筆者將數(shù)據(jù)庫配置的步驟進行了整理.

有序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目錄, 執(zhí)行如下命令, 即可創(chuàng)建foodmark需要的表結構, 當然, 前提是數(shù)據(jù)中庫擁有foodmart這個數(shù)據(jù)庫.

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 源码部署(示例代码)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。