【问题标题】:SQL SERVER SSAS: How do I handle a NULL date value in my fact table, so I can process my time dimension without errors?SQL SERVER SSAS:如何处理事实表中的 NULL 日期值,以便可以无错误地处理时间维度?
【发布时间】:2010-04-29 12:35:28
【问题描述】:

我有一个事实表,其中有一列包含从 MS Access 源加载的日期。问题是,有些值是 NULL,SSAS 不允许我将我的 DATE 维度引用到它。

在 SSIS 阶段解决它更好还是在 SSAS 阶段有一些解决方案?

非常感谢您的帮助。

【问题讨论】:

    标签: sql sql-server ssis null ssas


    【解决方案1】:

    最佳实践是在 Fact 表中不要有任何 NULL 键(即 Dimension 键)值。

    相反,在 Date 维度表中创建一个 MAX 日期(或“UnknownValue”,例如 -1)并为其设置键。

    【讨论】:

      【解决方案2】:

      有时出于非技术原因,不希望修复 DSV 或源系统中的空值。在这种情况下,您可以使用未知成员和 null 处理属性来解决此问题:

      http://technet.microsoft.com/en-us/library/ms170707.aspx

      我在试图突出数据质量问题或用于快速原型设计时这样做了。

      【讨论】:

        【解决方案3】:

        层次结构的每个成员都有一个属性“HideMemberIf”。将此设置为“NoName”,应该从维度浏览器中隐藏空值并允许处理多维数据集。

        您还可以在 Datamart 视图中创建命名计算。命名计算将使用 ISNULL 函数,该函数可以填充值来代替空值。然后当然可以根据这些命名计算而不是原始数据字段来构建您的时间维度。

        同样,最好不要在您的数据中完全包含任何空值,但您通常可以在多维数据集中解决此问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-09-11
          • 2015-04-19
          相关资源
          最近更新 更多