SSAS& SCD2 - 如何在Dim

时间:2016-12-16 03:42:50

标签: ssas scd scd2

我正在使用SQL Server 2014和Visual Studio 2015 我有一个SCD2用于员工姓名,例如

SK     AltKey       Name            Gender    IsActive
1      15           Sven Svensson    M        1
2      16           Jo Jonsson       M        1

并在事实表中

SK      AgentSK      CallDuration    DateKey
100     1            335             20160808
101     2            235             20160809

因此,您可以看到多维数据集当前在FctAgentSK和DimSK上链接。这按计划进行。但是,当Jo更改性别时,SCD2会使行处于非活动状态(0)并插入一个新行,其中包含新的性别和IsActive的' 1'。

我面临的问题是,事实上,SK 101仍然引用了“老人”这个问题。代理商的详细信息。我应该如何处理这个仍能报告电话,但也参考"正确"代理人的详细信息 - 反映他们目前的性别。

当插入新事实时,它将具有“' NEW' SK分配了,但基本上我需要报告性别变化任何一方发生的所有电话。

有什么建议吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

正如Nick.McDermaid建议的那样,如果你不想要SCD2功能,你可以将其从维度设计中删除(我经常看到它实际上并不需要时过度实施:也许你已经继承了那种设置?)。

如果您想/必须保留SCD2设计,但想报告当前员工属性(性别和任何其他SCD2属性)。

  1. Kimball记录了" Type 6"在这里:SCD types 0,4,5,6,7。你添加一个"当前"属性值对现有Type2设计的影响。然后,您可以报告"当前"仅属性。

  2. 我假设员工姓名" Alt Key"是持久的员工成员密钥,通过员工属性的变化保持不变?您可以使用Alt Key作为其叶级别键,使Employee维度(或Employee维度内的层次结构)略有不同。如果您还没有将SK作为维度属性,则会使维度表格“崩溃”#34;每个AltKey成一个成员,而不是每个SK一个成员。显然,您不能将任何SCD2属性添加到此Alt Key层次结构中,因为每个键不会是单个值;这会引起特别的问题,关于呼叫耐用的"员工" (即叶级别的名称列将是什么),因为员工姓名是最明显的SCD2属性之一,不会保持不变。可能这种方法最好与潜在的" Type6"包含"当前价值"在尺寸数据中,如上面(1)中所述。