风行__雄关漫道

Mondrian辅助组件----Schema WorkBench(架构平台简介)

Schema WorkBech 是Pentaho套件的另一个组件,是mondrian中schema文件生成工具。通过Schema WorkBench我们可以快速生成一个schema文件,不再需要手写。

 

Schema 定义了一个多维数据库。包含了一个逻辑模型,而这个逻辑模型的目的是为了书写 MDX 语言的查询语句。逻辑模型包括几个概念: Cubes (立方体)、维度( Dimensions )、层次( Hierarchies )、级别( Levels )、和成员( Members )。而一个 schema 文件就是编辑这个 schema 的一个 xml 文件。在这个文件中形成逻辑模型和数据库物理模型的对应。schemaworkbench 工具创建xml文件非常简单易用。

 

2.1 下载与配置

工作环境:Windows7、JDK1.8、Oracle11g、Schema WorkBench-3.14.0

 

同样是在Mondrian的官网上下载,然后直接解压缩就行。配置好JDK和环境变量

进入到文件夹中点击workbench.bat 打开程序。

点击最右侧的按钮新建一个数据库连接

 

 

然后输入连接的名称,主机名称,数据库名称,用户名,密码等信息。

 

 

 

 

 

 

点击测试,测试连接是否成功。

 

 

 

发现连接报错,是因为没有找到Oracle数据库的驱动包。同样是可以在其他项目中复制也可以去Oracle官网上下载这个jar包放到lib文件夹下,然后重新启动即可。

 

 

 

 

 

 

 

2.2  新建一个Schema文件

SchemaàCubeà Dimension(维度)à Hierarchies(层次)àLevel(jibie)à 度量(Measure)

点击最左侧的按钮会出来三个选项,点Schema 会新建一个Schema文件

 

 

 

然后给这个Schema取名为tse

 

 

 

 

点击保存,存在自己想要放的位置。

 

同时注意要将文件名改为tse.xml

 

 

 

 

 

 

再新建一个Cube,一个Cube是一系列维度(Dimension)和度量(Measure)的集合区域。在Cube中,Dimension和Measure的共同地方就是共用一个事实表。(在示例中为Sale)

 

 可以直接点击左侧第一个带+号的按钮直接新建

 

 

 也可以右键Schema点击Add cube

 

 

给这个Cube取名为Sales

 

 

 

在Cube节点上点击右键,增加事实表,选择相应的事实表Sale

 

 

 

 

点击工具栏最右侧编辑模式按钮可以切换查看对应的生成的XML文件。

 

 

 

 

2.3 增加维度

维度是一个层次( Hierarchies )的集合 , 维度一般有其相对应的维度表 . 他的组成是由层次( Hierarchies )而层次( Hierarchies )又是有级别( Level )组成 。

 

在cube上右键增加维度(Add Dimension),并命名sex保存。需要选择foreignKey,即在事实表中用于引用customer表的外键。

 

 

 

    

增加客户(性别)维度

 

 

 

增加对应的层次

 

点开sex维度里面会有一个默认的层次(Hierarchies) 我们可以直接在上面直接进行修改,或者是点击sex维度右键新增

 

 

 

 

修改层次属性

 修改的层次属性的名称可以为空(当一个维度有多个层次的话,要注意name的值要唯一),同时修改allMenberName(所有成员的名字,也就是总的标题,例如:所有客户,所有商品等。),allMemberCaption(是在表示层显示的名称)以及primaryKey字段的值(维表的主键)

 

 

 

 

增加维表   

  在刚才建好的层次下,鼠标右键新建一个维表 customer

 

 

 

 

增加级别

  级别 , 他是组成 Hierarchy 的部分。属性很多,并且是 schema 编写的关键,使用它可以构成一个结构树, Level 的先后顺序决定了 Level 在这棵树上的的位置,最顶层的 Level 位于树的第一级,依次类推

 

点击层次,右键Add Level

 

 

 

 

 

Level 的名称就是相应的列名称(此时为gender)

 

 

 

增加产品维度

 

因为维由两个表连接而成,相对于客户维有点复杂。先在Sales(Cube)上新建一个维度。输入名称和事实表中关联外键。

 

 

 

 

修改默认添加的层次信息 需要在层次节点上增加join,两个表分别为Product(产品表)和ProductType(产品类别表).所以需要在层次信息的primaryKeyTable属性中指明主表。

 

 

 

 

 

点开join 填好左右表信息及主表信息

 

 

 

 

 

 

 

增加Product级别

 

 在维度节点上右键增加级别,填写相应属性值,级别对应的表,列、以及显示列的值、是否唯一。

 

 

 

 

增加PRODUCTTYPE级别

 

与上面步骤一样

 

 

2.4 添加度量

Measure(度量)是我们要计算的数值,操作的核心内容

 

增加销售数量度量

 

 在cube上右键添加度量,输入字段、数据类型、计算公式。

 

 

 

 

增加总销售额度量

 

 销售额是(unitPrice*number)表达式计算出来的不能简单设置某个列,需要在该度量上右键添加表达式

 

 

 

添加表达式

 

 

 

 

在generic中写Value

 

 

 

 

2.5添加计算成员类型度量

在cube上右键添加计算度量(CalculatedMember),默认增加了公式

 

 

 

 

 

编辑公式内容

 

 

添加 计算成员类型

 

 

 

2.6 添加MDX语句,测试模式文件

选择file 再选择MDX QUERY即可创建查询对话框、载入对应的Schema文件,输入如下语句,点击执行测试,没有错误显示结果。

select

  {[Measures].[quan1], [Measures].[avgsell], [Measures].[totalsell]}

on columns,

  {([good].[allgood], [sex].[allsex])}

on rows

from Sales

 

 

posted on 2017-07-19 11:24  风行__雄关漫道  阅读(1010)  评论(0编辑  收藏  举报