无法使 ConvertToUnknown 维度在 SSAS OLAP 多维数据集上工作
Posted
技术标签:
【中文标题】无法使 ConvertToUnknown 维度在 SSAS OLAP 多维数据集上工作【英文标题】:Cannot make a ConvertToUnknown dimension work on an SSAS OLAP cube 【发布时间】:2017-08-25 14:37:47 【问题描述】:我们有一个 SSAS OLAP 多维数据集,其中一些维度定义为 KeyNotFound -> IgnoreError 和 KeyErrorAction -> ConvertToUnknown
其中一个维度(并且只有一个维度)无法按预期工作,如果在维度上找不到事实表值,则不会考虑这些值。
换句话说,这个特定维度的行为就好像它被定义为 KeyErrorAction->DiscardRecord
查看构建过程的详细日志很明显,行为必须是这个,因为选择看起来像(简化)
选择fields_from_fact_table,dim_key 来自 fact_table,dim_table 其中 fact_table.value_key=dim_table.dim_key
像这样的连接只返回 dim_table 上存在的记录,这就是我们看不到不存在值的原因。
但我们看不出发生这种情况的任何原因。为什么是这个特定维度而不是另一个维度?使用定义为 DiscardRecord 的维度的连接是合乎逻辑的(是的,可以在我们的多维数据集上选择一些维度),但使用定义为 ConvertToUnknown 的维度只会破坏声明本身。
我们可以想象的唯一原因是这个特定维度被用作另一个“引用”维度的中间维度(不确定英文名称的正确性,当 fact_table 链接到一个维度而这个链接到一个维度时就是这种情况)第二个)。
如果是这种情况,当您选择 ConvertToUnknown 方法时,SSAS 应发出错误警告。
具有不同维度的不同 fact_table 也使用连接(此处没有引用维度),因此似乎总是使用连接。
知道发生了什么吗?我们如何才能使这个维度按预期工作?
【问题讨论】:
【参考方案1】:哇!偶然发现了原因。此特定维度用作另一个维度的中间维度。在这种情况下,您不能有空值。
【讨论】:
以上是关于无法使 ConvertToUnknown 维度在 SSAS OLAP 多维数据集上工作的主要内容,如果未能解决你的问题,请参考以下文章