mondrianschemaworkbench概念及常用参数

bruce_h21 bruce_h21     2023-03-09     723

关键词:

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

标题,用来显示时使用。

概念:名与实

概念的名称是人类联系意识与实体的桥梁;通常一个概念的名字能够反映这个概念的大概含义。比如“概念”:从字面意思来看,“概”是大略、总括的意思;念:心中的打算,想法,看法;“市盈率”:市值、盈利、比较;&nb... 查看详情

产品开发-概念测试

概念测试对象:目标市场潜在顾客目的:(1)得到公司可以卖出多少单位产品的一个估值;(该结果后续会应用到产品经济分析中)(2)可供选择的概念中哪些可以继续进行;(3)针对选择的概念研发是否有必要继续进行;(... 查看详情

基本概念

1.基本概念:训练集,测试集,特征值,监督学习,非监督学习,半监督学习,分类,回归 2.概念学习:人类学习概念:鸟,车,计算机   定义:概念学习是指从有关某个布尔函数的输入输出训练样例中推断出该... 查看详情

逻辑基础知识逻辑的含义

...研究思维的形式及其规律的科学。要研究逻辑,首先要从概念出发。概念是思维形式最基本的组成单位,是构成命题、推理的要素。以下是由我整理关于逻辑知识的内容,希望大家喜欢!  逻辑的概念  概念有两个基本的逻... 查看详情

概念间的关系

?概念是人们反映客观事物本质属性的一种思维形式,客观事物之间存在着各种各样的联系,因而概念之间的关系也是各种各样的。普通逻辑不研究概念之间的一切关系,只研究两个概念的外延之间的关系。根据概念外延之间是... 查看详情

0.线程之概念

一、概念  程序:指令集静态概念 prograss  进程:操作系统调动程序动态概念process (cpu、data、code代码区)  线程:进程内多条执行路径Thread  二、区别  查看详情

进程的概念

...程(第4版)》第三章。本文主要讲解如何引出进程这个概念。现代操作系统的重要特点是在保证安全的前提下,程序并发执行,系统所拥有的资源被共享和系统的用户随机使用。采用一个什么样的概念来描述计算程序的执行过... 查看详情

数据库概念结构设计

概念结构设计将需求分析得到的用户需求抽象成信息世界的概念结构模型的过程。概念结构是各种数据模型的基础,它比数据模型更独立于机器,更加抽象更加稳定。概念结构设计是数据库设计的关键。一般用ER图来描述... 查看详情

docker的基本概念

Docker的基本概念 查看详情

概念理论与模型

...复杂性挑战。我们去理解现实世界的物体或思想都离不开概念、理论和模型。概念概念是一种抽象化的强大工具,它是我们人类在认知过程中产生的一种概括表达。概念可以帮助我们对现实世界中的复杂事物进行抽象定义,将事... 查看详情

概念与接口有何不同?

】概念与接口有何不同?【英文标题】:HowdoConceptsdifferfromInterfaces?【发布时间】:2009-07-2522:14:44【问题描述】:概念(即最近从C++0x标准中删除的概念)与Java等语言中的接口有何不同?【问题讨论】:C++没有任何称为接口的东... 查看详情

springsecurity应用开发(14)重要概念之授权相关概念

 1.1.1. SecureObjectSecureObject指的是一个MethodInvovation或者一个URL资源。 1.1.2. GrantedAuthorityGrantedAuthority用于表达指定的用户获得的权限(即角色名称)。publicinterfaceGrantedAuthorityextendsSerializable{//返回 查看详情

hadoop功能组件入门

目录Hadoop框架概念基础架构三大核心组件HDFS(HadoopDistributeFileSystem)概念:数据存储模型BlockHDFS架构概括设计思想应用场景角色说明工作机制优缺点YARN概念:MapReduce1的局限思想基础架构工作流程优点MapReduce概念&#... 查看详情

微前端概念

文章目录微前端概念概念微前端的核心价值微前端的实现演变相关框架Qiankun相关框架Webpack5的ModuleFederation相关框架Piral微前端概念概念微前端是一种多个团队通过独立发布功能的方式来共同构建现代化web应用的技术手段及方法策... 查看详情

javaweb的基本概念

概念一直是学习计算机软件开发中经常遇到的问题,也是软件行业最喜欢创造的东西。很多时候,学习计算机软件开发遇到困难都是因为对某些概念的不理解,而不是因为技术本身有多么复杂。JavaWeb作为JavaEE技术体系的一部分... 查看详情

windowsserver2016-activedirectory复制概念

...ectory系列更新,本章为大家介绍有关ActiveDirectory复制相关概念内容,有关Active Directory概念性内容不管是老版本2000还是2016基础概念还是一致的,本章概念介绍中以Windows2000 Active Directory为例介绍,有关Wind 查看详情

powerdesigner教程——概念数据模型(转)

一、概念数据模型概述   概念数据模型也称信息模型,它以实体-联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计。  &n... 查看详情

aop相关概念和

 2、AOP相关概念      查看详情