【问题标题】:Slowly changing dimension - What is Pure type 6 implementation渐变维度——什么是纯类型 6 实现
【发布时间】:2013-06-25 11:04:27
【问题描述】:

我试图从WIKI 中理解纯 6 型 SCD 实现,它主要说三点

  1. 如果维度可能发生变化,每个时间片都有一个类型 2 代理键可能会导致问题。
  2. 纯 Type 6 实现不使用此功能,而是为每个主数据项使用一个代理键(例如,每个唯一的供应商都有一个代理键)。
  3. 这样可以避免主数据中的任何更改对现有交易数据产生影响。

但是我无法清楚地想象这些问题。

【问题讨论】:

    标签: sql sql-server-2008 database-design data-modeling scd


    【解决方案1】:

    “类型 6”或“混合”处理的要点是,您通过为每个新版本添加新行来跟踪更改,然后更新以前版本的某些属性以反映 当前 数据状态。这样一来,可以在所有版本中过滤和汇总数据以用于报告目的。

    这里还有另一种解释: http://www.kimballgroup.com/wp-content/uploads/2012/05/DT15CombiningSCD.pdf

    例子:

    http://www.kimballgroup.com/2013/02/05/design-tip-152-slowly-changing-dimension-types-0-4-5-6-7/

    【讨论】:

    • 如果我更新了之前版本的一些属性,它将如何反映当前数据状态?此外,为什么选择代理键与类型 2 或类型 6 混合建模不同。
    • 添加链接示例(注意“当前部门名称”列)
    • 您引用的示例是 6 型混合型,即 1、2、3 型。而我正在研究没有当前历史列的纯类型 6 场景。相反,他们只使用单列。此外,在此示例中,我无法理解为什么我们要更新过期记录的当前列。
    • @ShantanuGupta,我明白了。除了 Wikipedia,我在任何地方都没有看到任何称为“Pure Type 6”的东西。谨防您在 Wikipedia 上阅读的任何内容都只看表面价值。它的重点似乎是有一个不会随时间改变的代理键。
    • @ShantanuGupta 但如果您需要汇总或过滤所有版本的行,那么您需要一个在所有版本中都一致的值。这就是为什么您可能希望同时保留当前和历史属性的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    • 2012-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多