0

我即将设计一个数据仓库和一个带有产品维度销售事实 表的多维数据集。产品尺寸是SCD(类型 2)

假设产品维度中的数据在第一年看起来像这样:

姓名 | 产品组 | 年
一个 | 一个 | 2011
乙| 一个 | 2011
C | 乙| 2011

第二年就像这样:

姓名 | 产品组 | 年
一个 | 一个 | 2012
乙| 乙| 2012
C | C | 2012

如您所见,一些产品在 2011 年至 2012 年期间更改了产品组。

在立方体中,我想问两种类型的问题:

  • 最简单的一个: 2011 年我们在每个产品组中的销售额是多少。

  • 难点:如果产品属于他们在 2012 年拥有的产品组,我们在 2011 年每个产品组的销售额是多少。

您将如何设计仓库和立方体来实现这一点?

谢谢!

附言。我正在使用 SQL Server 2012

4

2 回答 2

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

另一种方法是为产品维度和销售事实添加一个耐用的关键。

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 维度,只需记住根据维度 Year 进行限制。

对于 SSAS,您可以加载“重复”事实行(即与 2011 关联的 2011 和 2012 事实行,并再次与 2012 关联)然后您需要将 2012 设为 [Year] 属性层次结构的默认成员,并且防止未指定年份的汇总。

于 2012-12-04T18:32:46.487 回答
0

我在 msdn 的论坛上得到了很好的答案。

http://social.msdn.microsoft.com/Forums/en-US/sqlanalysisservices/thread/96070b49-954a-456f-9687-3c8afaf74a39

于 2012-12-05T06:42:19.623 回答