浅析 mondrian 模式文件 Schema
1、前言
前面几篇文章一经介绍过saiku、模式文件和MDX的关系。通俗点说模式文件(Schema)就是一个xml,里面定义了一个虚拟立方体,共MDX查询语言使用。
2、模式文件
Schema 最顶层
Cube 立方体,以事实表为中心,围绕若干维度表
Table 事实表
Dimension 维度
Hierarchy 维度层次
Level 一个层次
Measure 度量
事例:
创建原始数据表,这些表参考:http://www.cnblogs.com/liqiu/p/5202708.html 里面的建表语句!
根据创建的数据表,我写了一个模式文件:
<Schema name="SaleSchema">
<Cube name="SalesCube">
<Table name="sale">
</Table>
<Dimension type="StandardDimension" visible="true" foreignKey="cusid" highCardinality="false" name="dimCustomer">
<Hierarchy visible="true" hasAll="true" allMemberName="allCustomer">
<Table name="customer">
</Table>
<Level name="gender" visible="true" column="gender" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
<Measure name="saleNumber" column="num" aggregator="sum" caption="NumTitle" visible="true">
</Measure>
<Measure name="saleAmount" aggregator="sum" caption="allSaleTitle" visible="true">
<MeasureExpression>
<SQL dialect="generic">
<![CDATA[(unitprice*num)]]>
</SQL>
</MeasureExpression>
</Measure>
</Cube>
</Schema>
这里面使用了两张表,事实表:sale和消费者表customer,其中sale表里面的cusid是customer表的主键
3、Table
这里指的是立方体里面的事实表,sale
4、维度
这里仅仅声明了一个维度,消费者维度
<Dimension type="StandardDimension" visible="true" foreignKey="cusid" highCardinality="false" name="dimCustomer">
<Hierarchy visible="true" hasAll="true" allMemberName="allCustomer">
<Table name="customer">
</Table>
<Level name="gender" visible="true" column="gender" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
里面有个维度层次,里面仅仅包含一个层次,性别:gender
5、指标
<Measure name="saleNumber" column="num" aggregator="sum" caption="NumTitle" visible="true">
</Measure>
是销量指标,另外一个不做太多解释了
6、执行:
select
{[Measures].saleNumber,[Measures].saleAmount}
on columns,
{([dimCustomer].[allCustomer])}
on rows
from [salesCube]
7、结果

浅析 mondrian 模式文件 Schema的更多相关文章
- Solr 03 - Solr的模式设计与优化 - 最详细的schema.xml模式文件解读
目录 1 关于schema.xml文件 2 解读schema.xml文件 2.1 field - 配置域 2.2 fieldType - 配置域类型 2.3 copyField - 配置复制域 2.4 ...
- Schema Workbench 开发mdx和模式文件
一.前言 安装了saiku之后,每次修改schema文件,非常耗时,每次都要经历若干步骤:修改xml.上传.重启才能生效,并且非常不利于学习和理解MDX和模式文件,踌躇之际,发现了这个工具,十分小巧方 ...
- Mondrian辅助组件----Schema WorkBench(架构平台简介)
Schema WorkBech 是Pentaho套件的另一个组件,是mondrian中schema文件生成工具.通过Schema WorkBench我们可以快速生成一个schema文件,不再需要手写. ...
- Saiku_学习_02_Schema Workbench 开发mdx和模式文件
一.前言 saiku的查询都是通过cube来进行的.因此每当我们要进行一次多维度查询时,都要先修改xml.上传.重启才能生效,不仅效率低,还不利于学习和理解MDX和模式文件. 通过 workbench ...
- SQL Server中模式(schema)、数据库(database)、表(table)、用户(user)之间的关系
数据库的初学者往往会对关系型数据库模式(schema).数据库(database).表(table).用户(user)之间感到迷惘,总感觉他们的关系千丝万缕,但又不知道他们的联系和区别在哪里,对一些问 ...
- 浅析MVC模式与三层架构的区别
浅析MVC模式与三层架构的区别 三层架构和MVC是有明显区别的,MVC应该是表现模式(三个加起来以后才是三层架构中的UI层).三层架构(3-tier application) 通常意义上的三层架构就是 ...
- 编程模式(schema) —— 表驱动法(table-driven)
使用表驱动法,而非繁琐冗长的 if/else, switch case(本身也代表一种代码坏味道),也是替身编程质量的重要手段, 表驱动法是一种编程模式(schema)-- 从表里面查找信息而不使用逻 ...
- PostgreSQL 模式(SCHEMA)
PostgreSQL 模式(SCHEMA)可以看着是一个表的集合. 一个模式可以包含视图.索引.据类型.函数和操作符等. 相同的对象名称可以被用于不同的模式中而不会出现冲突,例如 schema1 和 ...
- 利用SOLR搭建企业搜索平台 之——模式配置Schema.xml
来源:http://blog.csdn.net/awj3584/article/details/16963525 schema.xml这个配置文件可以在你下载solr包的安装解压目录的\solr\ex ...
随机推荐
- Dynamic CRM 2013学习笔记(三)快速创建实体 EntityCreater
一.实体简介 实体用于在 Microsoft Dynamics CRM 中建立业务数据模型和管理业务数据.例如,可以使用客户.市场活动和事件(案例)等实体跟踪和支持销售.市场营销和服务活动.实体具有一 ...
- 阿里云中Centos下配置防火墙
一.检查iptables服务状态 [root@woxplife ~]# service iptables status iptables: Firewall is not running. 说明ipt ...
- Salesforce 生成测试可用 Id
在写 Test Class 的时候,有时候需要一批有 Id 的数据或者把 Id 作为参数等情况,在数据关系比较复杂的情况下去造真实数据有些麻烦,于是找到这样一个可以生成 Id 的方法可以用来辅助测试! ...
- Unity3D——物体鼠标跟随转向
int floorMask; float camRayLenth = 100f;//摄像机射线距离 void Truning() { Ray ray = Camera.main.ScreenPoint ...
- 阿里云服务器PPTP VPN安装记录
# sudo apt-get install pptpd http://blog.kunyu.li/digitalocean-ubuntu-vps-vpn.html iptables管理 ...
- 解决 "Windows 无法启动Mongo DB服务 错误:1067 进程意外终止"
在启动MongoDB服务时,有时会报上图所示的错误,解决方案为: 1. MongoDB安装目录\data\将此文件夹下的mongod.lock删除 2. 查看官方文档或按照上一篇安装文章检查是否设置d ...
- 编写高质量代码改善C#程序的157个建议——导航开篇
前言 由于最近工作重心的转移,原来和几个同事一起开发的项目也已经上线了,而新项目就是在现有的项目基础上进行优化延伸扩展.打个比方,现在已经上线的项目行政案件的Web管理网站(代码还没那么多相比较即将要 ...
- JNI开发示例
安装:eclipse(http://www.eclipse.org/).CDT(C/C++ Development Tooling).ADT(Android Development Tools) ht ...
- Android的消息机制: Message/MessageQueue/Handler/Looper
概览 * Message:消息.消息里面可包含简单数据.Object和Bundle,还可以包含一个Runnable(实际上可看做回调). * MessageQueue:消息队列,供Looper线程 ...
- C#中使用委托、接口、匿名方法、泛型委托实现加减乘除算法
使用C#实现加减乘除算法经常被用作新手练习.本篇来分别体验通过委托.接口.匿名方法.泛型委托来实现. 使用委托实现 加减乘除拥有相同的参数个数.类型和返回类型,首先想到了使用委托实现. //创建一个委 ...