`

MONDRIAN-1034

 
阅读更多

原创文章,转载请注明出处:http://qq85609655.iteye.com/blog/2269398

 

MONDRIAN-1034

Wrong SQL generated when aggregations designed and name column assigned.

http://jira.pentaho.com/browse/MONDRIAN-1034

 

 

这是一个不算bug的bug

http://forums.pentaho.com/showthread.php?167045-Mondrian-generates-the-wrong-SQL-(SqlTupleReader)-when-aggregations-is-called&s=958ed57ae5d180f51fcf79f4ddf80362&p=381287

在使用聚合表的情况下,使用一个维度,查询数据,没有配置nameColumn的时候,正常,

如果配置了这个属性,就报错。

错误的原因其实很简单,作为退化维,那么聚合表agg里面AggLevel存储维度值,按照理论是不再与维度关联,但是有时候业务场景比较复杂,agg表里面存储的是外键值,作为外键,展现的时候,显示外键值,业务人员是看不懂的,必须显示nameColumn的值,于是就必须关联维度了。

外键就外键吧,替换为AggForeignKey,这我也接受了,可是,有些指标类似,平均值和方差不允许二次迭代运算,这个场景,多个level替换为AggForeignKey后,需要过多个Hierarchy配置,解决不同level与聚合表匹配的问题,不过非常的不优雅,

使用通过[Dimensioname.Hierarchyname].[levelname]进行mdx,不够通用。

这开源的东西真够蛋疼的,有时候被搞得吐血,这么个问题,折腾了好几天。。。

官方的jira放了好几年了,这个bug也没有修复。。。看来要嘛绕过去,不用mondrian了,要嘛解决问题迎难而上。

 

跟着源代码,再一次跟着了源代码,发现了问题所在,测试了下,搞定。。。

修改mondrian.rolap.SqlContextConstraint.java添加aggStar的判断

    public void addLevelConstraint(
        SqlQuery sqlQuery,
        RolapCube baseCube,
        AggStar aggStar,
        RolapLevel level)
    {
        if (aggStar == null && !isJoinRequired()) {
            return;
        }
        SqlConstraintUtils.joinLevelTableToFactTable(
            sqlQuery, baseCube, aggStar, evaluator, (RolapCubeLevel)level);
    }

 OK,搞定微笑

 

这里提醒下自己,在saiku上,进行多维分析时,插件使用了自己的mondrian版本,目前,saiku2.0使用了mondrian-3.6.5这个版本和biserver-ce-5.3.0.0-213里tomcat里面的pentaho的mondrian3.9的版本并不一致,同时发现将修改后的类放到webapp/WEB-INF/classes无效,所以,这里需要将其放到biserver-ce-5.3.0.0-213\biserver-ce\pentaho-solutions\system\saiku下,主要还是classpath类加载的问题,特别需要反复检查。

 

分享到:
评论

相关推荐

    mondrian-4.3.0.1.2-SPARK.jar

    mondrian-4.3.0.1.2-SPARK.jar

    mondrian-3.11.jar

    mondrian-3.11.jar

    mondrian-4.3.0.1-SPARK

    saiku3.x中所需的mondrian的jar包,用来支持SPARK

    mondrian-data-foodmart-hsql.rar

    Mondrian是一个用Java写成的ROLAP引擎,是开源项目Pentaho的一部分。它实现了 MDX语言、XML解析、JOLAP规范。它从SQL 和其它数据源读取数据并把数据聚集在内存缓存中,然后经过Java API用多维的方式对结果进行展示,...

    mondrian-3.1.6.13364源码配置步骤

    ### Mondrian-3.1.6.13364 源码配置步骤详解 #### 一、准备工作 为了能够有效地对Mondrian-3.1.6.13364源码进行配置与调试,首先需要完成一系列准备工作。 1. **下载Mondrian-3.1.6.13364源码** - 下载mondrian...

    mondrian-api.zip

    在本资源"mondrian-api.zip"中,包含的是mondrian 4.0版本的API,这对于开发者来说是一个宝贵的参考资料,可以帮助他们理解和使用mondrian的高级功能。 mondrian的核心功能是解析多维数据集的元数据(schema),...

    mondrian-3.14.0.0-12

    mondrian-3.14.0.0-12,

    mondrian-9.0.0.0-SNAPSHOT-with-KylinDialect.jar

    已编译好的mondrian-9.0.0.0-SNAPSHOT-with-KylinDialect.jar,已添加kylin支持,暂未测试是否可用。

    mondrian-3.0.0.10550.zip

    mondrian-3.0.0.10550 包含了 Mondrian OLAP (在线分析处理) 服务的源代码和相关资源。Mondrian 是一个开源的多维数据集引擎,常用于构建数据仓库和商业智能系统。这个版本号 3.0.0.10550 表示这是该软件的一个特定...

    mondrian-3.0-technical-guide_2.pdf

    根据提供的文件内容,以下是对“mondrian-3.0-technical-guide_2.pdf”文档的知识点的详细介绍: 1. Mondrian介绍与概述 文档开头介绍了Mondrian 3.0.4版本的技术手册,它涉及的是使用Mondrian和JasperAnalysis开发...

    有关 mondrian-olap的介绍及使用方法

    有关 mondrian-olap的介绍及使用方法,对mondrian进行了详细介绍

    mondrian-3.13.0.0-25.jar

    mondrian-3.13.0.0-25.jar

    mondrian-3.5.0

    mondrian-3.5.0.jar 解决中文乱码问题

    Python库 | mondrian-0.8.1-py2.py3-none-any.whl

    资源分类:Python库 所属语言:Python 资源全名:mondrian-0.8.1-py2.py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

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

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

    mondrian-rest:适用于Mondrian的REST API

    因此,我们决定实施mondrian-rest API。 蒙德里安版本 mondrian-rest的初始开发支持Mondrian库的4.x版本。 但是,Mondrian 4.x似乎并未得到Mondrian核心维护者的积极开发,因此我们已将其作为依赖项而放弃。 支持4...

    mondrian-3.1.5-master.zip

    Mondrian是一个用Java写成的ROLAP引擎,是开源项目Pentaho的一部分。它实现了 MDX语言、XML解析、JOLAP规范。它从SQL 和其它数据源读取数据并把数据聚集在内存缓存中,然后经过Java API用多维的方式对结果进行展示,...

    mondrian-master.zip

    Mondrian是一个用Java写成的ROLAP引擎,是开源项目Pentaho的一部分。它实现了 MDX语言、XML解析、JOLAP规范。它从SQL 和其它数据源读取数据并把数据聚集在内存缓存中,然后经过Java API用多维的方式对结果进行展示,...

    mondrian-and-me:纪念Piet Mondrian奇妙艺术的“无用网站”

    "mondrian-and-me"是一个致敬荷兰著名画家Piet Mondrian艺术风格的网页项目。Mondrian是抽象艺术的先驱,以其独特的几何构图和红、黄、蓝三原色加黑白线条的作品闻名。这个"无用网站"通过网页的形式,重现了Mondrian...

Global site tag (gtag.js) - Google Analytics