sql - 多维数据集维度处理的参照完整性错误

标签 sql sql-server-2008-r2 ssas cube cube-dimension

我们的一个生产多维数据集失败并显示以下错误消息:

Source: Analysis Services Execute DDL Task Analysis Services Execute DDL Task Description: Errors in the OLAP storage engine: The attribute key cannot be found when processing: Table: 'dbo_vw_FACT_OperationalTimeSheetData', Column: 'CurrentHomeLaborOrg', Value: '117-MARKETPLACE-38'. The attribute is 'KeyOrganisation'. End Warning Warning: 2013-07-22 06:26:07.51 Code: 0x811F0002
Source: Analysis Services Execute DDL Task Analysis Services Execute DDL Task Description: Errors in the OLAP storage engine: The attribute key was converted to an unknown member because the attribute key was not found. Attribute KeyOrganisation of Dimension: Current Home Organisation from Database: LadbrokesReporting2005, Cube: MIS Clone, Measure Group: Kronos Time Sheet, Partition: 201307, Record: 179774. End Warning

在对上述错误消息进行广泛的谷歌搜索时,我了解到这是由于引用完整性造成的,即事实表中的某些行无法链接到维度表。在我之前的分析中,我发现对于某些值,如上面在事实表中的错误消息“117-MARKETPLACE-38”中给出的值,维度表中的格式为“117_Marketplace_38”。然而,我发现了一些惊人的事实:-

  1. 填充事实的 View 查询将数据转换为“117-MARKETPLACE-38”格式。源表中的数据格式为“117_Marketplace_38”。

  2. 还有许多其他格式为“117-Marketplace-38”的条目。但是,该错误似乎仅针对该条目存在。那么,为什么其他人都被录取了,而这个却没有呢?

我已经没有想法了。因此,如果有人可以帮助我解决这个问题,那就太好了。

最佳答案

您确定已处理该维度吗?请记住,当它将事实链接到维度时,它是在 SSAS 维度上进行的,而不是在基础 SQL 表上。尝试先在维度上运行一个进程(更新)?

在您的原始帖子中,您混合了大小写、MARKETPLACE 和 Marketplace。这是它在源代码中的样子吗?可能是它没有将它们视为相同。我已经看到 SSAS 在“Id”与“ID”方面存在问题

可能是 ssas attribute key cannot be found even though it exists and is not due to duplicates 的亲戚

接受后将评论编辑为答案。

关于sql - 多维数据集维度处理的参照完整性错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17785928/

相关文章:

用于发送电子邮件的 SQL Server 存储过程

sql-server - Messenger 服务尚未启动 - NetSend 通知将不会发送

stored-procedures - 存储过程的 SQL Server 堆栈跟踪

sql - 使用 Row_Number() 选择行的子集

c# - SSAS 与 C# 中的 XMLA 同步 - 使用 SQL 2017 中断

跨域访问SSAS

sql-server - [All] 既是级别又是成员(member)

mysql - 通过查询在两个组之间自然连接

mysql - SQL,如何对来自两个不同查询的两个总和求和

android - 在 sqlite 中添加一个查询时间变量