1.cube,立方体,是一种有名称的度量和维度的集合。度量和维度的共同点是事实表,例如下面例子中的事实表"sale_face_1997”。正如我们所见,事实表中保存了要被计算的度量,并且包含关联维度的表。
|
事实表使用
也可以通过
2.Measure,度量,叫做Sales的Cube定义了一系列的度量,包括"Unit Sales”和"Store Sales”。如下面的例子:
每个度量都有"name“属性,对应于在事实表中的列,"aggregator”属性通常包括sum/count/min/max/avg和distinct-count,注意,如果你的cube包括父子层次结构,distinct-count会有一些限制。 datatype属性是可选的,主要说明在Mondrian的缓存中,cell值是如何表现的,以及他们如何通过XML返回用于分析。datatype属性包括String/Integer/Numeric/Boolean/Date/Time/Timestamp,除count和distinct-count外,默认是Numeric,count和distinct-count默认为Integer。 formatString属性也是可选的,这个属性指明在输出时的格式。在上面例子中,我们可以设置对Unit Sales输出格式不带小数,Store Sales个带两位小数。格式中的","和"."符号是区域相关的,因此,如果你是在意大利,则小数应该为”48.123,45”,通过使用高级字符格式,可以获得更广泛的效果。 caption属性也是可选的,度量可以设置标题属性用于返回而不使用名称,Member.getCaption()方法会返回caption。对于例如(Σ或Π)这样的字符,可以通过定义caption来显示,例如:
如果不从列中取度量,也能使用cell reader或使用SQL表达式计算度量值。看下面的例子:
在上面的例子中,如果有促销才会包含到促销汇总中,可以使用包括子查询的专门的SQL表达式。基础数据库必须能支持在聚集上下文中的SQL表达式。不同数据库间的差异通过 标签中的dialect属性来设置。 度量也可以使用cell格式化器来做专门的格式化 3.Dimension,Hierarchy,level 维度、层次和等级 我们先看一些定义:
|