这里是我的布局的一个例子图片。
如您所见,我有我的SCD类型(status/startdate/enddate/businesskey)。
我的密钥是标识每条记录的代理键。
我的问题是,我的层次结构似乎出错了,这可能是因为布局不正确。这是我当前的键列结构。
层次结构
LineOfBusinessId (键列: LineOfBusinessId) (名称列: LineOfBusinessName)
WorkerDivisionId (键列: LineOfBusinessId,WorkerDivisionId) (名称列: WorkerDivisionName)
WorkerId (键列: LineOfBusinessId、WorkerDivisionId、WorkerId) (名称列: WorkerName)
此维度错误是因为工作表名称发生了更改,并且在完全处理过程中发生选择不同时,它会发现重复项。我只是想知道,在这种特定情况下,设置关键列的最佳方法是什么。名称需要是键列的一部分还是我的层次结构完全不正确。我确信我的设置是正确的,但我现在显然是在质疑自己。
我收到了一些建议,在这种情况下最好使用代理密钥作为密钥列的一部分,但随后发现这会导致问题,因为我只希望在查询SCD时显示一条记录。后来,我收到一些更多的建议,说我不应该在id键列中使用代理项,而应该在名称键列中使用代理项,特别是在工作者级别。
我很容易用这个设置来更新我的所有多维数据集,而没有听到有人做出这种类型的层次结构。当我查看这个设置时,我不得不认为其他人已经建立了这种类型的层次结构,因为它相当简单。对此,如有任何建议或指导,将不胜感激。
谢谢。
发布于 2012-05-01 08:53:18
在缓慢变化的维度上建立SSAS层次结构有点麻烦。您需要在层次结构的每个级别为每个历史版本设置代理键。然后,该密钥具有用户选择或报告的实际业务面向名称。
例如,想象一下Division1中的worker BloggsJ,也就是LineOfBusiness1中的worker。现在,Division1被转移到LineOfBusiness2。从逻辑上讲,现在有了带两行的分区实体:
DivisionKey Division LineOfBusinessKey
1 Division1 11
2 Division2 12
3 Division1 12
和
LineOfBusinessKey LineOfBusiness
11 LineOfBusiness1
12 LineOfBusiness2
现在,我们有一个工作人员BloggsJ,他被分配到第1分部,该部门随后被移动。
WorkerKey WorkerName DivisionKey Division LineOfBusinessKey LineOfBusiness
101 BloggsJ 1 Division1 11 LineOfBusiness1
102 BloggsJ 3 Division1 12 LineOfBusiness2
103 SmithF 2 Division2 12 LineOfBusiness2
在这种情况下,钥匙保持严格的等级顺序:
在多维数据集中显示名称允许您构建一个可以支持钻取操作的层次结构。您还可能希望隐藏此层次结构的基本属性,并显示另一组只有名称的集合,因此维度中有一些内容将在每个级别产生一个干净的、唯一的成员列表,而不需要重复的不透明、令人困惑的名称。
*更新05012012 3:22科技委
这里是我的数据示例的图像。
https://dba.stackexchange.com/questions/17272
复制相似问题