设为首页 加入收藏

TOP

mondrian使用测试(三)
2015-11-21 01:52:35 来源: 作者: 【 】 浏览:11
Tags:mondrian 使用 测试
CellSet cs = null; try { cs = getResultSet(query, connection); } catch (OlapException e) { // TODO Auto-generated catch block e.printStackTrace(); } PrintWriter pw = new PrintWriter(System.out); //处理返回数据 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(); } } } public static void main(String[] args) { Olap4jTest a = new Olap4jTest(); System.out.println("调用mondrian api进行查询"); a.testQuery(); } }
执行的输出结果如下:
rows:[Time].[1997]
columns:[Measures].[Unit Sales]
values:74748.0

最后看一下使用的jar包的信息: \

ok,测试完成了。虽然过程很曲折,但是也学到了一些新知识,这里只是对mondrian做了一个简单的demo,证明了通过api调用的方式使用olap4j可以使用后端的mysql进行olap操作,接下来还需要了解mondrian对于hive和sql on hbase的支持,今天又发现一个新的开源OLAP引擎:Kylin,这个是eBay开源的,它是一个MOLAP引擎,和mondrian(ROLAP引擎)不同的是它会在创建Cube的时候将需要展示的维度和度量聚合到一个表中,并且将这个表进行物化,保存在HBASE中,之后的查询操作不是通过MDX标准来完成的,而是对物化表的SQL查询,这样的优点就是查询速度非常快,但是物化的过程需要一定的时间,并且物化表并不一定能够完全支持所有的cude操作,如果不能支持的话还是通过ROLAP的方式到hive表中动态查找(类似于mondrian),而mondrian不需要保存任何数据(除了mondrian的元数据),所有的MDX查询操作都是动态的生成sql,交由后端的 数据库执行完成的,这些sql很可能是多表的join操作,对于hive而言可能性能上是一个很大的问题。 我觉得mondrian的学习主要在于两个方面:cude的定义和MDX查看,所以接下来还需要学习一个mondrian中生成cube的xml文件的格式,如何定义一个cube、MDX的语法等,先做一个后端连接hive的demo吧。

首页 上一页 1 2 3 4 5 下一页 尾页 3/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇AWR元数据的迁移或导入到其他数据.. 下一篇eclipse快捷键

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: