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
|
标题,用来显示时使用。
|
分享到:
相关推荐
Mondrian Schema 多维分析属性详解 Mondrian Schema 是一种多维数据库 schema,用于定义多维分析模型。该模型由多个概念组成,包括 Cube、Dimension、Hierarchy、Level 和 Member。 Cube 是多维分析模型的基本组成...
Mondrian_Schema(多维分析)属性详解
《Jpivot 汇总与 Mondrian Schema 详解》 Jpivot 是一款强大的开源工具,它允许用户在Web环境中以灵活的方式浏览和分析多维数据。集成Jpivot到你的应用程序中,首先需要将`jpivot.war`文件解压,并将 `/wcf/`, `/...
#### 四、Mondrian Schema详解 **Schema** 定义了一个多维数据库,包含了逻辑模型,以便编写MDX语言的查询语句。它包括以下概念: - **Cube**:一组维度和度量的集合,共同指向同一个事实表。 - 属性: - `name`...
3. Mondrian Schema详解 3.1. Schema Schema 定义了一个多维数据库。包含了一个逻辑模型,而这个逻辑模型的目的是为了书写 MDX 语言的查询语句。这个逻辑模型实际上提供了这几个概念: Cubes (立方体)、维度( ...
Mondrian开源OLAP引擎详解 Mondrian 是一个基于 Java 语言的开源 OLAP 引擎,它通过 MDX 语句执行查询,从关系型数据库 RDBMS 中读取数据,然后经过 Java API 以多维度的形式展示查询结果。Mondrian 是一个 Open...
### Mondrian介绍及配置知识点详解 #### 一、Mondrian概述 **Mondrian** 是一款用 Java 编写的开源 OLAP (Online Analytical Processing) 引擎,支持 MDX (Multidimensional Expressions) 查询语言。它可以将来自...
#### 配置文件详解 Mondrian的核心配置文件是以XML形式存储的,用于描述数据模型结构。以下是对给定示例文件的详细解析: ##### Schema标签 `<Schema>`标签是配置文件的顶层元素,用于定义一个或多个Cube。每个`...
**Schema-Workbench工具详解** Schema-Workbench是一款基于Mondrian的数据模型设计工具,它为多维数据集(OLAP)提供了强大的设计和管理功能。在深入理解Schema-Workbench之前,我们先来了解Mondrian。Mondrian是一...
【 Mondrian 入门知识详解】 Mondrian 是一个开源的在线分析处理(OLAP)引擎,用 Java 编写,能够使用多维数据表达式(MDX)语言从关系数据库中提取并处理数据。它的设计使得它能方便地与现有的Web项目集成,类似于...
#### 二、Schema配置详解 Schema配置是mondrian和saiku建模的核心之一,主要包含五个方面: 1. **Table配置**:定义事实表及其聚合表的结构。 2. **Dimension配置**:定义维度信息。 3. **Measure配置**:定义度量...
### Pentaho BI Server 配置知识点详解 #### 1. 使用 MySQL 作为 Pentaho 默认数据库 **1.1 创建数据库** - **SQL 脚本**:为了将 MySQL 设置为 Pentaho 的默认数据库,需要执行特定的 SQL 脚本来创建必要的表...