`
jacky6024
  • 浏览: 81114 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Mondrian Schema详解

阅读更多

Schema

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

Cube

一个 Cube 是一系列维度 (Dimension) 和度量 (Measure) 的集合区域。在 Cube 中, Dimension Measure 的共同地方就是共用一个事实表。 Cube 中的有以下几个属性:

属性名

含义

name

Cube 的名字

caption

标题 , 在表示层显示的

cache

是否对 Cube 对应的实表用 mondrian 进行存储 , 默认为 true

enabled

是布尔型的 , 如果是被激活 ,Cubes 就执行 , 否则就不予理睬,默认为 true

Cube 里面有一个全局的标签定义了所用的事实表的表名

Dimension

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

属性名

含义

name

Dimension 的名称

type

类型,有两个可选的类型: StandarDimension TimeDimension ,默认为 StandardDimension

caption

标题 , 在表示层显示的

UsagePrefix

加前缀 , 消除歧义

foreignKey

外键,对应事实表中的一个列,它通过 <Hierarchy> 元素中的主键属性连接起来。

Hierarchy

你一定要指定其中的各种关系 , 如果没有指定 , 就默认 Hierarchy 里面装的是来自立方体中的真实表 . 属性如下:

属性名

含义

name

Hierarchy 的名称,该值可以为空,为空时表示 Hirearchy 的名字和 Dimension 的名字相同。当一个 Dimension 有多个 Hierarchy 时,注意 name 值要唯一。

hasAll

布尔型的 , 决定是否包含全部的成员 member

allMemberName

所有成员的名字 , 也就是总的标题 , 例如: allMemberName= “全部产品”

allLevelName

所有级别的名字,它会覆盖其下所有的 Member name 和所有的 Level name 属性的值。

allMemberCaption

例如 : allMemberCaption= “全部产品”这个是在表示层显示的内容

PrimaryKey

通过主键来确定成员,该主键指的是成员表中的主键,该主键同时要与 Dimension 里设置的 foreignKey 属性对应的字段形成外键对应关系

primaryKeyTable

如果成员表不只一个,而是多个表通过 join 关系形成的,那么就要通过这个属性来指明 join 的这些表中,哪一个与 Dimension 里设置的 foreignKey 属性形成外键关系。通过该属性来指明主表

caption

标题 , 在表示层显示的

defaultMember

 

memberReaderClass

设定一个成员读取器,默认情况下 Hierarchy 都是从关系型数据库里读取的,如果你的数据不在 RDBMS 里面的话,你可以通过自定义一个 member reader 来表现一个 Hierarchy

Level

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

属性名

含义

name

名称

table

Level 要使用的表名

column

用上面指定的表中某一列作为该 Level 的关键字

nameColumn

用来显示的时候使用,如果不定义,那么就采用上面的 column 的值来进行显示。

oridinalColumn

定义该 Level 上的成员的显示顺序,如果不指定,那么采用 column 的值。

parentColumn

在一个有父 - 子关系的 Hierarchy 当中,当前 Level 引用的是其父成员的列名。好比是一张部门表,在一张表里表现部门的上下级关系,一个是主键,肯定还有一个字段为连接到该主键的外键的列名,这里的 parentColumn 指的就是这个列名。

nullParentValue

如果当前的 Level 是有上下级关系(设置了 parentColumn 属性),如果该 Level 又处于顶级,我们需要将顶级的数据取出来,这里指的是位于顶级的父成员的值,有些数据库不支持 null, 那么也可以使用 ’0’ ’-1’ 等,这就表示顶级的成员的父 ID ’0’ 或为 ’-1’

type

数据类型,默认值为 string 。当然还可以是 Numeric Integer Boolean Date 等。

uniqueMembers

该属性用于优化产生的 SQL ,如果你知道这个级别和其父级别交叉后的值或者是维度表中给定的级别所有的值是唯一的,那么就可以设置该值为 true ,否则为 false

levelType

Level 的类型,默认为 regular (正常的),如果你在其 Dimension 属性 type 里选择了 TimeDimension 那么这里就可以选择 TimeYears TimeQuarters TimeMonth TimeWeeds TimeDays

hideMemberIf

在什么时候不隐藏该成员,可选的值有三个: Never IfBlankName IfParentName

approxRowCount

该属性可以用来提高性能,可以通过指定一个数值以减少判断级别、层次、维度基数的时间,该属性在通过使用 XMLA 连接 Mondrian 很有用处。

caption

标题 , 在表示层显示的

captionColumn

用来显示标题的列

formatter

该属性定义了 Member.getCaption() 方法返回的动作值,这里需要是一个实现了 mondrian.olap.MemberFormatter 接口的类,用来对 Caption 地值进行格式化。

Join

对于一个 Hierarchy 来说,有两种方式为其指定:一种是直接通过一个 Table 标签指定;一种是通过 Join 将若干张表连接起来指定。一旦采用 Join 的话,那么就要在 Hierarchy 里的 primaryKeyTable 属性指定主表。

Measure

Measure 就是我们要计算的数值,操作的核心。它的属性如下:

属性名

含义

name

名称

aggregator

要采用的计算函数

column

要计算的列名

formatString

计算结果的显示格式。

visible

是否可见

datatype

数据类型,默认为 Numeric

formatter

采用类来对该 Measure 的值进行格式,具体参考 Level formatter 属性。

caption

标题,用来显示时使用。

 

分享到:
评论
2 楼 jacky6024 2009-06-22  
看这个的前提是需要您有一定的OLAP基础,并且了解一点Mondrian的scheam的编写知识才行。
1 楼 xiawuchalyj 2009-06-22  
看得很糊涂

相关推荐

    Mondrian_Schema(多维分析)属性详解[定义].pdf

    Mondrian Schema 多维分析属性详解 Mondrian Schema 是一种多维数据库 schema,用于定义多维分析模型。该模型由多个概念组成,包括 Cube、Dimension、Hierarchy、Level 和 Member。 Cube 是多维分析模型的基本组成...

    Mondrian_Schema(多维分析)属性详解

    Mondrian_Schema(多维分析)属性详解

    jpivot汇总.doc

    《Jpivot 汇总与 Mondrian Schema 详解》 Jpivot 是一款强大的开源工具,它允许用户在Web环境中以灵活的方式浏览和分析多维数据。集成Jpivot到你的应用程序中,首先需要将`jpivot.war`文件解压,并将 `/wcf/`, `/...

    jpivot教程

    #### 四、Mondrian Schema详解 **Schema** 定义了一个多维数据库,包含了逻辑模型,以便编写MDX语言的查询语句。它包括以下概念: - **Cube**:一组维度和度量的集合,共同指向同一个事实表。 - 属性: - `name`...

    jpivot学习总结.doc

    3. Mondrian Schema详解 3.1. Schema Schema 定义了一个多维数据库。包含了一个逻辑模型,而这个逻辑模型的目的是为了书写 MDX 语言的查询语句。这个逻辑模型实际上提供了这几个概念: Cubes (立方体)、维度( ...

    Mondrian开源OLAP引擎详解.docx

    Mondrian开源OLAP引擎详解 Mondrian 是一个基于 Java 语言的开源 OLAP 引擎,它通过 MDX 语句执行查询,从关系型数据库 RDBMS 中读取数据,然后经过 Java API 以多维度的形式展示查询结果。Mondrian 是一个 Open...

    Mondrian介绍及配置.pdf

    ### Mondrian介绍及配置知识点详解 #### 一、Mondrian概述 **Mondrian** 是一款用 Java 编写的开源 OLAP (Online Analytical Processing) 引擎,支持 MDX (Multidimensional Expressions) 查询语言。它可以将来自...

    mondrian报表技术概要

    #### 配置文件详解 Mondrian的核心配置文件是以XML形式存储的,用于描述数据模型结构。以下是对给定示例文件的详细解析: ##### Schema标签 `&lt;Schema&gt;`标签是配置文件的顶层元素,用于定义一个或多个Cube。每个`...

    Schema-workbench

    **Schema-Workbench工具详解** Schema-Workbench是一款基于Mondrian的数据模型设计工具,它为多维数据集(OLAP)提供了强大的设计和管理功能。在深入理解Schema-Workbench之前,我们先来了解Mondrian。Mondrian是一...

    mondrian的入门例子

    【 Mondrian 入门知识详解】 Mondrian 是一个开源的在线分析处理(OLAP)引擎,用 Java 编写,能够使用多维数据表达式(MDX)语言从关系数据库中提取并处理数据。它的设计使得它能方便地与现有的Web项目集成,类似于...

    mondrian和saiku的数据库建模的指导文档,里面有具体步骤。

    #### 二、Schema配置详解 Schema配置是mondrian和saiku建模的核心之一,主要包含五个方面: 1. **Table配置**:定义事实表及其聚合表的结构。 2. **Dimension配置**:定义维度信息。 3. **Measure配置**:定义度量...

    Pentaho_bi_server配置手册

    ### Pentaho BI Server 配置知识点详解 #### 1. 使用 MySQL 作为 Pentaho 默认数据库 **1.1 创建数据库** - **SQL 脚本**:为了将 MySQL 设置为 Pentaho 的默认数据库,需要执行特定的 SQL 脚本来创建必要的表...

Global site tag (gtag.js) - Google Analytics