我知道这主要是一个设计问题。我已经读过这个问题的解决方法是通过在处理时自定义错误但我不高兴不得不忽略错误,而且多维数据集进程也是如此,所以忽略错误不是一个选择,至少是一个好的。
这是我的多维数据集中引发错误的一部分。
DimTime
FactBudget
DSV中的关系设置如下。
DimTiempo = DimTime,FactPresupuesto = FactBudget,periodo = MyMonth,PeriodoPresupFK = Month
刚刚翻译理解。
立方体中的关系如下:
在处理错误时,多维数据集的构建没有问题:在处理时,无法找到属性键。
由于FactBudget有一些月值(201510,201511,201512,例如DimTime没有),因此完整性被破坏了。
正如答案here中所提到的,这可以在ETL过程中解决。如果一个事实表具有未在维度中插入的外键,我想我无法获得关系。
注意MyMonth可以是值201501,201502,201503等。这是为年份和月份连接设置的,DimTime是增量插入的,每天计算该列,所以在这一刻DimTime没有201507以后的值。< / p>
是否有解决方法或模式来处理这种关系?
感谢您考虑我的问题。
答案 0 :(得分:2)
我认为您所关注的流程不正确:您应该通过简并/事实维度方法设置任何时间相关的维度。也就是说,时间维度实际上并不是真正的维度 - 相反,它是通过包含时间的事实表本身填充的。如果你查看退化的尺寸,你会明白我的意思。
答案 1 :(得分:0)
您是否有理由逐步填充DimTime? It certainly isn't the standard way to do it。您需要在您的事实中使用的值已经存在于维度中。我只是简单地为DimTime编写一整套数据并停止它的增量更新。
答案 2 :(得分:0)
我在尝试处理Halo BI中的多维数据集时遇到了这个问题。似乎有些&#34; datetime&#34;风格&#34;是&#34;由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]
但是,这些都可以在SQL Server Management Studio 2012中使用。
此错误的另一个原因是多维数据集度量未正确映射到事实表。