最近一直忙于熟悉Mondrian,其中也遇到了一下问题
其中一个比较麻烦的就是这样的
我们的时间维度里面包含有Year、Quarter、Month、Day、Hour
其中前面几个是可以正常的钻取的(Year、Quarter、Month、Day)
但是当从Day 2011-07-5 钻取到Hours的时候就出了问题,数据只出来一条并且是 2011-07-05 00:00:00。
看看数据库中的Hours这个字段是Date类型的,而生成的MDX语句如下:
select "DIM_PUB_HOUR"."HOUR" as "c0" from "DIM_PUB_HOUR" "DIM_PUB_HOUR"
where ("DIM_PUB_HOUR"."DAY" = DATE '2011-06-08' and "DIM_PUB_HOUR"."MONTH" = '2011-06' and "DIM_PUB_HOUR"."YEAR" = '2011')
and "DIM_PUB_HOUR"."HOUR" = DATE '2011-06-08' group by "DIM_PUB_HOUR"."HOUR" order by "DIM_PUB_HOUR"."HOUR" ASC
<Cube name="信号机流量分析" cache="true" enabled="true">
<Table name="FACT_CLL_XHJ">
</Table>
<Dimension type="StandardDimension" foreignKey="DEV" highCardinality="false" name="RoadNum" caption="路口编号">
<Hierarchy name="路口编号" hasAll="true" allMemberName="所有路口" primaryKey="BH">
<Table name="DIM_CLL_DEV">
</Table>
<Level name="RoadNum" column="NAME" type="String" uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
<Dimension type="TimeDimension" foreignKey="TIME_ID" highCardinality="false" name="TimePoint" caption="时间点">
<Hierarchy name="时间" hasAll="true" allMemberName="所有时间" primaryKey="XH">
<Table name="DIM_PUB_HOUR">
</Table>
<Level name="Year" column="YEAR" type="String" uniqueMembers="true" levelType="TimeYears" hideMemberIf="Never">
</Level>
<Level name="Month" column="MONTH" nameColumn="MONTH_NAME" type="String" uniqueMembers="false" levelType="TimeMonths" hideMemberIf="Never">
</Level>
<Level name="Day" column="DAY" type="Date" uniqueMembers="false" levelType="TimeDays" hideMemberIf="Never">
</Level>
<Level name="Hours" column="HOURS" uniqueMembers="false" levelType="TimeHours" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
<Dimension type="StandardDimension" foreignKey="WAY" highCardinality="false" name="CarRoadNum" caption="车道编号">
<Hierarchy name="车道编号" hasAll="true" allMemberName="所有车道编号" primaryKey="BH">
<Table name="DIM_CLL_WAY">
</Table>
<Level name="CarRoadNum" column="BH" type="String" uniqueMembers="true" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
<Measure name="流通量" column="CLL" aggregator="sum" visible="true">
</Measure>
<CalculatedMember name="FlowCount" caption="流通量计算" formula="sum([Measures].[流通量])" dimension="Measures" visible="true">
</CalculatedMember>
</Cube>
很明显上面只执行了一个查询 0 点时候的数据,其他小时都没有查询,去网上查了一下。
才知道Mondriad暂时对这个小时还不支持。解决办法:
1.把数据库所有时间维类型都改成numeric类型的,把他们当做普通的维度来做
2.在表中新增一个字段 Hours_name 是 numeric 其中的值为 0-23 ,然后 用
<Level name="Hours" column="HOUR_NAME" type="Numeric" uniqueMembers="false" levelType="TimeHours" hideMemberIf="Never">
</Level>
这样就可以正常的使用了。
分享到:
相关推荐
本教程包含mondrian部分中文文档 mondrian如何创建Cube,维度,度量及其他属性 mdx语法介绍
[Manning Publications] Mondrian 实战 英文版 [Manning Publications] Mondrian in Action E Book ☆ 出版信息:☆ [作者信息] William Back D Nicholas Goodman Julian Hyde [出版机构] Manning ...
如何创建交互式的OLAP分析,与mysql和mondrian打通 Pentaho Introduction Mondrian features and architecture Schemas and queries olap4j Roadmap Case Studies Business Intelligence suite Q & A
mondrian-3.5.0.jar 解决中文乱码问题
mondrian foodmart SQL SERVER 数据库
自已刚开始学mondrian,里面有两个文件,一个是mondrian自带的一个演示示例,是基于oracle实现的过程。还有一个是eclipse中配置mondrian源代码的过程。都是我自己总结的,原创。QQ:6855957
Dimension 是一个层次的集合,维度一般有其相对应的维度表。Dimension 的属性包括 name、type、caption、usagePrefix 和 foreignKey 等。 Hierarchy 是 Dimension 的一个组成部分,由多个 Level 组成。Hierarchy 的...
Mondrian 介绍 配置
本资源包括mondrian源码运行的方法,以及说明文档 还有配置过程中需要的jar包,这个配置方法是可行的,本人已经用这个配置方法成功的运行了mondrian源码!
mondrian报表技术概要,实例讲述开发过程中遇到的问题以及配置
Mondrian用于web项目 报表开发文档
Mondrian+Oracle 实例,及异常分析,功能介绍,连接数据库的各种方式等
Mondrian 3.0 Technical Guide
mondrian 提供的schema4.0 官网api,这个资源也是找了很久才找到
This book is about Mondrian 4.0 and related technologies. It’s organized into chap- ters based on functionality. Chapters are designed to be standalone in most cases, but it’s easier, especially for...
包含开发所需的mondrian-3.0.4.11371,编写xml的schema-workbench工具,sql文件,以及开发文档。
Mondrian lets users drive analysis 8 ■ Mondrian is a low-cost, low-risk solution 11 ■ Mondrian is fast 13 ■ Mondrian is secure 14 ■ Mondrian is based on open standards 14 1.4 Summary 15 2 Mondrian...
Mondrian是一个开放源代码的Rolap服务器,使用java开发的。它实现了xmla和jolap规范,而且自定义了一种使用mdx语言的客户端接口。Mondrian是olap服务器,而不是数据仓库服务器,因此Mondrian的元数据主要包括olap...
OLAP Server Mondrian应用于web项目,文档指导大家顺利实现OLAP Server
这个Java实例将利用Mondrian提供的OLAP引擎对已建立好的数据立方体XML进行MDX查询。不是网上到处都有的jPivot,而是一个更基础更轻量的例子。