Mondrian系列(三)-如何设计Mondrian的Schema(2)-逻辑模型

3.逻辑模型

Schema的最重要的组成部分是cube、度量measure和维度dimension。

  • cube是在某一特定主题区域中维度和度量的集合
  • 度量measure是你所感兴趣的测量数量,例如产品的销售数量或库存成本
  • 维度dimension是一种属性,或一系列属性,取决于你如何将度量划分成子类型。例如,你可能希望

<schema><br><cube name="Sales"><br><table name="sales_fact_1997"></table> <br><dimension name="Gender" foreignkey="customer_id"><br><hierarchy hasall="true" allmembername="All Genders" primarykey="customer_id"><br><table name="customer"></table> <br><level name="Gender" column="gender" uniquemembers="true"></level><br></hierarchy><br></dimension><br><dimension name="Time" foreignkey="time_id"><br><hierarchy hasall="false" primarykey="time_id"><br><table name="time_by_day"></table> <br><level name="Year" column="the_year" type="Numeric" uniquemembers="true"></level><br><level name="Quarter" column="quarter" uniquemembers="false"></level><br><level name="Month" column="month_of_year" type="Numeric" uniquemembers="false"></level><br></hierarchy><br></dimension><br><measure name="Unit Sales" column="unit_sales" aggregator="sum" formatstring="#,###"></measure><br><measure name="Store Sales" column="store_sales" aggregator="sum" formatstring="#,###.##"></measure><br><measure name="Store Cost" column="store_cost" aggregator="sum" formatstring="#,###.00"></measure><br><calculatedmember name="Profit" dimension="Measures" formula="[Measures].[Store Sales] - [Measures].[Store Cost]"><br><calculatedmemberproperty name="FORMAT_STRING" value="$#,##0.00"></calculatedmemberproperty><br></calculatedmember><br></cube><br></schema>

上面的例子schema包含一个cube,叫做"Sales”。这个cube有两个维度,“time”和“Gender”,还有两个度量值,“Unit Sales”和“Store Sales”。我们可以基于这个Schema写一个MDX查询:

SELECT {[Measures].[Unit Sales],[Measures].[Store Sales]} ON COLUMNS,{descendants([Time].[1997].[Q1])} ON ROWS FROM [Sales] WHERE [Gender].[F]

这个查询语句基于Sales Cube([Sales]),性别是女。下面是查询结果。

[Time] [Measures].[Unit Sales] [Measures].[Store Sales]

[1997].[Q1] 0 0

[1997].[Q1].[Jan] 0 0

[1997].[Q1].[Feb] 0 0

[1997].[Q1].[Mar] 0 0

你可能感兴趣的:(F#)