为了满足公司应用的需求、最近一直在做Mondrian3.5.0 源码修改工作(公司就我一个人负责修改Mondrain)、因为之前没有接触过BI方面的知识,对于Mondrain的学习自我感觉进度还是比较慢的、从接触Mondrian到现在已有两个月的时间了、对于Mondrian仅仅只是有些了解、修改过部分源代码、现总结下碰到的问题:
1. Mondrian3.5.0 源码代码的构建。
网上有很多mondrian源码构建的方法,这个确实比较折腾人的地方,在svn下载下来的源代码中很多类缺失,部分jar包缺失,这些都是需要运行build.xml来构建的、没有什么好的方法、我也是折腾一天多的时间才搭建好。(如果有需要的可以回复邮箱给我,我可以发给你们)。
2. 构建好的项目还是有很多报错。
项目构建好了还是有很多报错的地方,现在都记不清楚是哪几个报错了,还有要看你用的JDK是哪个版本了,不同版本报的错可能也不同,所以需要自己排除下,比如UtilCompatibleJdk16类编译报错修改:LOGGER.isTraceEnabled()和LOGGER.trace()修改为:LOGGER.isDebugEnabled()和LOGGER.debug().
FactoryJdbc3Impl报错,FactoryJdbc3Impl 对应jdbc3.0(jdk1.5)FactoryJdbc4Impl对应jdbc4.1(jdk1.6)我使用的是jdk1.6 所以我把 FactoryJdbc3Impl全部注释了。
在中文开发环境下,启动的时候会报找不到MondrianResource_zh_CN.properties,需要在mondrian.resource下创建此文件和一个资源文件对应的MondrianResource_zh_CN.java类,此类参照mondrian.resource下其他多语言类的内容就行了。
3. 数据精度丢失问题
目前碰到两个数据精度丢失问题,查询结果超出int范围,结果转换成int丢失精度,double数据类型小数点后的精度丢失问题。Mondrain会根据查询的结果长度,小数位数等来猜测结果的数据类型,在SqlStatement类List<Type> guessTypes()方法当中进行类型的判断,SegmentLoader类processData()取出结果做转换。
4. 虚拟Cube查询结果为空
针对父子维的查询,结果为空,可修改RolapCube类findBaseCubeLevel()方法。
5.父子维UniqueName排序错误
对于父子维查询,就部门查询来说,如果上级部门的id小于下面的子部门,排序正确,如果子部门的id小于上级部门,排序就会错误。排序是在SqlTupleReader类internalAddRow().
以上列出的仅仅是部分主要问题,目前都已经全部解决,还有些小bug就没有列出来了,目前还在持续优化当中,欢迎各位有bug 的给我留言,如果需要帮助的也可以给我留言,有问题大家一起学习,一起进步呢。
相关推荐
本资源提供了一种详细、实用的mondrian源码运行配置方法,使得开发者能够更好地理解和调试mondrian的内部工作原理。 首先,我们需要了解mondrian的运行环境。mondrian依赖于一些基础的Java库,如JDBC驱动程序以连接...
mondrian-3.5.0.jar 解决中文乱码问题
mondrian源码中的XMLA支持使得JavaScript或其他Web应用程序能够与mondrian交互,进行数据分析。 6. **Schema文件**:mondrian的模式文件定义了数据仓库的多维模型,包括维度、层次、度量和属性。这些文件使用XML...
Schema Manager是mondrian的核心组件,负责加载和管理Schema对象,它提供了创建、修改和验证Schema的接口。 2.3. 包mondrian.calc 这个包包含了mondrian的计算逻辑,包括表达式树的构造和计算。它提供了对基本和...
Mondrian 源码分析和改造设计 Mondrian 源码分析和改造设计是 OLAP(On...Mondrian 源码分析和改造设计是 OLAP 服务器的源码分析和改造设计,需要了解 Mondrian 的架构和各个组件的作用,然后根据需求进行修改和优化。
### Mondrian源码配置详解 #### 一、概述 Mondrian是一款开源的OLAP(Online Analytical Processing,在线分析处理)服务器,主要用于提供多维数据集查询与数据分析能力。对于开发者而言,从源码级别了解Mondrian...
mondrian 源码分析与说明 mondrian 是一个基于 Java 的开源 OLAP 服务器,提供了对多维数据的管理和分析功能。下面是对 mondrian 源码的分析和说明: 1. 概述 mondrian 的架构基于 Java 语言,使用了多种设计模式...
mondrian 源码分析报告深入探讨了这个基于 Java 的开放源代码 Rolap 服务器的内部工作机制。Mondrian 实现了 XMLA 和 JOLAP 规范,并且提供了一个定制的 MDX 客户端接口,使得用户无需直接接触 SQL 即可处理多维数据...
Mondrian是一个开放源代码的Rolap服务器,使用java开发的。它实现了xmla和jolap规范,而且自定义了一种使用mdx语言的客户端接口。Mondrian是olap服务器,而不是数据仓库服务器,因此Mondrian的元数据主要包括olap...
mondrian是一款开源的在线分析处理(OLAP)服务器,它主要使用Java编写,支持SQL标准的多维数据集(MDX)查询语言。Mondrian的Schema是定义数据仓库逻辑结构的关键部分,它描述了数据如何组织、层级关系以及如何进行...
在"mondrian源码分析与说明.doc"文档中,可能会涵盖以下内容:Mondrian的架构设计、核心类和接口的解释、如何解读和创建Mondrian Schema、MDX查询的示例、性能调优技巧以及如何扩展Mondrian以满足特定业务需求。...
通过源码学习,你可以了解到如何设计和优化多维模型,如何调整mondrian的性能,以及如何创建个性化的数据分析界面。 总的来说,这个压缩包提供了一个完整的mondrian+jpviot开发和测试环境,对于学习和实践开源OLAP...
[Manning Publications] Mondrian 实战 英文版 [Manning Publications] Mondrian in Action E Book ☆ 出版信息:☆ [作者信息] William Back D Nicholas Goodman Julian Hyde [出版机构] Manning ...
mondrian-oracle实例详解 Mondrian是一款开源的多维数据集(OLAP)引擎,它主要用于构建在线分析处理(OLAP)系统。Mondrian与数据库系统如Oracle结合使用,能够提供高效的数据分析和决策支持功能。在这个"Mondrian...
《联机分析OLAP之Mondrian:深入解析与应用》 OLAP(Online Analytical Processing),即在线分析处理,是数据库技术中的一个重要概念,它主要用于支持决策者的数据分析需求。在OLAP系统中,Mondrian是一个开源的...
mondrian是一个开源的在线分析处理(OLAP)服务器,它主要用Java编写,适用于构建数据仓库和商业智能应用。在本资源"mondrian-api.zip"中,包含的是mondrian 4.0版本的API,这对于开发者来说是一个宝贵的参考资料,...
### Mondrian介绍及配置知识点详解 #### 一、Mondrian概述 **Mondrian** 是一款用 Java 编写的开源 OLAP (Online Analytical Processing) 引擎,支持 MDX (Multidimensional Expressions) 查询语言。它可以将来自...
### Mondrian-3.1.6.13364 源码配置步骤详解 #### 一、准备工作 为了能够有效地对Mondrian-3.1.6.13364源码进行配置与调试,首先需要完成一系列准备工作。 1. **下载Mondrian-3.1.6.13364源码** - 下载mondrian...
mondrian是开源的在线分析处理(OLAP)引擎,它主要被用来构建数据仓库和商业智能系统的报表功能。在Web项目中,Mondrian通常与Pentaho Data Integration(Kettle)、Pentaho BI Server等工具结合使用,提供强大的...
**Mondrian实例详解** Mondrian是一款开源的在线分析处理(OLAP)引擎,它主要用Java编写,被广泛应用于数据分析和商业智能系统中。本实例将带你深入理解如何利用Mondrian来执行多维数据表达式(MDX)查询,针对已...