SSAS维度层次结构:处理时已找到重复的属性键

时间:2012-11-06 03:02:40

标签: ssas olap cube

我是SSAS的新手,我正在尝试部署一个只有一个由多个属性组成的维度的简单多维数据集。我已经做的是从我的数据源创建一个DSV,然后我从我的事实表创建一个维度。它接缝无论发生什么,我收到以下错误消息:

Errors in the OLAP storage engine: A duplicate attribute key has been found when processing: Table: 'dbo_Fact_Statistics', Column: 'Team', value: 'ANA'. The attribute is 'Team'.

这是我的层次结构:Id(SK) - >玩家ID - >团队 - >玩家姓名 - >薪水

我不明白,显然问题不是该值为null,就像我在其他主题中看到的那样,告诉我将NullProcessing下的KeyColumns设置为自动以外的其他内容,但在这种情况下,这不是问题。

非常感谢任何帮助。

5 个答案:

答案 0 :(得分:4)

您可能在多个玩家姓名和/或工资值下列出了ANA队列。

这是SSAS的一个非常棘手的领域。最快的方法可能是安装BIDS Helper并使用“Dimension Health Check”功能:

http://bidshelper.codeplex.com/wikipage?title=Dimension%20Health%20Check&referringTitle=Documentation

它会显示您数据中的所有问题(不仅仅是您目前发现的第一个问题),并为您提供有关如何继续操作的一些信息。

就个人而言,由于调试和修复这些问题的困难,我已经建立了属性关系。我倾向于现在建立维度,其中每个属性直接与关键属性相关。你永远不会看到这些错误和性能似乎非常相似。您仍然可以向用户显示层次结构。

如果这不是您的选项,那么您可以尝试将更高级别属性的列添加到所有较低级别的Key属性。从技术上讲,这将起作用,但设置和维护很尴尬。

答案 1 :(得分:2)

这种方法解决了我的问题:

我没有按照链接关系使用属性,而是默认将关系保留为原样。

Player id (SK) -> Conference
Player id (SK) -> Division  
Player id (SK) -> Team 
Player id (SK) -> Player Name 
Player id (SK) -> Salary

答案 2 :(得分:1)

在sql中运行此查找您的douplicate例如ID ...将其用作我的维度键

Select id,count(*) as how_many
from [RC_Dailer_WH].[dbo].[RC_call_logs]
group by id
having count(*) > 1

(受影响的3647行),其数据库中有超过50k的记录

删除重复项,然后正确处理我的多维数据集

答案 3 :(得分:0)

去寻找显示错误的维度。 然后右键单击 去查看代码

并在该代码中搜索以下行:

ReportAndStop

删除该XML标记 并保存

并重新处理它将起作用

答案 4 :(得分:-1)

转到显示错误的维度。并右键单击 - 转到查看代码 -

CTRL + F - 连接的sarch - 找到
ReportAndStop 连接字符串。 从代码中删除上述命令 - 并保存。  再来一次。

它会起作用。