Ssas OLAP存储引擎中的错误:处理时找不到属性键
我知道这主要是一个设计问题。我已经读到,通过在处理时自定义错误,可以解决这个问题,但我不愿意忽略错误,而且多维数据集进程是计划好的,所以忽略错误不是一个选择,至少是一个好的选择 这是抛出错误的多维数据集的一部分 DimTimeSsas OLAP存储引擎中的错误:处理时找不到属性键,ssas,foreign-key-relationship,data-warehouse,olap-cube,dimensional-modeling,Ssas,Foreign Key Relationship,Data Warehouse,Olap Cube,Dimensional Modeling,我知道这主要是一个设计问题。我已经读到,通过在处理时自定义错误,可以解决这个问题,但我不愿意忽略错误,而且多维数据集进程是计划好的,所以忽略错误不是一个选择,至少是一个好的选择 这是抛出错误的多维数据集的一部分 DimTime PK(int) MyMonth(整数,示例=201501、201502、201503等) 另一栏 FactBudget PK(int) 月份(整数,示例=201501、201502、201503等) 另一个专栏 DSV中的关系设置如下 DimTiempo=DimT
- PK(int)
- MyMonth(整数,示例=201501、201502、201503等)
- 另一栏
- PK(int)
- 月份(整数,示例=201501、201502、201503等)
- 另一个专栏
多维数据集中的关系如下所示: 在处理错误时,创建多维数据集没有问题:在抛出处理时找不到属性键 由于FactBudget有一些DimTime没有的月份值(例如201510201511201512),所以抛出了它,因此完整性被破坏 如回答中所述,这可以在ETL过程中解决。我认为,如果一个事实表中有外键没有插入到维度中,我就无法获得关系 注:MyMonth可以是值201501、201502、201503等。这是为连接的年份和月份设置的,DimTime是增量插入的,并且每天都计算该列,因此在这一时刻DimTime没有201507以后的值 是否有一种变通方法或模式来处理这种关系
谢谢你考虑我的问题。你为什么要递增地填充DimTime。您需要在事实中使用的值已经存在于维度中。我只需要为DimTime编写一整套数据并停止增量更新。我认为您遵循的过程是不正确的:您应该通过退化/事实维度方法设置任何与时间相关的维度。也就是说,时间维度不是真正的维度,而是通过包含时间的事实表本身填充的。如果你查退化维度,你就会明白我的意思 我在Halo BI中处理立方体时遇到了这个问题。似乎有些“日期时间”样式“受SQL Server支持,但不受Halo BI支持”。此语句不会导致错误:
CAST(CONVERT(char(11),table.[col name],113) AS datetime) AS [col name]
CAST(CONVERT(char(16),table.[col name],120) AS datetime) AS [col name]
但是,这并不是没有错误的过程:
CAST(CONVERT(char(11),table.[col name],113) AS datetime) AS [col name]
CAST(CONVERT(char(16),table.[col name],120) AS datetime) AS [col name]
但是,这两种方法都可以在SQLServerManagementStudio 2012中使用
此错误的另一个原因是多维数据集度量值未正确映射到事实表。感谢您的建议,并为我显示未知模式,我会记住这一点。作为快速解决方法,我正在考虑以增量方式填充事实以匹配DimTime,因为我不想影响使用DimTime的其他事实。谢谢您的建议。我认为这非常适合事务数据。此场景涉及固定数据,即一年每月的预算销售。我会记住你的小费。