码迷,mamicode.com
首页 > 其他好文 > 详细

Fact Dimension

时间:2015-07-01 19:58:17      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:

Fact Dimension是从Fact Table中抽取多个Column构成的Dimension,为什么需要创建Fact Dimension?因为需要通过Fact Table的column来聚合或查看数据。

如果一个FactTable的结构是FactSales(date,city,Product,Cost,OrderAccount),维度是DimCity,DimProduct。那么只能通过City和Product来聚合和查看数据,如果想要通过Date来查询数据,最直观的做法是新建一个维度DimDate,但是也可以不新建一个DimDate 维度表,从Fact Table中抽取Date列,创建一个事实维度。

 

1,示例 数据

DimCity和DimProduct都只有两行数据

技术分享 技术分享

FactSales数据,可以看到Date数据有重复。

技术分享

2,DSV图示

技术分享

3,创建事实维度

技术分享

技术分享

技术分享

4,为Measure Group和事实维度设置关系

在Dimension Usage选项卡中,看以看到初始只有dimProduct 和 DimCity 跟Measure group存在关系,由于是外键关系,所以Relationship type是Regular。

在空白处右击,弹出快捷菜单,选择Add Cube Dimension,添加事实维度FactSales

技术分享

为事实维度和Measure Group设置RelationShip type,Granularity Attribut就是事实维度的主键。

技术分享

5,在事实表中,Date数据存在重复,那么如何处理重复的数据?

在Process的时候,可以看到,SSAS在处理 dimension FactSales时使用的Sql query。

技术分享

 

事实维度的数据,从事实表查询而来,并且使用distinct,实现数据无重复。

SELECT DISTINCT [dbo_FactSales].[date] AS [dbo_FactSalesdate0_0]
FROM [dbo].[FactSales] AS [dbo_FactSales]

 6,事实维度的定义和用法

如果维度的数据是来源于事实表,那么这个新创建的维度就是退化维度,即事实维度。

事实维度和普通维度的特殊之处是数据源的特殊,常规维度的数据源是维度表,而事实维度的数据源是事实表,这就导致事实维度是随着Fact table的增加而增加。

 

在用法上,事实维度和常规维度是相同的,语义都是“按照XXX维度,对Measure进行聚合”。

 

Fact Dimension

标签:

原文地址:http://www.cnblogs.com/ljhdo/p/4613775.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!