Mondrian 是1个独立的引擎,1般都是通过嵌入到利用的方式来使用它,只需要在类路径加个类库就能够。实际上有多套 BI 解决方案都是通过集成 Mondrian 的方式来实现多维分析。
本文介绍编程方式连接 Mondrian,履行 MDX 查询的方法。使用 mondrian 需要有1个数据库的连接和多维数据的描写文件(Schema 文件)。这个可以通过我之前的文章来了解。
http://blog.csdn.net/qzp1991/article/details/44016959
http://blog.csdn.net/qzp1991/article/details/44017161
1、先决条件:
1.jdk环境配置的完成;
2.在tomcat下完成mondrian服务器和多维数据库的部署;
实例的搭建,在我之前的文章中有触及
http://blog.csdn.net/qzp1991/article/details/44016959
2、java工程的建立
1.导入mondrian的必备包
它们位于mondrianWEB-INFlib当中
2.导入连接mysql的驱动
3.编写相干核心代码
package mondrian.java.api;
import java.io.PrintWriter;
import mondrian.olap.Connection;
import mondrian.olap.DriverManager;
import mondrian.olap.Query;
import mondrian.olap.Result;
public class Main {
@SuppressWarnings("deprecation")
public static void main(String[] args) {
Connection connection = DriverManager.getConnection(
"Provider=mondrian;Jdbc=jdbc:mysql://localhost/nts_eway_ee?user=root&password=root;
Catalog=E:/apache-tomcat⑺.0.40/webapps/mondrian/WEB-INF/queries/ntsdw.xml;",null);
Query query =connection.parseQuery("select {[Measures].[nts_sample]} ON COLUMNS,
{[region.default].[AllRegion],[region.default].[江苏], [region.default].[湖南]} ON ROWS
from [ntsdw] where [time.default].[2015].[1].[1]");
Result result = connection.execute(query);
PrintWriter pw = new PrintWriter(System.out);
result.print(pw);
pw.flush();
}
}
相干解释
Mondrian 本身履行 mdx 查询的接口位于 mondrian.olap 包。
Jdbc=jdbc:mysql://localhost/nts_eway_ee?user=root&password=root
表示连接
数据库的名称和相干用户名及密码
Catalog=E:/apache-tomcat⑺.0.40/webapps/mondrian/WEB-INF/queries/ntsdw.xml;
表示模式文件所在的位置
Query query =connection.parseQuery("select {[Measures].[nts_sample]} ON COLUMNS,
{[region.default].[AllRegion],[region.default].[江苏], [region.default].[湖南]} ON ROWS
from [ntsdw] where [time.default].[2015].[1].[1]");
表示具体的MDX履行语句
result是1个MDX履行语句的返回值
其中,pw.flush();语句是必须的,否则不会输出
点击运行,履行结果以下: