3

我对 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) -> Player id -> Team -> Player Name -> Salary

我不明白,显然问题不在于该值为空,就像我在其他线程中看到的那样,告诉我设置为自动以外的其他内容,但这不是这种情况下的问题NullProcessingKeyColumns

任何帮助将不胜感激。

4

5 回答 5

5

可能您在多个球员姓名和/或薪水值下列出了团队 ANA。

这是 SSAS 的一个非常棘手的领域。最快的方法可能是安装 BIDS Helper 并使用“维度健康检查”功能:

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

它将向您显示数据中的所有问题(不仅仅是您迄今为止发现的第一个问题),并为您提供有关如何继续的一些信息。

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

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

于 2012-11-06T03:29:11.277 回答
2

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

我没有让属性遵循链式关系,而是让关系保持默认状态。

Player id (SK) -> Conference
Player id (SK) -> Division  
Player id (SK) -> Team 
Player id (SK) -> Player Name 
Player id (SK) -> Salary
于 2012-12-12T07:46:21.107 回答
1

在 sql 中运行它找到您的重复项,例如 ID ... 将其用作我的维度键

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

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

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

于 2014-02-07T08:42:02.693 回答
0

去它显示错误的那个维度。并右键单击查看代码

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

报告并停止

删除该 XML 标记并保存

并重新处理它会起作用

于 2014-09-25T08:49:11.833 回答
-1

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

CTRL+F - 搜索连接 - 查找
ReportAndStop 连接字符串。从代码中删除上述命令 - 并保存。再处理一次。

它会起作用的。

于 2015-01-19T10:30:28.173 回答