`
izuoyan
  • 浏览: 9223181 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Mondrian系列(五)-深入维度、层次和级别(1)-映射维度和层次

阅读更多

1.映射维度和层次

维度和cube的联系通过有意义的列来连接,一个列在事实表中,另一个列在维表中。<dimension>元素有属性foreignKey属性,是在事实表中的列的名字,<hierarchy>元素有primaryKey属性。</hierarchy></dimension>

如果层次有多个表,可以使用primaryKeyTable属性指定。

column属性定义了level的key。例子如下:

<dimension name="”Gender”" foreignkey="”customer_id”"><br><hierarchy hasall="”true”" primarykey="”customer_id”"><br><table name="”customer”/"> <br><level name="”Gender”" column="”gender”" uniquemember="”true”"><br><keyexpression><br><sql dialect="”generic”">customer.gender</sql><br></keyexpression><br></level><br><br> </table> <p></p> <table border="1" cellspacing="0" cellpadding="2" width="599"><tbody> <tr> <td width="150"> <p align="center">父元素</p> </td> <td width="149"> <p align="center">属性</p> </td> <td width="149"> <p align="center">等效嵌套元素</p> </td> <td width="149" align="center"> <p align="center">描述</p> </td> </tr> <tr> <td width="150"><level></level></td> <td width="149">列</td> <td width="149"><keyexpression></keyexpression></td> <td width="149">level的key</td> </tr> <tr> <td width="150"><level></level></td> <td width="149">成员列</td> <td width="149"><nameexpression></nameexpression></td> <td width="149">定义此level的成员名称的表达式,如果不指定,使用leve的key</td> </tr> <tr> <td width="150"><level></level></td> <td width="149">排序列</td> <td width="149"><ordinalexpression></ordinalexpression></td> <td width="149">定义成员顺序的表达式,如果不指定,使用level的key</td> </tr> <tr> <td width="150"><level></level></td> <td width="149">说明列</td> <td width="149"><captionexpression></captionexpression></td> <td width="149">格式化成员说明信息的表达式,如果不指定,使用level的name</td> </tr> <tr> <td width="150"><level></level></td> <td width="149">父列</td> <td width="149"><parentexpression></parentexpression></td> <td width="149">在父子层次中,表示子成员和父成员关系的表达式</td> </tr> <tr> <td width="150"><measure></measure></td> <td width="149">列</td> <td width="149"><measureexpression></measureexpression></td> <td width="149">计算度量值的SQL表达式(到SQL聚合函数的参数)</td> </tr> <tr> <td width="150"><property></property></td> <td width="149">列</td> <td width="149"><propertyexpression></propertyexpression></td> <td width="149">计算属性值的SQL表达式</td> </tr> </tbody></table> <p></p> <p>1.1.关于uniqueMembers的设置</p> <p>uniqueMembers属性用于优化SQL生成。如果你已经知道在维表中level列的值在这个层次的父级是唯一的,可以设置uniqueMembers=”true”,否则设置为"false”。例如时间维[Year].[Month]在[Month]这个level,应该设置uniqueMembers=”false”,因为同样的月可以出现在不同的年。在另一方面,假设有[Product Class].[Product Name]层次,你可以确保[Product Name]是唯一的,就可以设置uniqueMembers=”true”。如果并不能确定,则先设置为false。一般在最顶级,经常是设置为true,因为没有父层次。</p> <p>1.2.highCardinality属性</p> <p>这个属性通常用于告诉Mondiran在这个维度中有未定义的和大量的值,可以设置为true或false(默认)。当这个属性设置为真时,对整个维度数据全覆盖的活动不会执行。</p></hierarchy></dimension>
分享到:
评论

相关推荐

    mondrian-3.0-technical-guide_2.pdf

    文档还提到了如何设计Mondrian架构的模式,这涉及到对模式文件、逻辑模型、立方体、度量、维度、层次结构、级以及如何在表中映射维度和层次结构的理解。 3. Mondrian模式设计 模式(schema)是定义OLAP数据的结构,...

    Mondrian介绍及配置.pdf

    - Cube 文件是 Mondrian 中的核心配置文件,用于定义多维数据库的逻辑模型、数据立方体、维度和成员等,并将其映射到关系数据库中的物理模型上。 #### 三、Cube文件配置详解 **1. 添加数据立方体(Cube)** - ...

    mondrian的基本模式

    mondrian 模式文件是描述这种多维数据库逻辑结构的 XML 文档,它定义了数据立方、维、层次和成员,同时将这些逻辑元素映射到实际的数据存储,通常是关系型数据库。 1. **逻辑模型**: - **数据立方 (Cubes)**:...

    mondrian 文档

    - **映射维度和层次结构到表**:在实际应用中,需要将模式中定义的维度和层次结构映射到后端数据库表中,以便Mondrian可以从中读取数据。 - **特殊成员('all' 成员)**:在Mondrian中,每个维度都包含一个特殊的...

    mondrian的基本模式.ppt

    - 级别(Levels):层次由一系列级别组成,例如时间维度的年、季度、月是不同级别。 - 成员(Members):每个级别包含具体的成员,如具体的时间点(月份)或客户(性别)。 2. 物理模型:物理模型是实际存储数据...

    如何将Mondrian用于web项目.ppt

    它允许用户指定维度、层次、成员和度量,从而获取所需的数据。理解MDX的基本语法和概念对于有效地利用Mondrian至关重要。 **集成Mondrian到Java Web项目** 集成Mondrian到Java Web项目通常涉及以下步骤: 1. 添加...

    Mondrian Schema Cube 的编写

    维度和层次必须被映射到关系数据库中的表。例如,时间维度可能映射到一个名为 `Time` 的表上,该表包含年、季度、月等字段。 ##### 所有成员(All Members) 所有成员是一个特殊的成员集合,包含了某个维度的所有...

    mondrian 如何使用xml存储olap服务器的元数据.doc

    一个典型的Mondrian模型会包含多个立方体,每个立方体由一系列维度和度量组成。维度通常包含属性或属性集合,如示例中的"Gender"维度,它通过外键与事实表连接,定义了一个层次结构,具有"Gender"这个级别。 总结来...

    mondrian体系结构浅析.doc

    Mondrian 的 Schema Manager 分析通常包括对缓存策略、数据模型构建和元数据处理的深入了解。在实际分析前,需要搭建合适的环境,如 Windows 2003、Tomcat、MySQL、Java 1.6 和特定版本的 Mondrian 源码。通过配置 ...

    官方mondrianschema编写指南 无水印版

    - **3.3.1 把维度和层次映射到表上** 在实际应用中,维度通常被映射到关系数据库中的表格上。例如,时间维度可能映射到一个单独的时间表,其中包含具体的日期和对应的年、季度、月等信息。 - **3.3.2 所有成员...

    如何将Mondrian用于web项目

    - **配置Mondrian模式文件**:Mondrian的模式文件定义了关系数据到多维数据的映射,需要根据项目需求进行定制。 - **引入Mondrian库**:将Mondrian库添加到项目依赖中。 - **使用API执行查询**:通过Mondrian的API...

    jpivot汇总.doc

    它包含立方体、维度、层次、级别和成员。Schema文件是XML格式,映射逻辑模型与数据库物理模型。 5. **Cube** - **Cube** 是由维度和度量组成的集合,它们共享同一个事实表。Cube的属性包括:`name`(立方体名称)...

    Mondrian开源OLAP引擎详解.docx

    实现多维模型中维度和关系数据库表中列的映射,在 Schema Manager 也有部分功能处理这些映射。 Mondrian 采用 ROLAP 技术,在 ROLAP 的多维模型组织和存储数据中,比较常用的方式是星型模式,由一个事实表和一组...

    官方mondrianschema编写指南

    在实际应用中,维度和层次需要映射到物理表上。例如,时间维度可能映射到一张专门的时间表上,其中包含年份、季度、月份等字段。 ###### 3.3.2 所有成员(AllMembers) 所有成员是指一个维度或层次中的所有可能的...

    JOLAP-Spec

    2. **面向对象**:JOLAP的设计基于Java的面向对象特性,使得数据模型可以更直观地映射到多维数据结构,如维度、层次和度量。 3. **性能优化**:考虑到OLAP的特性,JOLAP强调高效的数据检索和处理,通过预计算、数据...

    在线联机分析(OLAP)小结

    在线联机分析(Online Analytical Processing, OLAP)是一种用于数据仓库系统的技术,它支持复杂的分析操作,以帮助用户从不同角度深入理解大量业务数据。OLAP系统的主要目标是提供快速、灵活和交互式的访问,以进行...

    mondriantest

    4. **Mondrian的部署**:创建Mondrian的多维数据集(Cube),定义维度和度量,配置 Mondrian XMLA 元数据文件,使其能够理解和解析用户查询。 5. **Spring与Mondrian的结合**:通过Spring的JDBC模板或者JNDI查找来...

    数据库仓库

    Java中的开源OLAP工具如 mondrian 和 Saiku 可以集成到数据仓库中,提供高性能的分析能力。 7. **数据仓库工具**: 数据仓库的管理和分析通常需要专门的工具,如Tableau、Power BI、QlikView等,它们提供了直观的...

Global site tag (gtag.js) - Google Analytics