繁体   English   中英

要在Java应用程序中包含哪个pentaho mondrian库以将MDX映射到SQL

[英]Which pentaho mondrian library to include in a Java application to have mapping MDX to SQL

我想实现一个为MDX查询提供支持的应用程序。 为此,我想使用pentaho mondrian (一个带有MDX接口的开源OLTP服务器)中的一个库,它将MDX查询转换为下划线数据库的SQL(基于xml描述),遗憾的是我无法找到任何信息。库我需要包含 - 以及如何使用它们 - 在我的项目中使MDX到SQL映射工作。

有没有人在她/他的应用程序中重复使用mondrian组件的经验?

我建议下载最新的3.2.0版本的Mondrian,它与所有依赖项一起分发。 该发行版中还包含一个描述其依赖关系的常春藤文件。

最新发布: http//forums.pentaho.com/showthread.php?77035-Mondrian-3.2-GA-Schema-Workbench-and-Agg-Designer-stable-available-on-SourceForge&p=239443#poststop

文档也可以在Pentaho的网站上找到。 祝好运!

Olap4j现在是pentaho mondrian的一部分。 也许你可以在olap4j API中找到信息? http://www.olap4j.org/

在这个页面上,我看到:

org.olap4j.mdx.parser :MDX查询语言的解析器。

olap4j是一个用于OLAP的开放Java API。

可以把它想象成JDBC,但是用于访问多维数据。

olap4j被设计为任何OLAP服务器的通用API,因此您可以在一个OLAP服务器上编写应用程序并轻松将其切换到另一个OLAP服务器。 在该API的基础上,将会有越来越多的工具和组件。

它看起来像mondrian.rolap.agg.AggregationManager有一些相关的代码,但它不直接。

parseTree = this.olap4jConnection.getMondrianConnection().parseStatement(mdx);
DrillThrough plan1 = (DrillThrough)parseTree;
Query query = plan1.getQuery();
query.setResultStyle(ResultStyle.LIST);
this.setQuery(query);
CellSet cellSet = this.executeOlapQueryInternal(
    query, 
    (MondrianOlap4jCellSetMetaData) null
);
List coords = Collections.nCopies(cellSet.getAxes().size(), Integer.valueOf(0));
MondrianOlap4jCell cell = (MondrianOlap4jCell) cellSet.getCell(coords);
ResultSet resultSet = cell.drillThroughInternal(
    plan1.getMaxRowCount(), 
    plan1.getFirstRowOrdinal(), 
    plan1.getReturnList(), 
    true, 
    (Logger)null, 
    rowCountSlot
);

如果你按照最后一行,

cell.drillThroughInternal(...)

你会在这里结束

String sql = this.getDrillThroughSQL(fields,extendedContext);

但我不确定mondrian是否只为mdx生成一个SQL。 我认为通过XMLA(大多数工具用作接口),您可以在单个轴上请求钻取,其中不会重写完整的查询。

希望这个答案。

我正在使用由hsqldb支持的Mondrian,以便开发人员可以对抗内存中的dbs,但在部署到真实环境时切换到非Mondrian OLAP实现。 意味着我们可以做一些更灵活的开发,基本上只是使用Mondrian将MDX转换为sql。

我创建了一个SpringBoot / mvn测试用例,并使用页面开始 - 复制ROLAP ddl和Mondrian映射架构。 我用从一个评论的MondrianDaoSupport模板这里 同一页面也对mvn依赖关系提供了一些帮助(nb:我必须使用jdlex 1.4.1与mondrian 3.2.0才能解决NPE问题)。 将SpringBoot与hsqldb一起使用我使用测试启动时的数据创建ROLAP模式。 然后我将模式文件注入类路径资源,然后Datasource是自动连接的hsqldb数据源。 它到目前为止运行良好 - 只需〜秒就可以运行Junit测试,该测试用数据引导新数据库并执行MDX查询。 在尝试使用更复杂的MDX查询时,我期待一些问题 - 但是让我们看看。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM