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

Mondrian系列(五)-深入维度、层次和级别(4)-维度退化和内联表

 
阅读更多

1.维度退化

维度退化是指对于简单的维度来说,不创建自己的维表,例如,下面的事实表:

product_id time_id payment_method customer_id store_id item_count dollars
55 20040106 Credit 123 22 3 $3.54
78 20040106 Cash 89 22 1 $20.00
199 20040107 ATM 3 22 2 $2.99
55 20040106 Cash 122 22 1 $1.18

对于其中的维度支付方式,假设我们创建了一个维表,这个维表几乎是没有意义的。如果单独增加了这样一个维表,那么可能会导致一定的连接成本。(对于这个问题,我持有不同的看法,例如当这个维度是可被复用时,则这个维表是有意义的)

可以创建一个退化维度,声明一个不包括表的维度,mondrian会假设列来自事实表。看下面的例子:

<cube name="”Checkout”"><br><font color="#ff0000"><!-- 这里声明了事实表 --></font> <br><table name="”checkout”"> <br><dimension name="”Payment" method><br><hierarchy hasall="”true”"><br><font color="#ff0000"><!-- 这里没有声明维表 --></font> <br><level name="”Payment" method column="”payment_method”" uniquemembers="”true”/"><br></level></hierarchy><br></dimension><br> </table> <p>在上面的实例中,因为没有join,Dimension维度的foreignKey属性不需要设置,Hierarchy元素没有</p> <table>子元素或primaryKey属性。 <p>2.内联表</p> <p><inlinetable>构造允许你在schema文件中定义数据集。必须声明列的名字,列的类型,以及一系列的行。作为<table>和<view>,必须提供唯一的别名指向数据集。如下面的例子: <table border="1" cellspacing="0" cellpadding="2" width="775"><tbody><tr> <td valign="top" width="773"> <dimension name="”Severity”"><br><hierarchy hasall="”true”" primarykey="”severity_id”"><br><font color="#ff0000"><inlinetable alias="”severity”"><br></inlinetable></font> <columndefs><br><columndef name="”id”" type="”Numeric”"></columndef><br><columndef name="”desc”" type="”String”"></columndef><br></columndefs><br><rows><br><row><br><value column="”id”">1</value><br><value column="”desc”">High</value><br></row><br><row><br><value column="”id”">2</value><br><value column="”desc”">Medium</value><br></row><br><row><br><value column="”id”">2</value><br><value column="”desc”">Low</value><br></row><br></rows><br><br><level name="”Severity”" column="”id”" namecolumn="”desc”" uniquemembers="”true”/"><br></level></hierarchy><br></dimension><br> </td> </tr></tbody></table> <p>这和你的数据库中有下面的表是一样的效果。</p> <table border="1" cellspacing="0" cellpadding="2" width="600"><tbody> <tr> <td valign="top" width="300">id</td> <td valign="top" width="300">desc</td> </tr> <tr> <td valign="top" width="300">1</td> <td valign="top" width="300">High</td> </tr> <tr> <td valign="top" width="300">2</td> <td valign="top" width="300">Medium</td> </tr> <tr> <td valign="top" width="300">3</td> <td valign="top" width="300">Low</td> </tr> </tbody></table> <p>要指定某个列NULL值,对那个列忽略<value>,列的值默认为空。</value></p> <p>3.估计Level的势</p> <p><level>元素允许指定可选的参数 "approxRowCount",指定这个参数可以改善性能,通过减少需要决定的level,层次和维度的势。通过连接到XMLA的Mondrian,可能会产生较大的影响。</level></p></view> </table></inlinetable></p> </table></cube>
分享到:
评论

相关推荐

    mondrian-3.0-technical-guide_2.pdf

    文档提到了“all”成员、时间维度、级别顺序和显示、多重层次结构、退化维度和内联表的概念。 4. MDX与Mondrian MDX(多维表达式)是用于查询和操作OLAP数据的标准查询语言。文档解释了MDX的基本概念,包括MDX的...

    mondrian-data-foodmart-hsql.rar

    Mondrian是一个用Java写成的ROLAP引擎,是开源项目Pentaho的一部分。它实现了 MDX语言、XML解析、JOLAP规范。它从SQL 和其它数据源读取数据并把数据聚集在内存缓存中,然后经过Java API用多维的方式对结果进行展示,...

    mondrian-4.3.0.1.2-SPARK.jar

    mondrian-4.3.0.1.2-SPARK.jar

    Python库 | mondrian-0.8.1-py2.py3-none-any.whl

    资源分类:Python库 所属语言:Python 资源全名:mondrian-0.8.1-py2.py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    mondrian-api.zip

    总的来说,"mondrian-api.zip"提供的API文档对于开发者来说是一份宝贵的资源,可以帮助他们深入理解mondrian的工作原理,以及如何利用mondrian来设计和实现高效的数据分析应用。通过学习和实践,开发者可以充分利用...

    Mondrian 3.0 Technical Guide

    - **映射** 过程将逻辑模型中的维度和层次结构映射到实际的数据表中,确保数据的一致性和准确性。 ##### 3.6 “All”成员 - **“All”成员** 是一个特殊成员,表示维度中的所有值的汇总,常用于汇总分析。 ##### ...

    Mondrian介绍及配置.pdf

    - **推荐版本**:`mondrian-3.0.4.11371.zip` **2. 部署Mondrian** - **服务器环境**: - 操作系统:Windows 2000 - Web 服务器:Tomcat 5.5.20 - 关系数据库:MySQL - **新建foodmart数据库**: - 下载 `...

    mondrian-3.1.5-master.zip

    Mondrian是一个用Java写成的ROLAP引擎,是开源项目Pentaho的一部分。它实现了 MDX语言、XML解析、JOLAP规范。它从SQL 和其它数据源读取数据并把数据聚集在内存缓存中,然后经过Java API用多维的方式对结果进行展示,...

    mondrian操作手册和优化配置

    mondrian 是一个开源的 OLAP (在线分析处理) 引擎,它主要用于构建多维数据集和执行复杂的分析查询。本操作手册主要关注如何使用 mondrian 进行配置和优化,以便更好地理解和操作多维数据。 首先,Mondrian 配置...

    Mondrian和olap4j api的示例

    mondrian和olap4j是两个在大数据分析和在线分析处理(OLAP)领域中重要的开源工具。Mondrian是一个关系型多维数据集引擎,它允许用户通过SQL查询复杂的数据集,而olap4j则是一个Java API,用于与各种OLAP服务器交互...

    mondrian 源码

    6. **Schema文件**:mondrian的模式文件定义了数据仓库的多维模型,包括维度、层次、度量和属性。这些文件使用XML格式编写,可以通过mondrian的XMLA接口进行访问。 7. **JavaScript接口**:mondrian的JavaScript库...

    mondrian基本介绍

    星型模式由一个事实表(如“sales_fact_1997”)和多个维度表(如“customer”和“time_by_day”)组成,它们通过外键关联。 3. Mondrian 模式文件的结构: - 在 XML 文件中,模式定义包括 Cube、Dimension、...

    mondrian-3.11.jar

    mondrian-3.11.jar

    mondrian的基本模式

    mondrian 模式深入理解 mondrian 模式是 OLAP(在线分析处理)系统的核心组件,主要用于构建和管理多维数据库。它允许用户通过 MDX(多维表达式)查询语言进行复杂的数据分析和报告。mondrian 模式文件是描述这种...

    mondrian-4.3.0.1-SPARK

    saiku3.x中所需的mondrian的jar包,用来支持SPARK

    mondrian-9.0.0.0-SNAPSHOT-with-KylinDialect.jar

    已编译好的mondrian-9.0.0.0-SNAPSHOT-with-KylinDialect.jar,已添加kylin支持,暂未测试是否可用。

    mondrian-3.14.0.0-12

    mondrian-3.14.0.0-12,

    mondrian-and-me:纪念Piet Mondrian奇妙艺术的“无用网站”

    在"mondrian-and-me"这个项目中,JavaScript可能被用来生成和操纵Mondrian风格的图形,比如随机绘制线条和矩形,以及颜色的选取和分配。开发者可能利用canvas元素,这是一个HTML5提供的画布,允许通过JavaScript进行...

    mondrian war项目maven编译

    mondrian-war-maven-project.zip mondrian是一款开源的多维分析引擎,主要用于在线分析处理(OLAP)和数据仓库应用。它提供了SQL接口,可以连接到各种关系数据库,支持复杂的数据查询和分析操作。在本项目中,我们...

Global site tag (gtag.js) - Google Analytics