我即将设计一个数据仓库和一个产品维度和销售事实的多维数据集 表。产品维度为 SCD(类型2)。
让我们说产品维度中的数据在第一年就像这样:
Name | Product Group | Year A | A | 2011 B | A | 2011 C | B | 2011
和第二年一样:
Name | Product Group | Year A | A | 2012 B | B | 2012 C | C | 2012
正如您所看到的,有些产品在2011年至2012年间已经改变了产品组。
在立方体中,我想问两类问题:
简单易懂: 2011年,我们在每个产品组中销售了多少。
艰难的一个:如果产品属于2012年的产品组,我们在2011年的每个产品组销售了多少。
您如何设计仓库,多维数据集是否可以实现此目标?
谢谢!
聚苯乙烯。我使用的是SQL Server 2012
答案 0 :(得分:1)
这可以被视为3型SCD。添加专栏[Product Group 2011]可以回答这些类型的假设问题。
Name | Product Group | Product Group 2011 | Year
A | A | A | 2012
B | B | A | 2012
C | C | B | 2012
另一种方法是在产品维度和销售事实中添加durable key。
id | dur_id | Name | Product Group | Year
1 | 1 | A | A | 2012
2 | 2 | B | B | 2012
3 | 3 | C | C | 2012
4 | 1 | A | A | 2012
5 | 2 | B | B | 2012
6 | 3 | C | C | 2012
然后你可以从SALES事实加入到dur_id上的PRODUCT dimesion,只需记住基于维度年限制。
对于SSAS,您可以加载“重复”事实行(即与2011年关联的2011年和2012年事实行,并再次与2012年关联)然后,您需要将2012设为[年]属性的默认成员层次结构,并防止未指定年份的汇总。
答案 1 :(得分:0)