您的位置:首页 > 其它

Fact Dimension

2015-07-01 17:21 169 查看
事实表可以包含描述性属性的列,如果该属性的重复值特别少,远低于事实记录的数目,那么就不用单独创建一个常规维度,利用事实数据由SSAS生成一个事实维度。

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进行聚合”。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: