mondrian的基本模式(java olap server)

上传人:cn****1 文档编号:590705092 上传时间:2024-09-15 格式:PPT 页数:30 大小:166KB
返回 下载 相关 举报
mondrian的基本模式(java olap server)_第1页
第1页 / 共30页
mondrian的基本模式(java olap server)_第2页
第2页 / 共30页
mondrian的基本模式(java olap server)_第3页
第3页 / 共30页
mondrian的基本模式(java olap server)_第4页
第4页 / 共30页
mondrian的基本模式(java olap server)_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《mondrian的基本模式(java olap server)》由会员分享,可在线阅读,更多相关《mondrian的基本模式(java olap server)(30页珍藏版)》请在金锄头文库上搜索。

1、Mondrian模式1.什么是什么是mondrian模式模式?一个mondriann模式文件定义了一个多维数据库.它包含一个逻辑模型(logicalmodel)、一组数据立方(consistingofcubes)、层次(hierarchies)、和成员(members),并映射到物理模型上.逻辑模型(logicalmodel)是为了编写MDX查询语言而创建的,有如下概念:数据立方(cubes);维(dimensions);层次(hierarchies);级别(levels);成员(members).物理模型是所有数据的源,它们通过逻辑模型表现出来。典型的是星型模式,它们是由关系型数据库中的一组

2、表组成。下面我们还将看到一些其他映射的例子2.模式文件Mondrian模式是定义在一个XML文件中的.demo/FoodMart.xml这个文件里包含大多数我们这里讨论的结构目前,生成模式文件的方法是使用XML编辑器手动编写,XML语法并不复杂,因此这个任务并不像听上去那么难注意注意:XML元素必须按照一定的先后顺序出现.3.逻辑模型逻辑模型模式的重要组成部分为:数据立方(cubes),度量(measures),和维(dimensions):数据立方数据立方 :维和度量在一个特定主题范围内的集合.度量度量 :一个你感兴趣的一个测量值,例如,某种产品的销量.维:维:一个属性,属性的集合,用于度量

3、的分类.例如,你希望通过产品的颜色、客户的性别来区分它们的销量。在这里,颜色和性别被称之为维 一个简单模式的例子该模式包含一个名为“sales”的简单数据立方(cube),它有两个维(dimension):Time,和 Gender,和两个度量: UnitSales和 StoreSales.我们可以根据以上模式来书写一个如下的MDX查询语言:SELECTMeasures.UnitSales,Measures.StoreSalesONCOLUMNS,descendants(Time.1997.Q1)ONROWSFROMSalesWHEREGender.F这个查询引用了这个数据立方(Sales),

4、结果如下:下面我们将详细的说明:3.1数据立方数据立方(cube)一个数据立方是一些度量的维的集合.通常定义在一个事实表中,如我们在事实表 sales_fact_1997中看到的,它保存了度量值和对维表的引用.3.2度量度量(measures)这个销售数据立方定义了两个度量:UnitSalesandStoreSales.每个度量包含一个名字对应事实表中的一个列、采用一个聚合函数.聚合函数通常为 “sum”,但 “count”,“min”,“max”,“avg”,和 “distinct-count”也是经常使用的。上面的度量”UnitSales”对应事实表“sales_fact_1997”中一个

5、名为”unit_sales”的列,使用”sum”函数聚合。可选属性 datatype指定了单元值在 Mondrians缓存中的格式,和它们经XML返回的格式.属性 datatype可以是 String,Integer,Numeric,Boolean,Date,Time,andTimestamp中的一个.默认为 Numeric一个可选的formatString属性指定了值如何被打印。这里我们选择销售数量不带小数的输出(因为销售数量是整数) ,销售总额带2位小数 .符号,和 .是对地区敏感的,因此如果是在意大利运行,销售总额可能会出现 48.123,45.度量值不仅可以从事实表中的列中得出,它还可

6、以使用 cellreader,或一个 SQL表达式来计算它的值.以下度量 PromotionSales使用了SQL表达式来计算其值.注意:底层数据库必须支持 SQL表达式.(case when sales_fact_1997.promotion_id = 0 then 0 else sales_fact_1997.store_sales end)3.3维维,层次层次,级别级别(Dimensions,Hierarchies,Levels)成员成员(member)一个成员(member)是指维上的一个点,是该维值集合中的一个值.如名为gender的层次结构有两个member:MandF.名为sto

7、re的层级结构有三个成员SanFrancisco,California和 USA.层次结构层次结构(hierarchy)层次结构(hierarchy)是为了方便分析问题而将一组member组织成的结构.例如,store层次结构由storename,city,state,和nation组成。级别级别(level)一个level是members的集合,它们到根层次(hierarchy)的距离(distance)是相同的维维(dimension)一个维(dimension)是一个层次(hierarchy)的集合,根据事实表中的列来区别维定义的例子让我们看如下一个维定义 该维由一个单一的层次(hier

8、archy)组成,而这个层次则由一个名为Gender的级别(level)组成 . 该维的值是从表customer中的gender列提取出来的.列 “gender”有两个值:FandM,因此Gender维包含两个成员:Gender.F和 Gender.M。3.3.1维和层次到表的映射维和层次到表的映射一个维依靠一对列和数据立方进行连接,一个在事件表中,另一个在维表中。 元素有一个外键(foreignKey)属性,对应事实表中的一个列,它通过 元素中的主键属性连接起来.3.3.2all成员默认情况下,每个层次都包含一个称之为 (All)的顶级别,它包含一话个名为 (AllhierarchyName

9、)的成员(member).该成员是该维中所有其他成员的父成员,它也是该层次的默认成员3.3.3时间维(Timedimension)时间维有一个“TimeDimension”类型.时间维中级别(level)的类型由 levelType属性指定,有如下可选值:TimeYearsTimeQuartersTimeMonthsTimeDays下面是一个关于时间维的例子:3.3.4计算成员(Calculatedmembers)假设你想要创建一个度量,但事实表中并没有这个列,一种方法是使用WITHMEMBER子句,如下:WITHMEMBERMeasures.ProfitASMeasures.StoreSales-Measures.StoreCost,FORMAT_STRING=$#,#SELECTMeasures.StoreSales,Measures.ProfitONCOLUMNS,Product.ChildrenONROWSFROMSalesWHERETime.1997 但更好的办法是在模式中定义这个成员,下面在是cube中的定义在这里,我们对mondrian模式的基本内容进行了简单介绍。您可以通过访问http:/

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号