https://mondrian.pentaho.com/documentation/schema.php
v3版本编写指南
1 什么是schema
模式schema定义了一个多维数据库。组成的多维数据集,它包含一个逻辑模型层次结构,和成员,这个模型的一个映射到物理模型。简单言之,数据库表是物理模型,schema是逻辑模型,使用mdx表达的是逻辑表达,映射导数据库表,需要一个参照,这个参照就是这里的schema。
2 模式文件
创建mondrian schema可以在文本编辑器中编辑xml文件,或者使用pantaho workbench,该开源作者提供的一块javagui工具。Xml语法框架如下:
<Schema> <Cube> 维度和测度的集合,都集中在一个事实表。 <Table> <AggName> aggElements <AggPattern> aggElements <Dimension> <Hierarchy> relation <Closure/> <Level> <KeyExpression> <SQL/> <NameExpression> <SQL/> <CaptionExpression> <SQL/> <OrdinalExpression> <SQL/> <ParentExpression> <SQL/> <Property> <PropertyExpression> <SQL/> <DimensionUsage> 使用一个共享维度的多维数据集。 <Measure> <MeasureExpression> <SQL/> <CalculatedMemberProperty/> <CalculatedMember> <Formula/> <CalculatedMemberProperty/> <NamedSet> <Formula/> <VirtualCube> <CubeUsages> <CubeUsage> <VirtualCubeDimension> <VirtualCubeMeasure> <Role> <SchemaGrant> <CubeGrant> <DimensionGrant> <HierarchyGrant> <MemberGrant/> <Union> <RoleUsage/> <UserDefinedFunction/> <Parameter/>
relation ::= <Table> <SQL/> <View> <SQL/> <InlineTable> <ColumnDefs> <ColumnDef> <Rows> <Row> <Value> <Join> Relation aggElement ::= 聚合关系 <AggExclude> <AggFactCount> <AggIgnoreColumn> <AggForeignKey> <AggMeasure> <AggLevel> |
2.1 Annotations可选
主要的元素,如schema,cube, virtual cube, shared dimension, dimension, hierarchy, level, measure,calculated member均支持注释,使用时注意标签别冲突即可,用法如下:
<Schema name="Rock Sales">
<Annotations>
<Annotation name="Author">FredFlintstone</Annotation>
<Annotation name="Date">10,000 BC</Annotation>
</Annotations>
<Cube name="Sales">
…
3 逻辑模型
逻辑模型最重要的组建标签: cubes多维度数据集, measures度量, dimensions维度。
1) 一个多维数据集是维度和测度的集合在一个特定的主题领域。
2) 一个测量是你感兴趣的测量量,例如,产品的销量,或库存商品的成本价格。
3) 一个维是一个属性,或一组属性,甚至度量也可能是维度。例如,您可能希望打破产品销售的颜色,客户的性别和存储产品销售;颜色、性别和商店都是维度。
...有空再整理吧