页面树结构
转至元数据结尾
转至元数据起始


2.1 数据准备

2.1.1 表结构

1、时间维表

主要字段

表名:time_by_day

字段名称

描述

其他

Time_id

时间ID

主键

The_date

日期


The_month

月份


quarter

季度


The_year

年份




2、部门维表

主要字段

表名: department

字段名称

描述

其他

department_id

部门ID

主键

department_description

部门名称



3、雇员表

主要字段

表名: employee

字段名称

描述

其他

employee_id

雇员ID

主键

full_name

雇员名称


supervisor_id

父ID




4、事实表

主要字段

表名: salary

字段名称

描述

其他

Pay_date

时间ID

外键

employee_id

雇员ID

外键

Department_id

部门ID

外键

salary_paid

薪水




2.1.2 表关系视图


2.2 Cube制作

下面的操作将创建包含一个时间维、一个商品维和一个度量的cube模型。

1、将事实表的数据源的jdbc驱动放到schema-workbench\drivers下

2、打开mondrain设计器(workbench),设置好相关信息,测试连接数据源,并保存


3、新建Schema


4、右键Schema节点,点击"add cube",设置cube名称



5、右键点击"Add Table"添加"事实表",并选择"salary"表



6、右键点击"Add Dimension"添加时间维,设置名称、指定事实表外键(时间外键pad_date)和维度类型,时间维必须指定为"TimeDimension"



7、修改Hierarchy的名称


8、右键添加维表,并选择维表time_by_day



9、设置Hierarchy的主键为时间维表的主键the_date。


10、右键新建层次,设置名称为"年",column为"the_year",namecolumn为"the_year",levelType必须设置为"TimeYears"



11、同理,建"季"和"月"两个层次,并设置相关名称、column和namecolumn,levelType分别为"TimeQuarters"和"TimeMonths"


12、同理新建"部门维",部门为普通维度,type为"StandardDimension"


13、同理,新建商店维的层次,并做好与维表的字段对应设置


14、同理新建"雇员维",雇员为父子维度,type为"StandardDimension"


15、添加雇员维表


16、新建雇员层次,雇员是父子维,只有一个level,设置colunm、namecolumn、parentcolumn和nullparentvalue。

这里parentColumn 和nullParentValue是重要的属性: 属性parentColumn 是一个成员连接到它父亲成员的列名。在这种情况下, 它是指向雇员经理的外键。元素<Level>的子元素 <ParentExpression> 是与属性 parentColumn 有相同作用的,但是元素允许定义任意的SQL表达式, 就像元素 <Expression>. 属性 parentColumn (或者元素<ParentExpression>) 是维一向Mondrian指出层次有父子结构的。 属性 nullParentValue 是指明成员没有父成员的值 。 缺省情况下 nullParentValue="null", 但是因为许多数据库不支持null, 建模时 用其他值来代替空值,0和-1.


17、右键点击"Add Measure"新建度量


18、设置度量名称、对应事实表的字段、聚合规则


19、保存cube模型


20、保存成功后,用文本编辑器打开该xml文件,加入xml头<?xml version="1.0" encoding="UTF-8" ?>


2.3 上传cube模型

1、打开IE,在地址栏中输入地址:http://localhost:8080/mondrian/manager/

2、输入名称、描述、jdbc驱动字符串、jdbcurl地址、数据库的用户密码和选择cube模型文件。以本文档中mysql为例:

jdbc驱动字符串:

com.mysql.jdbc.Driver

URL地址:

jdbc:mysql://localhost:6688/foodmartcn?useUnicode=true&characterEncoding=GBK 



3、点击"新建",完成cube模型上传



  

  • 无标签