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

Mondrian系列(四)-cube、度量、维度初窥

阅读更多

1.cube,立方体,是一种有名称的度量和维度的集合。度量和维度的共同点是事实表,例如下面例子中的事实表"sale_face_1997”。正如我们所见,事实表中保存了要被计算的度量,并且包含关联维度的表。

<cube name="”Sales”"><br><table name="”sales_fact_1997”/"> <br> … <br> </table> <p>事实表使用</p> <table>标签定义,如果事实表不在默认的schema中,可以通过显式的schema指定,例如 <table border="0" cellspacing="0" cellpadding="2" width="400"><tbody><tr><td valign="top" width="400"> <table schema="”dmart”" name="”sales_fact_1997”/"></table> <p>也可以通过<view>标签定义更加复杂的SQL语句,注意,<join>标签在事实表中不支持。</join></view></p> <p>2.Measure,度量,叫做Sales的Cube定义了一系列的度量,包括"Unit Sales”和"Store Sales”。如下面的例子:</p> <table border="0" cellspacing="0" cellpadding="2" width="785"><tbody><tr> <td valign="top" width="783"><measure name="”Unit" sales column="”unit_sales”" aggregator="”sum”" datatype="”Integer”" formatstring="”#,###”/"><br><measure name="”Store" sales column="”store_sales”" aggregator="”sum”" datatype="”Numeric”" formatstring="”#,###.00”/"></measure></measure></td> </tr></tbody></table> <p>每个度量都有"name“属性,对应于在事实表中的列,"aggregator”属性通常包括sum/count/min/max/avg和distinct-count,注意,如果你的cube包括父子层次结构,distinct-count会有一些限制。</p> <p>datatype属性是可选的,主要说明在Mondrian的缓存中,cell值是如何表现的,以及他们如何通过XML返回用于分析。datatype属性包括String/Integer/Numeric/Boolean/Date/Time/Timestamp,除count和distinct-count外,默认是Numeric,count和distinct-count默认为Integer。</p> <p>formatString属性也是可选的,这个属性指明在输出时的格式。在上面例子中,我们可以设置对Unit Sales输出格式不带小数,Store Sales个带两位小数。格式中的","和"."符号是区域相关的,因此,如果你是在意大利,则小数应该为”48.123,45”,通过使用高级字符格式,可以获得更广泛的效果。</p> <p>caption属性也是可选的,度量可以设置标题属性用于返回而不使用名称,Member.getCaption()方法会返回caption。对于例如(Σ或Π)这样的字符,可以通过定义caption来显示,例如:</p> <table border="0" cellspacing="0" cellpadding="2" width="743"><tbody><tr> <td valign="top" width="741"> <measure name="”Sum" x column="”sum_x”" aggregator="”sum”" caption="”Σ"></measure> 显示的就是Σ X</td> </tr></tbody></table> <p>如果不从列中取度量,也能使用cell reader或使用SQL表达式计算度量值。看下面的例子:</p> <table border="0" cellspacing="0" cellpadding="2" width="740"><tbody><tr> <td valign="top" width="738"><measure name="”Promotion" sales aggregator="”sum”" formatstring="”#,###.00”"><br><measureexpression><br><sql dialect="”generic”"><br> (case when sales_fact_1997.promotion_id=0 then 0 else sales_fact_1997.store_sales end) <br></sql><br></measureexpression><br></measure></td> </tr></tbody></table> <p>在上面的例子中,如果有促销才会包含到促销汇总中,可以使用包括子查询的专门的SQL表达式。基础数据库必须能支持在聚集上下文中的SQL表达式。不同数据库间的差异通过<sql>标签中的dialect属性来设置。</sql></p> <p>度量也可以使用cell格式化器来做专门的格式化</p> <p>3.Dimension,Hierarchy,level 维度、层次和等级</p> <p>我们先看一些定义:</p> <ul> <li>member,是由一系列特定属性值决定的包含维度的点。例如,性别层次有两个成员,M和F。或者商店维度中的名称、城市、省、国家。</li> <li>hierarchy,是为了便于分析由一系列的成员所组成。例如,store层级由一系列的商店名称、城市、省和国家组成。层次可以组织成中间的子汇总,例如,对某个省的子汇总,可以统计省下面的所有城市。</li> <li>level,到层次根有同样距离层次的成员的集合。</li> <li>dimension,是层次的集合,在同一个事实表有不同的层次的集合。为了统一,度量也被称为特殊的维度。</li> <li>让我们看一个例子:</li> <table border="0" cellspacing="0" cellpadding="2" width="732"><tbody><tr><td valign="top" width="730"><dimension name="”Gender”" foreignkey="”customer_id”"><br><hierarchey hasall="”true”" primarykey="”customer_id”"><br><table name="”customer”/"> <br><level name="”Gender”" column="”gender”" uniquemember="”true”/"><br><br></level> </table> <p>在上面的例子中,维度Gender包括一个层次,由一个单独的leve叫做Gender构成。(我们以后会看到,有一个特殊的leve叫做[(All)],用于包括总计)</p> <p>维度的值从customer表的gender列中得到,gender列包括两个值,M和F,因此Gender维度包括成员[Gender].[M]和[Gender].[F]。</p> <p>对任意给定的sale,性别维度通过事实表的sales_face_1997.customer_id和维表customer.customer_id关联。</p></hierarchey></dimension></td></tr></tbody></table> </ul> </td></tr></tbody></table> </table></cube>
分享到:
评论

相关推荐

    mondrian-api.zip

    开发者可以通过`Cube`类来创建和配置立方体,包括设置其维度和度量。 3. **Dimensions**: 尺度是立方体中的分类结构,如时间、地区等。`Dimension`类提供了构建维度的接口,包括定义层次和成员。 4. **Hierarchies...

    Mondrian Schema Cube 的编写

    ### Mondrian Schema Cube 的编写 #### 什么是 Schema 在多维数据分析领域,Mondrian 是一个开源的 OLAP (Online Analytical Processing) 服务器,它能够处理复杂的查询并提供高性能的数据分析能力。Schema 在 ...

    Mondrian 3.0 Technical Guide

    - **Cube** 是一个多维数据集合,它由一系列度量和维度组成,代表了业务中的某个特定视角或领域。 ##### 3.3 Measures(度量) - **度量** 代表了具体的数值,如销售额、利润等,它们是分析过程中的核心关注点。 ...

    数据分析工具mondrian教程

    本教程将深入探讨mondrian的使用,包括如何创建Cube、维度、度量以及相关属性,同时也涵盖了MDX(多维表达式)的语法基础。 首先,让我们了解mondrian的基本模式。mondrian通过连接到数据源,如关系数据库,来构建...

    mondrian报表技术概要

    `&lt;Cube&gt;`标签代表了一个多维数据集,即一个由多个维度和度量构成的数据模型。 ```xml ``` 指明了当前Cube的名称为“SALES”。 ##### Table标签 `&lt;Tablename&gt;`标签定义了与该维度或度量相关的数据库表名。 ```...

    Mondrian用于web项目

    2. 构建Cube:Cube是Mondrian的核心,它是多维数据模型的表示。开发人员需要定义维度(Dimensions)和度量(Measures),并设置层次结构(Hierarchies)和成员(Members)。 3. MDX查询:在Web应用中,用户可以通过...

    Pentaho多维分析(Mondrian)使用指南

    2. **立方体(Cube)**:Mondrian将多维数据组织成立方体,每个立方体代表一组数据的特定视图,通常包括多个维度和度量值。 3. **维度(Dimension)**:维度是构成立方体的组成部分,用于分类和过滤数据,如时间、...

    mondrian支持的函数以及schame元素属性

    1. Cube:定义了一个分析立方体,包含维度和度量。属性如`name`、`description`、`defaultMeasure`等。 2. Dimension:表示一个分析维度,如时间、产品、地理位置等。属性包括`name`、`visible`、`hierarchy`等。 3....

    Tutorial_Mondrian.pdf

    Mondrian 是一个开源的OLAP(On-Line ...通过阅读和实践本教程内容,用户将能够熟悉Mondrian的环境搭建、数据立方体的构建、维度与度量的管理等关键知识点,并能够根据实际数据集设计并优化自己的多维数据库模型。

    mondrian配置例子

    2. **定义多维数据集(Cube)**:在`schema.xml`中,定义立方体结构,包括维度(Dimensions)、层次(Hierarchies)、度量(Measures)等。这些定义将决定用户可以如何探索和分析数据。 3. **部署Mondrian**:将`...

    mondrian源码分析与说明.doc

    * Cube:该类负责管理多维数据的 cube,包括 cube 的定义、维度和度量。 * Dimension:该类负责管理多维数据的维度,包括维度的定义、层次和成员。 2.3. 包 mondrian.calc mondrian.calc 包包含了计算相关的类和...

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

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

    官方mondrianschema编写指南&无水印版

    6. **角色(Roles)**:角色用于控制用户访问特定cube、维度或度量的权限。 在 mondrian schema 编写过程中,优化是非常关键的一环。以下是一些优化策略: 1. **维度预计算**:预先计算并存储维度成员的属性,以...

    BI设计与实现-0.11

    OLAP系统通常包含数据立方体(Cube),由多个维度(Dimension)和度量(Measure)组成。维度是分析数据的角度,如时间、地点、产品等;度量则是可以量化的数据点,如销售额、数量等。 1.3. 典型维度说明 - 时间维度...

    Mondrian解析MDX成sql语句的分析与整理

    1. 词法分析(Lexical Analysis):Mondrian首先对输入的MDX字符串进行分词,识别出关键字、函数、维度、度量等元素。 2. 语法分析(Syntax Analysis):通过解析器(Parser),Mondrian将分词后的结果转化为抽象...

    jpivot汇总.doc

    - **Cube** 是由维度和度量组成的集合,它们共享同一个事实表。Cube的属性包括:`name`(立方体名称)、`caption`(显示标题)、`cache`(是否缓存数据,默认为true)和`enabled`(是否启用)等。全局标签定义了...

    官方mondrianschema编写指南 无水印版

    立方体是多维数据模型的基本单位,它是由一系列维度和度量组成的多维数组。每个立方体都可以看作是一个特定的数据视角,用来表示一组相关的业务度量值。 ##### 3.2 度量值(Measures) 度量值是在立方体中用来表示...

    jpivot教程

    - **Cube**:一组维度和度量的集合,共同指向同一个事实表。 - 属性: - `name`:Cube的名字。 - `caption`:显示的标题。 - `cache`:是否启用缓存,默认为`true`。 - `enabled`:是否激活,默认为`true`。 -...

Global site tag (gtag.js) - Google Analytics