使用Schema Workbench 设计一个模型文件

设计一个模型文件的基本步骤如下:

  1. 新建数据库连接。

  2. 新建立方体,添加事实表。事实表是整个立方体的核心,它包含了用户定义度量的字段和所有维度的外键。为了提高查询效率在事实表中添加聚集表。

  3. 新建维度,选择外键和类型。维度的类型有两种:标准维度(StandardDimension)和时间维度(TimeDimension),默认为标准维度。

  4. 添加维度表:一个维度表对应一个层次,维度表的主键必须是事实表的外键。

  5. 添加级别:级别的数据库表默认的是维度表,也可另外指定。级别的值对应于该表中的某一列。

  6. 添加度量,度量是用户重点关注的业务数据,与事实表中的某一列对应。mondrian提供了几个默认的度量计算函数,比如求和,最大值等,也可自定义计算函数。

下面具体演示了一个简单的OLAP模型的设计过程::

  1. 建立数据库连接:打开多维模型设计器,单击【选项】->【连接】,如下图所示:

    图 1-21 连接菜单

    弹出“数据库连接”窗口,配置相关属性项,单击【测试】按钮,弹出对话框,提示“正确连接到数据库…”,则数据库连接设置成功,如下图所示:

    图 1-22 配置界面

  2. 新建模型:单击【文件】->【新建模型文件】->【模型】,如下图所示:

  3. 图 1-23 新建模型菜单

    图 1-24 新建模型界面

    模型的各项属性设置及其含义如下表所示:

    表 1-1 模型体属性设置表格

    属性名称含义
    名称模型的名字
    描述对模型的说明
    度量反应的情况该模型关注的业务数据,比如:销售量,销售额等等
    默认的可访问角色默认可访问该模型的角色
  4. 1. 新建立方体:选中模型,单击右键,选中【添加立方体】,如下图所示:


    图 1-25 新建立方体

    或者点击工具栏上的立方体图标


    图 1-26 立方体图标

    都可以添加新的立方体,如下图所示:


    图 1-27 立方体界面

    表 1-2 立方体属性设置表格

    属性名称含义
    名称立方体的名字
    描述对立方体的说明
    标题标题,在表示层中显示
    存储事实表是否对立方体的事实表用mondrian进行存储,默认为true
    自动激活如果为true,立方体就执行,否则就不予理睬,默认为true
  5. 2. 添加事实表:选中立方体,单击右键,选中【添加表】,如下图所示:


    图 1-28 添加事实表菜单


    图 1-29 事实表界面

    事实表属性设置及其含义如下表:

    表 1-3 事实表属性设置表格

    属性名称含义
    名称事实表的名字
    描述对事实表的说明
    别名选中的数据库表的别名
  6. 添加维度:选中立方体,单击右键,选中【添加维度】,如下图所示:


    图 1-30 添加维度菜单

    或者点击工具栏上的添加维度


    图 1-31 添加维度图标

    其中外键是事实表的外键。新添加的维度是一个时间维度,将名称设为Time。 【类型】必须选择为【TimeDimension】。如果不是时间维度则选择【StandardDimension】,如下图所示:


    图 1-32 添加维度

    维度的设置属性及其含义,如下表所示:

    表 1-4 维度属性设置表格

    属性名称含义
    名称维度名称
    描述对维度的额外叙述
    外键事实表中该维度的外键
    类型有两种类型,一种是标准维度,一种是时间维度,默认是标准维度
    前缀用于消除歧义
    标题标题
  7. 4. 添加维度表:选中维度中的层次,单击右键,选中【添加表】,如下图所示


    图 1-33 添加维度表菜单

    在右侧的【名称】的下拉框中 选择表"d_data",该表的主键对应维度中所选的外键,如下图所示:


    图 1-34 维度表界面

    维度表属性设置及其含义如下表:

    表 1-5 维度表属性设置表格

    属性名称含义
    模式数据库的模式
    名称数据库表的表名
    别名选中的数据库表的别名
  8. 5. 设置层次:最简单的方法为,删掉系统自动生成的层次名,选择【主键】,该主键是维度表的主键,如下图所示:


    图 1-35 层次

    层次的各项设置属性的含义,如下表:

    表 1-6 维度属性设置表格

    属性名称含义
    名称层次名称
    描述层次描述
    是否包含全部成员布尔型,决定是否包含全部成员
    所有成员名所有成员的名字
    总标题在表示层显示的内容
    所有级别名称所有级别名称,会覆盖其下所有成员的名称和级别的名称属性的值
    默认成员用来覆盖层次中默认的成员
    成员读取器默认情况下,层次都是从关系型数据库里读取的,如果数据部在RDBMS里的话可以自定义一个成员读取器来实现
    主表成员表不只一个的时候,包含了所有的表的外键的表
    主键表的主键,与事实表中的外键相对应
    标题标题
  9. 添加级别:选中层级,单击右键,选中【添加级别】,如下图所示:


    图 1-36 添加级别菜单

    或者点击工具栏上添加级别图标


    图 1-37

    添加新的级别,如下图所示:


    图 1-38 添加级别

    级别的各项属性的设置及其含义如下表:

    表 1-7 级别属性设置表格

    属性名称含义
    名称级别名称
    描述级别描述
    数据库表该级别使用的数据库表表名,必须与层次中定义的数据库表相同
    值列列名该级别的关键字
    名称列用于在查询结果中显示内容的列,如果不定义就显示值列列名
    父列在具有父子关系的立方体中定义的父列名称
    顶级父成员的值在一个由父子关系的层次中,当前级别处于顶级,我们需要将顶级的数据取出来,这里只得是位于顶级的父成员的值,有些数据库
    排序列定义该级别上的成员显示顺序,如果不指定就采用值列的值
    数据类型数据类型,下拉菜单中有可选的类型。
    成员唯一该属性用于优化产生的SQL,如果你知道这个恶级别和其父级别交叉后的值或者是维度表中给定的级别所有的值是唯一的,那么久可以设置该值为true,否则为false,在顶层的级别中,一直都应该设置为true,因为这里没有父级别。
    级别类型级别类型,默认为regular(正常),只用于标准维度。如果维度定义的是时间维度,则需要选择其他类型。
    是否隐藏成员什么时候隐藏成员
    可能的行数该属性可以用来提高性能,可以通过指定一个数值以减少判断级别,层次,维度技术的时间,该属性在通过使用XMLA连接mondrian很有用
    标题标题
    标题列表中用来显示标题的列
    标题格式对标题进行格式化

    按同样的方式建立另外一个级别“经销商”如下图所示:


    图 1-39 添加“经销商”级别

    注:如果维度表只有一张,则可以不选择【数据库表】,否则需要指定。

  10. 7. 添加度量,选中立方体,单击右键,选中【添加度量】,如下图所示:


    图 1-40 添加度量菜单

    或者点击工具栏上的添加度量图标


    图 1-41 添加度量图标

    加度量,如下图所示:


    图 1-42 添加度量

    度量的各项属性设置及其含义如下表:

    表 1-8 度量属性设置表格

    属性名称含义
    名称度量的名称。
    描述对该度量的描述。
    计算函数一般包括”sum”,”count”,”mix”,”max”,”avg”,”distinct count”,”distinct-count”.其中“distinct-count”只能定义在具有父子层次关系的立方体中。
    值列列名是事实表中的一列,其值用于计算函数计算对应的度量值
    输出结果的格式定义在输出端打印出结果的格式,例如 ###,##.00
    是否可见默认为ture 其值对MDX查询没有影响
    数据类型/entry>结果在mondrian 缓存中存储的数据类型
    标题格式标题格式
    标题标题
  11. 以同样的方式在立方体外添加另外一个共享维度“市场”,如下所示:

    a)添加“市场”维度


    图 1-43 添加“市场”维度

    b)添加维度表“CUSTOMER_W_TER”


    图 1-44 添加“市场”的维度表

    c)设置层次


    图 1-45 设置层次

    d)添加级别“地区”


    图 1-46 添加级别“地区”

    e)添加级别“国家”


    图 1-47 添加级别“国家”

  12. 添加维度引用:添加维度引用之前需要先确保已生成了共享维度。共享维度不属于任何 立方体的维度,他的父节点是模型文件。而且维度引用的名称要与共享维度的名称一致,如下图所示:


    图 1-48 添加维度引用

    维度引用设置属性及其含义如下表所示:

    表 1-9 维度属性设置表格

    属性名称含义
    名称引用维度名称
    外键引用维度外键
    共享维度该选项的值必须是已经定义了的共享维度,名称要一致
    级别需引用的在该共享维度中的级别
    前缀引用维度前缀
    标题标题
  13. 保存模型,单击【文件】->【新建】->【MDX查询】,输入MDX语句,验证模型文件是否设计正确,如下图所示:


    图 1-49 验证MDX查询

    如果能显示正确的结果,则表示模型文件的设计是正确的。MDX查询语句要根据具体的数据库来定,示例查询语句:


    图 1-50 MDX查询实例语句


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海宁小马

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值