Schema Workbench 开发mdx和模式文件
一、前言
安装了saiku之后,每次修改schema文件,非常耗时,每次都要经历若干步骤:修改xml、上传、重启才能生效,并且非常不利于学习和理解MDX和模式文件,踌躇之际,发现了这个工具,十分小巧方便!saiku安装过程可参考上一篇博客:http://www.cnblogs.com/liqiu/p/5183894.html
二、下载
这是一个pentaho的一个工具,有很多版本,下载地址:https://sourceforge.net/projects/mondrian/files/schema%20workbench/3.11.0/
下载之后,执行里面的启动命令即可,windows执行:workbench.bat;linux执行:workbench.sh。我使用的是mac,效果如图:

三、初始化数据:
运行这款软件肯定依赖一个数据库,Mysql或者Postgresql都可以,我使用的是PostgreSql,下面是网络上搜索到的建表语句:
CREATE TABLE sale
(
saleid integer NOT NULL,
proid integer,
cusid integer,
unitprice double precision,
num integer,
CONSTRAINT sale_pkey PRIMARY KEY (saleid)
); CREATE TABLE customer
(
cusid integer NOT NULL,
gender character(1),
CONSTRAINT customer_pkey PRIMARY KEY (cusid)
);
CREATE TABLE product
(
proid integer NOT NULL,
protypeid integer,
proname character varying(32),
CONSTRAINT product_pkey PRIMARY KEY (proid)
);
CREATE TABLE producttype
(
protypeid integer NOT NULL,
protypename character varying(32),
CONSTRAINT producttype_pkey PRIMARY KEY (protypeid)
); insert into Customer(cusId,gender) values(1,'F')
insert into Customer(cusId,gender) values(2,'M')
insert into Customer(cusId,gender) values(3,'M')
insert into Customer(cusId,gender) values(4,'F')
insert into producttype(proTypeId,proTypeName)values(1,'电器')
insert into producttype(proTypeId,proTypeName)values(2,'数码')
insert into producttype(proTypeId,proTypeName)values(3,'家具')
insert into product(proId,proTypeId,proName)values(1,1,'洗衣机')
insert into product(proId,proTypeId,proName)values(2,1,'电视机')
insert into product(proId,proTypeId,proName)values(3,2,'mp3')
insert into product(proId,proTypeId,proName)values(4,2,'mp4')
insert into product(proId,proTypeId,proName) values(5,2,'数码相机')
insert into product(proId,proTypeId,proName)values(6,3,'椅子')
insert into product(proId,proTypeId,proName)values(7,3,'桌子')
insert into sale(saleId,proId,cusId,unitPrice,number)values(1,1,1,340.34,2)
insert into sale(saleId,proId,cusId,unitPrice,number)values(2,1,2,140.34,1)
insert into sale(saleId,proId,cusId,unitPrice,number)values(3,2,3,240.34,3)
insert into sale(saleId,proId,cusId,unitPrice,number)values(4,3,4,540.34,4)
insert into sale(saleId,proId,cusId,unitPrice,number)values(5,4,1,80.34,5)
insert into sale(saleId,proId,cusId,unitPrice,number)values(6,5,2,90.34,26)
insert into sale(saleId,proId,cusId,unitPrice,number)values(7,6,3,140.34,7)
insert into sale(saleId,proId,cusId,unitPrice,number)values(8,7,4,640.34,28)
insert into sale(saleId,proId,cusId,unitPrice,number)values(9,6,1,140.34,29)
insert into sale(saleId,proId,cusId,unitPrice,number)values(10,7,2,740.34,29)
insert into sale(saleId,proId,cusId,unitPrice,number)values(11,5,3,30.34,28)
insert into sale(saleId,proId,cusId,unitPrice,number)values(12,4,4,1240.34,72)
insert into sale(saleId,proId,cusId,unitPrice,number)values(13,3,1,314.34,27)
insert into sale(saleId,proId,cusId,unitPrice,number)values(14,3,2,45.34,27)

4、配置数据源
点击下面右下脚的图标:

配置数据库链接:

我选择的是PostgreSql,确认即可
5、核心步骤,创建schema
5.1 创建空的schema

5.2 修改schema名称,命名是:qiu-schema

5.3 添加立方体

命名是:qiu-cube
5.4 在立方体里面添加事实表

5.5 在立方体里面添加维度:qiuDimension

5.6 在维度下面,添加层次。其实不需要添加,他会默认添加一下,点击qiuDimension左侧的小图标即可

5.7 在qiu-Hierarchy下面添加维度表,咱们选择的是customer

5.8 继续添加一个层次:qiuLevel

到这里最困难的都已经完成了
5.9 添加度量

到这里一个简单的模式文件就建成了,点击最右侧的带有铅笔样式的图标即可看见xml文件:

<Schema name="qiu-schema">
<Cube name="qiu-cube" visible="true" cache="true" enabled="true">
<Table name="sale" schema="public" alias="">
</Table>
<Dimension type="StandardDimension" visible="true" foreignKey="cusid" name="qiuDimension">
<Hierarchy name="qiuHierarchy" visible="true" hasAll="true" allMemberName="allCustomer" allMemberCaption="所有名称">
<Table name="customer" schema="public" alias="">
</Table>
<Level name="qiuLevel" visible="true" column="gender" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>
<Measure name="qiuMeasure" column="num" datatype="Numeric" aggregator="sum" visible="true">
</Measure>
</Cube>
</Schema>
如果上面有遗漏的部分,把这个xml文件替换进去,重新点击铅笔样式的图标即可充新生成
6、添加MDX语句,测试模式文件
选择File,在选择MDX Query,即可创建查询对话框,插入如下语句:
select
{[Measures].qiuMeasure}
on columns,
{([qiuDimension].[allCustomer])}
on rows
from [qiu-cube]
效果如图:

Schema Workbench 开发mdx和模式文件的更多相关文章
- Saiku_学习_02_Schema Workbench 开发mdx和模式文件
一.前言 saiku的查询都是通过cube来进行的.因此每当我们要进行一次多维度查询时,都要先修改xml.上传.重启才能生效,不仅效率低,还不利于学习和理解MDX和模式文件. 通过 workbench ...
- 浅析 mondrian 模式文件 Schema
1.前言 前面几篇文章一经介绍过saiku.模式文件和MDX的关系.通俗点说模式文件(Schema)就是一个xml,里面定义了一个虚拟立方体,共MDX查询语言使用. 2.模式文件 Schema 最顶层 ...
- Solr 03 - Solr的模式设计与优化 - 最详细的schema.xml模式文件解读
目录 1 关于schema.xml文件 2 解读schema.xml文件 2.1 field - 配置域 2.2 fieldType - 配置域类型 2.3 copyField - 配置复制域 2.4 ...
- Mondrian辅助组件----Schema WorkBench(架构平台简介)
Schema WorkBech 是Pentaho套件的另一个组件,是mondrian中schema文件生成工具.通过Schema WorkBench我们可以快速生成一个schema文件,不再需要手写. ...
- 基于Spring的可扩展Schema进行开发自定义配置标签支持
一.背景 最近和朋友一起想开发一个类似alibaba dubbo的功能的工具,其中就用到了基于Spring的可扩展Schema进行开发自定义配置标签支持,通过上网查资料自己写了一个demo.今天在这里 ...
- schema workbench的操作
1.schema workbench连不上sql,如下: 看不懂,这是驱动的问题,你只要使用最新的驱动,mysql-connector-java-5.1.13-bin.jar 将对应驱动放入schem ...
- 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组
真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳 ...
- 图像开发的p2s模式:halcon+opencv的联动
[<zw版·Halcon与delphi系列原创教程> 图像开发的p2s模式:halcon+opencv的联动 尽管halcon功能强大,基本上cv只是halcon的一个子集,不过cv毕竟是 ...
- App开发三种模式
APP开发三种模式 现在App开发的模式包含以下三种: Native App 原生开发AppWeb App 网页AppHybrid App 混合原生和Web技术开发的App 详细介绍: http:// ...
随机推荐
- HTML5服务器端推送事件 解决PHP微信墙推送问题
问题描述 以前的文章中<PHP微信墙制作,开源>已经用PHP搭建了一个微信墙获取信息的服务器,然后我就在想推送技术应该怎么解决,上一篇已经用了.NET 的signalr做了一个微信墙,PH ...
- C#设计模式(19)——状态者模式(State Pattern)
一.引言 在上一篇文章介绍到可以使用状态者模式和观察者模式来解决中介者模式存在的问题,在本文中将首先通过一个银行账户的例子来解释状态者模式,通过这个例子使大家可以对状态者模式有一个清楚的认识,接着,再 ...
- [游戏模版13] Win32 透明贴图 主角移动
>_<:just add previous two ways to achieve this new result // stdafx.h : include file for stand ...
- SQL语法的重要知识点总结
好几年没写SQL语句了.现在到了新的team,需要用到数据库.作为QA的话时常需要使用客户端工具连接到数据库中找寻或修改数据.这么长时间没使用,一些SQL的使用技巧都忘得差不多了.晚上看了一些资料,花 ...
- javascript 中关于对象转换数字值的一些特点
下面是摘至<Javascript 高级程序设计第三版>里的一段话 是关于对象转换数字值的一些规则 "在应用于对象时,先调用对象的valueOf()方法以取得一个可供操作的值.然后 ...
- php-fpm的配置和优化
php-fpm的安装目录 下面是我的平时的环境搭建php的各种安装目录,大家的基本也差不多. centos等linux平台 /usr/local/php/php /usr/local/php/etc/ ...
- Cluster群集
Cluster群集一般来讲有四个功能1. 冗余功能,就是说在这个群集中的任何一台机器出现本机或网络故障时,整个网络仍不中断,对外的服务也不中断,网络有多个路线可以走,服务器也可以相互代替.2.负载均衡 ...
- JPA 不在 persistence.xml 文件中配置每个Entity实体类的2种解决办法
在Spring 集成 Hibernate 的JPA方式中,需要在persistence配置文件中定义每一个实体类,这样非常地不方便,远哥目前找到了2种方法. 这2种方式都可以实现不用persist ...
- 都昌 DCWriter电子病历编辑器演示文档截屏
- IOS适配
• Default.png(图片尺寸为320x480):显示在非Retina-3.5英寸屏幕上(iPhone3G\iPhone3GS,屏幕分辨率为320x480) • Default@2x.png(图 ...