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,实现数据无重复。
6,事实维度的定义和用法
如果维度的数据是来源于事实表,那么这个新创建的维度就是退化维度,即事实维度。
事实维度和普通维度的特殊之处是数据源的特殊,常规维度的数据源是维度表,而事实维度的数据源是事实表,这就导致事实维度是随着Fact table的增加而增加。
在用法上,事实维度和常规维度是相同的,语义都是“按照XXX维度,对Measure进行聚合”。
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进行聚合”。
相关文章推荐
- Linux下p2p的聊天功能实现
- Java反射
- php webservice实例
- php面向对象编程之--封装
- socket的半包,粘包与分包的问题
- BaiduMap---百度地图官方Demo之多地图展示(在一个Activity中创建多个地图展示)
- GridControl 选择列、复选框全选(上)
- 驱动编程问题
- GridControl 选择列、复选框全选(上)
- 为什么php时间阅读RTF,p标签会出现红色
- 如何运用UIControl自定义iOS中的控件
- C# 3.5 扩展方法
- POI创建和读取excel文件
- Java基础:数组
- PowerDesigner中遍历物理模型中的所有表,检查表代码、字段代码
- Longest Palindromic Substring (最长回文字符串)——两种方法还没看,仍需认真看看
- iOS并发编程指南
- linux知识点回顾
- c/c++模板的定义和实现分开的问题(一)
- 图片上传,android ios Java服务器整合