Mondrian Schema介绍及简单配置示例
Mondrian是一个OLAP分析的引擎,主要工作是根据事先配置好的schema,将输入的多维分析语句MDX(Multidimensional Expressions )翻译成目标数据库/数据引擎的执行语言(比如SQL)。
1 Schema文档结构介绍
Schema
一个模式文件定义了一个多维数据库。模式中包含了一个逻辑模型,逻辑模型
由数据立方Cube,层次Hierarchies,成员members,以及一个将逻辑模型与物理模型(数据源)映射组成。
Cube
一个逻辑模型内可以有多个Cube,一个Cube则是一系列维度Dimension
和度量Measure
组成,当前Cube内所有度量和未声明所用表的维度都公用一个事实表。可以在Cube内使用Table标签声明该公用事实表。
<Schema>
<Cube>
<Table />
<Dimension></Dimension>
......
<Measure />
......
</Cube>
</Schema>
属性名 | 含义 |
---|---|
name | Cube 的名字 |
caption | 标题 , 在表示层显示的 |
cache | 是否对 Cube 对应的实表用 mondrian 进行存储 , 默认为 true |
enabled | 是布尔型的 , 如果是被激活 ,Cubes 就执行 , 否则就不予理睬,默认为 true |
Dimension
维度是一系列层次Hierarchies
的集合,维度一般情况下使用的当前Cube所公用的事实表,不过维度可以声明其相对应的维度表。
属性名 | 含义 |
---|---|
name | Dimension 的名称 |
type | 类型,有两个可选的类型: StandarDimension 和 TimeDimension ,默认为 StandardDimension |
caption | 标题 , 在表示层显示的 |
UsagePrefix | 加前缀 , 消除歧义 |
foreignKey | 外键,对应事实表中的一个列,它通过 元素中的主键属性连接起来 |
Hierarchies
由一系列Levels组成,可以使用Table配合维度声明当前维度表,若没有特别指定,则默认该Hierarchies使用的是Cube的公用事实表。
<Dimension visible="true" name="kkkk" foreignKey="XXX001">
<Hierarchy primaryKey="XXX001" hasAll="true" name="aaaaa">
<Table name="XXX" />
<Level name="kkkk" visible="true" column="bbb002num" nameColumn='bbb002name' orderByColumn='bbb002num' type="String"/>
&