【问题标题】:Time variancy in a data warehouse数据仓库中的时变
【发布时间】:2011-12-23 19:12:16
【问题描述】:

我的数据仓库使用的是自上而下的方法,所以 DW 是 3NF,数据集市是多维的。我读过,DW 应该有一个时间戳(或类似的东西)来保存历史数据。
我的问题是:
我是否必须将过去的数据存储在我的 DW 中,或者是否足以具有时变维度(技术上我使用类型 2 SCD,这是必要的)。

如果 DW 必须是时变的,那么:
我们什么时候在自上而下的方法中使用 SCD?
我应该使用时间戳作为表 PK 的一部分吗?

谢谢!

【问题讨论】:

  • 我不太明白你的问题。看起来您有一个现有的数据仓库,但您是在问当前的设计是否正确,或者如何实现新的东西或其他东西?不管是什么问题,如果你能更具体、更清楚地展示当前的结构,那么你会得到更好的答案。

标签: timestamp data-warehouse


【解决方案1】:

如果可能,请尽量避免在规范化架构中跟踪历史记录。 2 型 SCD 简单得多。但是,您确实需要使您的数据集市持久化 - 历史无法重建,因此数据集市是您的历史数据的规范来源。

一些提示:

  • 不要在您的维度中重复使用 ODS/DW 键。合并数据的自然键。这将您的 ODS 与星型模式分离,并允许您在不影响星型模式的情况下重建 ODS。

  • 跟踪历史并从复杂的标准化数据中重建历史位置确实很繁琐。不要打扰;在您的 ODS 中坚持“当前状态”。

  • 制作通用类型 2 维度处理程序(您可以使用系统数据字典中的数据)。这允许您显示预加载表并使用处理程序将数据合并到维度。

    这样做可以将 ETL 与历史跟踪分开,并允许您单独测试它们。您可以通过验证预加载表是否正确来测试 ETL - 您不必在场景之前/之后进行测试。您可以使用维度处理程序的一组单元测试来测试历史跟踪。

    这种类型的架构大大简化了测试。

  • 持久数据集市而不是持久 ODS 的一个优点是您可以轻松地对 ODS 进行大手术。如果 ODS 不必跟踪历史记录,则可以根据需要删除并重新创建它,您可以轻松更改数据模型,而无需迁移历史数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多