首页 > 其他 > 详细

Fact Dimension

时间:2015-07-01 19:57:21      阅读:462      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!