通过示例了解缓慢变化的维度 (SCD) 类型 5 和 7

Ash*_*Ash 4 data-warehouse dimensional-modeling scd

我试图了解 SCD 类型 5,6 和 7 的工作原理。

我阅读了 Kimball Group 的这篇文章和关于类型 6 的堆栈溢出答案。

我可以理解 Type 6 的概念、它是如何工作的以及何时使用它。

但是,我仍然无法理解类型 5 和 7 的工作原理以及何时使用它们。高度赞赏用示例对类型 5 和 7 的解释。

提前致谢。

Ric*_*ich 6

我不会太担心 - 类型 3 以上的所有类型在不同时间都被称为类型 6。基本上有一系列技术可以处理更复杂的历史跟踪,您可以选择适合您情况的组合。话虽如此,我将尝试从本文中更多地了解类型 5 和类型 7:

设计技巧 #152 缓慢变化的维度类型 0、4、5、6 和 7

  • 类型 5 是“迷你维度”的变体,其中大维度的某些属性可能会发生变化,但您不想执行类型 2,因为该维度有数百万行。您可以将这些属性分解为一个像垃圾维度一样构建的维度,您可以使用该表的键来跟踪历史记录。在类型 5 变体中,您将新键作为类型 1 属性包含在维度本身中,允许您随时查询维度本身以找出这些属性的值,而无需通过 Fact。欲了解更多信息,请谷歌“迷你维度金球”。

  • 类型 7 是实现与类型 6 相同事物的不同方式,其中您将事物的类型 1 版本与事物的类型 2 版本分开维护。通常,事物的类型 1 版本是通过使用类型 2 版本的视图创建的。通过拥有事实中的两个键,您可以查询事实发生时的情况以及基于当前版本的维度的情况。它避免了使用当前状态更新旧值的需要。