DataWarehouse / Cube中的半历史问题

时间:2012-12-04 13:32:49

标签: sql-server sql-server-2012 data-warehouse business-intelligence cube

我即将设计一个数据仓库和一个产品维度销售事实的多维数据集 表。产品维度为 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

2 个答案:

答案 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)