我们的某个生产多维数据集失败,并显示以下错误消息:
来源:Analysis Services执行DDL任务分析服务执行 DDL任务描述:OLAP存储引擎中的错误: 表处理时无法找到属性键:表: 'dbo_vw_FACT_OperationalTimeSheetData',列:'CurrentHomeLaborOrg', 价值:'117-MARKETPLACE-38'。属性是'KeyOrganisation'。结束 警告警告:2013-07-22 06:26:07.51代码:0x811F0002
来源:Analysis Services执行DDL任务分析服务执行 DDL任务描述:OLAP存储引擎中的错误: 属性键因为属性而转换为未知成员 找不到钥匙。属性KeyOnganisation of Dimension:Current 来自数据库的家庭组织:LadbrokesReporting2005,Cube:MIS 克隆,测量组:Kronos时间表,分区:201307,记录: 179774.结束警告
在广泛的谷歌搜索上面的错误消息我得知这是由于参照完整性,即事实表中的某些行无法链接到维度表。在我之前的分析中,我认为对于某些值,如上面在事实表中的错误消息'117-MARKETPLACE-38'中给出的值,维度表中的格式为'117_Marketplace_38'。但是,我发现了一些引人注目的事实: -
填充事实的视图的查询以“117-MARKETPLACE-38”格式转换数据。源表中数据的格式为'117_Marketplace_38'。
“117-Marketplace-38”格式还有许多其他条目。但是,该错误似乎只出现在该条目中。那么为什么其他人会被接受,但这不是吗?
我已经没想完了。因此,如果有人能帮助我解决这个问题会很棒。
答案 0 :(得分:3)
您确定要处理维度吗?请记住,因为它将事实链接到维度,它在SSAS维度上执行,而不是基础SQL表。尝试首先在维度上运行流程(更新)?
在您的原始帖子中,您将混合使用大写和小写,MARKETPLACE和Marketplace。它是如何在源头?可能是因为它没有将它们视为相同。我见过SSAS有“Id”与“ID”的问题
ssas attribute key cannot be found even though it exists and is not due to duplicates
的可能相对值接受后编辑评论回答。
答案 1 :(得分:0)
我收到了同样的错误消息,但在我的情况下必须以不同的方式处理它:下面的详细信息针对遇到同一问题的其他人。
在我的场景中,我通过桥接表将我的事实表连接到另一个事实表。这个桥表是通过INNER JOIN
形成的,所以它只有两个匹配的记录;合法地,FactTableA
中的某些行不在BrgTable
加入FactTableB
。
即使没有FactTableA
的有效链接,也允许BrgTable
处理,我跟踪了these instructions from TechNet:
事实表中的参照完整性问题
销售事实表包含不存在product_id的记录 在产品维度表中。服务器将生成KeyNotFound 分区处理期间出错。默认情况下,KeyNotFound错误是 记录并计入关键错误限制,即0 默认。因此,处理将在第一次错误时失败。
解决方案是修改度量值组的ErrorConfiguration 或分区。以下是两种选择:
Set KeyNotFound=IgnoreError. Set KeyErrorLimit to a sufficiently large number.
KeyNotFound错误的默认处理是分配事实 记录到未知成员。另一种选择是设定 KeyErrorAction = DiscardRecord,丢弃事实表记录 共
对我来说,我必须转到与失败的度量值组相关联的分区,打开属性窗格,将 ErrorConfiguration 设置为Custom
,然后然后展开Custom并将KeyNotFound设置为 IgnoreError 。