`
zhaizhisheng
  • 浏览: 73142 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Pentaho Mondrian 教程(二)集成另一种方法

阅读更多

软件版本 Mondrian 3.6.1

       上一篇文章介绍了如何将Mondrian集成到我的自己的WebApp中并且以XMLA的形式向外提供服务,今天我们就接着讲一下如果将Mondrian集成到WebApp中并通过Java API来为我们自己的程序提供服务(这跟Java JDBC访问数据库非常相似)。

       这里我们在上一篇建立的工程之上做,如果对Jar包依赖不清楚的同学可以参看一下我的上一篇博文:

http://alenzhai.iteye.com/blog/2153204

上一篇中我们并没有写代码就将Mondrian集成到了我们的系统中,今天就得写点Java代码了,讲之前的说明,这里只是为了演示所以只建了一个Main类并在main方法中执行,在实际的应用中,我们需要将其封装到一个类中使用(可以参考 JDBC的模式)。

       首先在工程src目录下新建一个包mondrian.java.api 在包下新建类Main且类中有一个main方法如图:



 

 

 

 

在类中新增获取连接方法 (此方法相当于JDBC中的获取连接方法):

/**
	 * 获取连接Olap的连接
	 * @param url  连接Olap的URL
	 * @return
	 * @throws ClassNotFoundException
	 * @throws SQLException
	 */
	public static OlapConnection getConnection(String url) throws ClassNotFoundException, SQLException{
		Class.forName("mondrian.olap4j.MondrianOlap4jDriver");
		Connection connection = DriverManager.getConnection(url);
		return connection.unwrap(OlapConnection.class);
	}

 

 增加查询方法(此方法相当于JDBC中根据SQL获取ResultSet的方法):

/**
	 * 获取查询的结构结果集
	 * @param mdx  mdx查询语句
	 * @param conn Olap连接
	 * @return
	 * @throws OlapException
	 */
	public static CellSet getResultSet(String mdx,OlapConnection conn) throws OlapException{
		OlapStatement statement = conn.createStatement();
		CellSet cellSet = statement.executeOlapQuery(mdx);
		return cellSet;
	}

 主方法中的内容:

public static void main(String[] args) throws ClassNotFoundException, SQLException {
		// TODO Auto-generated method stub
		//callschema();
		//获取连接
	 OlapConnection conn= getConnection(
			       //URL协议
			      "jdbc:mondrian:"
			       //连接数据源的JDBC连接
		        + "Jdbc='jdbc:mysql://localhost:3306/alen?user=root&password=admin&useUnicode=true&characterEncoding=utf8';"
		           //数据模型文件
		        + "Catalog='file://E:/work/workspace/mondrianweb/WebContent/WEB-INF/schema/demo.mondrian.xml';"
		          //连接数据源用到的驱动
		        + "JdbcDrivers=com.mysql.jdbc.Driver;");
	 //查询语句
	 String mdx="SELECT {[Measures].[cnt]} ON 0,"
		        + "{[dep].[dep].members} on 1"
		        + "FROM [prd]";
	 //获取查询结果
	 CellSet cs=getResultSet(mdx, conn);
	 
	 //处理返回数据
		if(cs.getAxes().size()>1){
			for (Position row : cs.getAxes().get(1)) {
			    for (Position column : cs.getAxes().get(0)) {
			        for (Member member : row.getMembers()) {
			            System.out.println("rows:"+member.getUniqueName());
			        }
			        for (Member member : column.getMembers()) {
			            System.out.println("columns:"+member.getUniqueName());
			        }
			        final Cell cell = cs.getCell(column, row);
			        System.out.println("values:"+cell.getValue());
			        System.out.println();
			    }
			    }
		}else{
			for(Position column:cs.getAxes().get(0))
			{
				for(Member member:column.getMembers()){
					System.out.println("columns:"+member.getUniqueName());
				}
				Cell cell=cs.getCell(column);
				System.out.print("values:"+cell.getValue());
				System.out.println();
			}
		}
		
	
	}	

 Ok 编码完成 运行一下试试吧

结果:

rows:[dep].[部门一]
columns:[Measures].[cnt]
values:16.0

rows:[dep].[部门二]
columns:[Measures].[cnt]
values:16.0

 

通过上面的代码也许你会同意我上一篇所说的Mondrian只是一个翻译器的说法了吧,ok今天就到这里,我们下次再见吧。

 

下期预告:Mondrian XMLA配置多个数据源

 

我的Email:zhaizhisheng@sina.com

我的博客:http://alenzhai.iteye.com/

另外也欢迎大家加入 下面的群来聊一聊 开源BI那些事!

开源BI交流


 

  • 大小: 3.7 KB
0
0
分享到:
评论
1 楼 java3344520 2016-08-02  
都报错,都运行不了呢。

相关推荐

    Pentaho mondrian的几种多维展示方案

    Saiku是另一个开源的OLAP客户端,与Pentaho Mondrian高度兼容。Saiku提供了Web界面,支持多维度的数据钻取、切片和切块操作。它的特点是直观易用,支持多用户协作,并可以通过REST API进行扩展和集成,是开源社区中...

    Pentaho多维分析(Mondrian)使用指南

    本文档介绍 OLAP、MDX 基本概念和原理、Mondrian 的使用和一些前端工具的使用。其中 “基本概念”和“MDX”这两章基本都是通用的内容,并不仅限于 Mondrian。 本文档主要用做简略的指南,更深入、更详细的内容请参考...

    kylin-mondrian-interaction, 关于Apache与 Pentaho Mondrian 交互的一些信息.zip

    kylin-mondrian-interaction, 关于Apache与 Pentaho Mondrian 交互的一些信息 Interaction InteractionKylin与 Mondrian 与Saiku的交互包括补丁和 jars 。预安装要求你应当能够运行 Kylin,构建和创建一个 Cube多维...

    pentaho 教程

    - **Pentaho Public License (PPL)**:Pentaho报表设计向导基于Pentaho公共许可证(PPL)发行,这是一种开放源代码许可协议,允许用户自由使用、修改和分发软件。用户可以在官方提供的链接中查看详细的许可证内容。 ...

    eclipse集成pentaho demo

    ### Eclipse集成Pentaho报表示例解析 #### 一、概述 本文将详细介绍如何在Eclipse环境中集成并使用Pentaho报表系统。Pentaho报表是开源BI(商业智能)平台的一部分,它提供了强大的报表设计与展示功能。通过...

    [Pentaho] Pentaho 数据集成 初学者指南 第2版 (英文版)

    [Packt Publishing] Pentaho 数据集成 初学者指南 第2版 (英文版) [Packt Publishing] Pentaho Data Integration Beginner's Guide 2nd Edition (E-Book) ☆ 图书概要:☆ Get up and running with the Pentaho ...

    Pentaho cde整合Birt

    1. **Pentaho CDE**:CDE是Pentaho Data Integration (Kettle) 平台的一部分,它提供了一个基于Ajax的用户界面,用于创建动态的、交互式的BI仪表板。CDE支持多种数据源,包括SQL查询、MDX查询、Excel文件、Web服务等...

    pentaho 二次开发修改PUC登录后的页面

    Pentaho是开源的企业级商业智能(BI)平台,它提供了数据集成、报表、分析和仪表板等一系列工具,帮助企业实现数据的深度挖掘与分析。在进行二次开发时,开发者经常需要根据自身需求定制Pentaho User Console(PUC)...

    pentaho kettle中文开发手册

    Pentaho Kettle是一款强大的数据集成工具,也被称为Kettle或Pentaho Data Integration(PDI)。它是开源软件,由Pentaho公司开发,主要用于ETL(Extract, Transform, Load)过程,即数据抽取、转换和加载。这个中文...

    pentaho kettle data integration 教程

    Pentaho Kettle Data Integration,通常被称为Kettle或PDI,是一种强大的ETL(提取、转换、加载)工具,用于在不同数据源之间进行数据整合和迁移。本教程将深入探讨Kettle的核心概念、功能和实际操作,以帮助你充分...

    pentaho教程

    Pentaho的另一个重要组件是 Mondrian,这是一个开源的多维在线分析处理(OLAP)服务器。Mondrian提供了对数据仓库的快速查询和分析能力,支持MDX查询语言,使得用户可以创建复杂的分析维度和度量,从而进行深度数据...

    pentaho-kettle_4.2.1基础教程.pdf

    Pentaho Kettle 4.2.1 基础教程 Pentaho Kettle 是一款功能强大且灵活的ETTL工具,提供了图形化的用户界面,能够帮助用户实现数据的抽取、转换、装入和加载。Kettle 的主要组件包括 Spoon 和 Pan,Spoon 是一个图形...

    pentaho BI oracle执行脚本

    它包括多个组件,如Pentaho Data Integration (Kettle)、Pentaho Analysis ( mondrian )、Pentaho Report Designer 和Pentaho Dashboard等,旨在提供一个统一的商业智能解决方案。社区版是免费的,允许用户访问大...

    pentaho经典中文资料

    7. **Pentaho_Technical_Whitepaper-zh-CN-1-6.htm**:这是一份技术白皮书,详细阐述了Pentaho的技术架构和核心特性,包括数据集成工具Kettle、分析工具Pentaho Analysis (Mondrian)以及报表设计工具Pentaho Report ...

    Pentaho Solutions (PDF)

    Pentaho Data Integration(Kettle)是一种强大的ETL(Extract Transform Load)工具,它支持从MySQL数据库中抽取数据,并执行复杂的转换操作,最后将数据加载到目标数据仓库中。 2. **报表设计(Report Designer)**:...

    Pentaho_BI_Server源码分析

    Pentaho BI Server是一款开源的商业智能(BI)平台,它提供了一整套工具来处理数据集成、报表、分析和信息展示。通过源码分析,我们可以深入理解其工作原理和设计模式,这对于开发者和定制化需求者来说尤其有价值。 ...

    [Pentaho] Pentaho 3.2 数据集成 初学者指南 第1版 (英文版)

    [Packt Publishing] Pentaho 3.2 数据集成 初学者指南 第1版 (英文版) [Packt Publishing] Pentaho 3.2 Data Integration Beginner's Guide 1st Edition (E-Book) ☆ 图书概要:☆ As part of Packt's Beginner's...

    Pentaho源码分析

    该项目由多个组件构成,包括Kettle(数据集成工具)、Pentaho Data Integration(PDI)、Pentaho Reporting、Pentaho Analysis(Mondrian)以及Pentaho Dashboard等,这些组件协同工作,为用户提供完整的BI体验。...

Global site tag (gtag.js) - Google Analytics