[mondrian] 分析一个简单的schema文件
<?xml version="1.0" encoding="UTF-8"?>
<Schema name="Mondrian"> <Cube name="Person"> <Table name="PERSON" /> <Dimension name="部门" foreignKey="USERID" >
<Hierarchy hasAll="true" primaryKey="USERID" allMemberName="所有部门" >
<Table name="PERSON" alias="a"/>
<Level name="部门" column="DEPARTMENT" uniqueMembers="true" />
<Level name="姓名" column="USERNAME" uniqueMembers="true" />
</Hierarchy>
</Dimension> <Dimension name="性别" foreignKey="USERID" >
<Hierarchy hasAll="true" primaryKey="USERID" allMemberName="所有性别">
<Table name="PERSON" alias="b" />
<Level name="性别" column="SEX" uniqueMembers="true" />
</Hierarchy>
</Dimension> <Dimension name="专业技术资格类别" foreignKey="USERID" >
<Hierarchy hasAll="true" primaryKey="USERID" allMemberName="所有专业技术资格类别">
<Table name="PERSON" alias="c" />
<Level name="资格类别" column="ZYJSLB" uniqueMembers="true" />
</Hierarchy>
</Dimension> <Dimension name="专业技术资格等级" foreignKey="USERID" >
<Hierarchy hasAll="true" primaryKey="USERID" allMemberName="所有专业技术资格等级">
<Table name="PERSON" alias="d" />
<Level name="资格等级" column="ZYJSDJ" uniqueMembers="true" />
</Hierarchy>
</Dimension> <Dimension name="职系" foreignKey="USERID" >
<Hierarchy hasAll="true" primaryKey="USERID" allMemberName="所有职系">
<Table name="PERSON" alias="e" />
<Level name="职系" column="ZHIXI" uniqueMembers="true" />
</Hierarchy>
</Dimension> <Dimension name="民族" foreignKey="USERID" >
<Hierarchy hasAll="true" primaryKey="USERID" allMemberName="所有民族">
<Table name="PERSON" alias="f" />
<Level name="民族" column="NATIONALITY" uniqueMembers="true" />
</Hierarchy>
</Dimension> <Dimension name="学历" foreignKey="USERID" >
<Hierarchy hasAll="true" primaryKey="USERID" allMemberName="所有学历">
<Table name="PERSON" alias="g" />
<Level name="学历" column="XUELI" uniqueMembers="true" />
</Hierarchy>
</Dimension> <Measure name="人数" column="USERID" aggregator="distinct count" /> </Cube> </Schema>
一、节点结构:
Schema
|- Cube
|-Table
|-Dimension
|-Hierarchy
|-Table
|-Level
|-Measure
|-Role
注意:
1、一个schema文件中只有一个Schema节点
2、通常Measure都作为统计的列,Dimension都作为统计的行
3、Cube可有多个,通过name来区分,上述配置只有一个Cube,名字标识为Person
二、MDX语句查询DEMO
<jp:mondrianQuery
id="query01"
jdbcDriver="com.mysql.jdbc.Driver"
jdbcUrl="jdbc:mysql://localhost:3306/test"
catalogUri="/WEB-INF/queries/personDemo.xml"
jdbcUser="root"
jdbcPassword="root"
connectionPooling="false">
select
NON EMPTY {[Measures].[人数]} on columns,
NON EMPTY {(
[部门].[所有部门],
[职系].[所有职系],
[专业技术资格类别].[所有专业技术资格类别],
[专业技术资格等级].[所有专业技术资格等级],
[学历].[所有学历],
[民族].[所有民族],
[性别].[所有性别]
)} ON rows
from Person
</jp:mondrianQuery>
注意: 1、<jp:mondrianQuery>的属性配置的是mondrian的链接信息
2、MDX的查询语句是通过name属性值进行查询的
<Cube name="Person"> 对应 from CubeName
<Dimension name="学历"> 对应 [DimensionName].[HierarchyName]
<Measure name="人数"> 对应 [Measures].[MeasuresName]
参考资料:
http://files.cnblogs.com/files/avivaye/Mondrian_Schema%28%E5%A4%9A%E7%BB%B4%E5%88%86%E6%9E%90%29%E5%B1%9E%E6%80%A7%E8%AF%A6%E8%A7%A3.rar
[mondrian] 分析一个简单的schema文件的更多相关文章
- 从零开始的程序逆向之路基础篇 第二章——用OllyDbg(OD)分析一个简单的软件
作者:Crazyman_Army 原文来自:https://bbs.ichunqiu.com/thread-43469-1-1.html 0x00知识回顾 (由于笔者省事,没开XP虚拟机,而且没关闭A ...
- 一个简单的makefile文件
一个简单的makefile文件:可以编译指定目录下的所有c和cpp文件,暂未加入自动头文件的依赖. #!/bin/bash #编译器 CROSS_COMPILING_PATH = #源文件路径 VPA ...
- ubuntu14.04 配置g++工具,并运行一个简单的c++文件
首先,对Ubuntu 14.04 LTS进行源更新,摘自下述链接: http://chenrongya.blog.163.com/blog/static/8747419620143185103297/ ...
- 分析一个简单的goroutine资源池
分析一个简单的goroutine资源池 tunny. 从资源池中获取goroutine并进行处理的逻辑如下: tunny将goroutine处理单元封装为workWrapper,由此可以对gorout ...
- VS2017生成一个简单的DLL文件 和 LIB文件——C语言
下面我们将用两种不同的姿势来用VS2017生成dll文件(动态库文件)和lib文件(静态库文件),这里以C语言为例,用最简单的例子,来让读者了解如何生成dll文件(动态库文件) 生成动态库文件 姿势一 ...
- 使用go写一个简单的exe文件
工作需要一个小工具给分析师用,原先打算写一个脚本的,但是呢我又不会用python,要写的话只能用java来实现(打包成可执行jar,使用java -jar 的命令来执行,当然得安装jdk).这种命令行 ...
- 一个简单的makefile文件编写
下午闲来无聊,就打开很久没动过的linux系统想熟悉熟悉在linux上面编译代码,结果一个makefile文件搞到晚上才搞定,哈哈! 先把代码简单贴上来,就写了一个冒泡排序: sort.h: #ifn ...
- 如何用 Nodejs 分析一个简单页面
本文目的 在浏览器地址栏中输入 localhost:3000,在页面显示 博客园首页 的 20 篇文章标题. 过程分析 首先需要端口的监听,这就需要引入 Node 中最重要的模块之一 express. ...
- 一个简单的excel文件上传到数据库方法
因为以前项目中有用到过Excel导入,所以整理了一下,这是一个导入Excel数据到数据库的方法 注意:需要导入poi jar包 代码清单 /** * Excel 导入 * @param mapping ...
随机推荐
- CentOS6.6系统源代码安装mysql5.5.28教程(附源码包下载地址)+sysbench的安装
mysql从5.5版本开始,不再使用./configure编译,而是使用cmake编译器,具体的cmake编译参数可以参考mysql官网文档(※ 非常重要) http://dev.mysql.com/ ...
- 传递给系统调用的数据区域太小。 (异常来自 HRESULT:0x8007007A)
在做结构体向字节数组转换的时候,常遇到"传递给系统调用的数据区域太小"的错误,究其原因是因为英文与汉字的编码方式不同,一个汉字等于两个字节,而一个英文字母等于1个字节.所以,对于如 ...
- SqlSever基础 union 联合查询,厉害的并集 重复项只显示一个 两个查询结果并在一起后排序
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
- HDU 4996 Revenge of LIS(DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4996 题意:求1到n的全排列中,有多少个排列的最长上升子列长度为K? 思路:对于当前的最长上升子列,我 ...
- [转]Unity3D:Gizmos画圆(原创)
using UnityEngine; using System; public class HeGizmosCircle : MonoBehaviour { public Transform m_Tr ...
- Creating Object Library OLB in Oracle D2k Form
With following steps you can create Object Library (OLB) in Oracle D2k Forms.Step - 1Create a form i ...
- [C和指针]第四部分
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- Scrum Meeting---Eleven(2015-11-6)
今日已完成任务和明日要做的任务 姓名 今日已完成任务 今日时间 明日计划完成任务 估计用时 董元财 倒计时设计 3h 商品发布页设计 4h 胡亚坤 低栏设计 2h UI风格 2h 刘猛 通讯录设计 2 ...
- Android开发中退出程序几种方法
参考:http://johncookie.iteye.com/blog/890734 Android程序有很多Activity,比如说主窗口A,调用了子窗口B,子窗口B又调用子窗口C,back返回子窗 ...
- [css] px em rem
一.区别 px是相对于显示器屏幕分辨率而言的. em相对于浏览器的默认字体尺寸. rem相对于HTML根元素. 二.使用 1.em 任意浏览器的默认字体高都是16px.所有未经调整的浏览器都符合: ...