【发布时间】:2010-04-29 12:35:28
【问题描述】:
我有一个事实表,其中有一列包含从 MS Access 源加载的日期。问题是,有些值是 NULL,SSAS 不允许我将我的 DATE 维度引用到它。
在 SSIS 阶段解决它更好还是在 SSAS 阶段有一些解决方案?
非常感谢您的帮助。
【问题讨论】:
标签: sql sql-server ssis null ssas
我有一个事实表,其中有一列包含从 MS Access 源加载的日期。问题是,有些值是 NULL,SSAS 不允许我将我的 DATE 维度引用到它。
在 SSIS 阶段解决它更好还是在 SSAS 阶段有一些解决方案?
非常感谢您的帮助。
【问题讨论】:
标签: sql sql-server ssis null ssas
最佳实践是在 Fact 表中不要有任何 NULL 键(即 Dimension 键)值。
相反,在 Date 维度表中创建一个 MAX 日期(或“UnknownValue”,例如 -1)并为其设置键。
【讨论】:
有时出于非技术原因,不希望修复 DSV 或源系统中的空值。在这种情况下,您可以使用未知成员和 null 处理属性来解决此问题:
http://technet.microsoft.com/en-us/library/ms170707.aspx
我在试图突出数据质量问题或用于快速原型设计时这样做了。
【讨论】:
层次结构的每个成员都有一个属性“HideMemberIf”。将此设置为“NoName”,应该从维度浏览器中隐藏空值并允许处理多维数据集。
您还可以在 Datamart 视图中创建命名计算。命名计算将使用 ISNULL 函数,该函数可以填充值来代替空值。然后当然可以根据这些命名计算而不是原始数据字段来构建您的时间维度。
同样,最好不要在您的数据中完全包含任何空值,但您通常可以在多维数据集中解决此问题。
【讨论】: