`
successfulroof
  • 浏览: 73375 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

解决Mondrian 创建时间维度Hours的难题

    博客分类:
  • J2ee
 
阅读更多

最近一直忙于熟悉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="&#20449;&#21495;&#26426;&#27969;&#37327;&#20998;&#26512;" cache="true" enabled="true">
    <Table name="FACT_CLL_XHJ">
    </Table>
    <Dimension type="StandardDimension" foreignKey="DEV" highCardinality="false" name="RoadNum" caption="&#36335;&#21475;&#32534;&#21495;">
      <Hierarchy name="&#36335;&#21475;&#32534;&#21495;" hasAll="true" allMemberName="&#25152;&#26377;&#36335;&#21475;" 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="&#26102;&#38388;&#28857;">
      <Hierarchy name="&#26102;&#38388;" hasAll="true" allMemberName="&#25152;&#26377;&#26102;&#38388;" 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="&#36710;&#36947;&#32534;&#21495;">
      <Hierarchy name="&#36710;&#36947;&#32534;&#21495;" hasAll="true" allMemberName="&#25152;&#26377;&#36710;&#36947;&#32534;&#21495;" 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="&#27969;&#36890;&#37327;" column="CLL" aggregator="sum" visible="true">
    </Measure>
    <CalculatedMember name="FlowCount" caption="&#27969;&#36890;&#37327;&#35745;&#31639;" formula="sum([Measures].[&#27969;&#36890;&#37327;])" 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部分中文文档 mondrian如何创建Cube,维度,度量及其他属性 mdx语法介绍

    [Mondrian] Mondrian 实战 英文版

    [Manning Publications] Mondrian 实战 英文版 [Manning Publications] Mondrian in Action E Book ☆ 出版信息:☆ [作者信息] William Back D Nicholas Goodman Julian Hyde [出版机构] Manning ...

    如何创建交互式的OLAP分析,与mysql和mondrian打通案例分析

    如何创建交互式的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

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

    mondrian foodmart SQL SERVER 数据库

    mondrian foodmart SQL SERVER 数据库

    基于ORACLE的mondrian配置

    自已刚开始学mondrian,里面有两个文件,一个是mondrian自带的一个演示示例,是基于oracle实现的过程。还有一个是eclipse中配置mondrian源代码的过程。都是我自己总结的,原创。QQ:6855957

    Mondrian_Schema(多维分析)属性详解[定义].pdf

    Dimension 是一个层次的集合,维度一般有其相对应的维度表。Dimension 的属性包括 name、type、caption、usagePrefix 和 foreignKey 等。 Hierarchy 是 Dimension 的一个组成部分,由多个 Level 组成。Hierarchy 的...

    Mondrian介绍及配置.pdf

    Mondrian 介绍 配置

    mondrian运行源码配置方法

    本资源包括mondrian源码运行的方法,以及说明文档 还有配置过程中需要的jar包,这个配置方法是可行的,本人已经用这个配置方法成功的运行了mondrian源码!

    mondrian报表技术概要

    mondrian报表技术概要,实例讲述开发过程中遇到的问题以及配置

    Mondrian用于web项目

    Mondrian用于web项目 报表开发文档

    Mondrian+Oracle 实例

    Mondrian+Oracle 实例,及异常分析,功能介绍,连接数据库的各种方式等

    Mondrian 3.0 Technical Guide

    Mondrian 3.0 Technical Guide

    mondrian-api.zip

    mondrian 提供的schema4.0 官网api,这个资源也是找了很久才找到

    Mondrian In Action

    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...

    联机分析olap之mondrian

    包含开发所需的mondrian-3.0.4.11371,编写xml的schema-workbench工具,sql文件,以及开发文档。

    Manning.Mondrian_in_Action.2013.pdf

    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...

    mondrian3.5

    Mondrian是一个开放源代码的Rolap服务器,使用java开发的。它实现了xmla和jolap规范,而且自定义了一种使用mdx语言的客户端接口。Mondrian是olap服务器,而不是数据仓库服务器,因此Mondrian的元数据主要包括olap...

    Mondrian应用于web项目

    OLAP Server Mondrian应用于web项目,文档指导大家顺利实现OLAP Server

    Mondrian实例

    这个Java实例将利用Mondrian提供的OLAP引擎对已建立好的数据立方体XML进行MDX查询。不是网上到处都有的jPivot,而是一个更基础更轻量的例子。

Global site tag (gtag.js) - Google Analytics