我试图了解 SCD 类型 5,6 和 7 的工作原理。
我阅读了 Kimball Group 的这篇文章和关于 Type 6 的堆栈溢出答案。
我可以理解 Type 6 的概念,它是如何工作的以及何时使用它。
但是,我仍然无法理解类型 5 和 7 的工作原理以及何时使用它们。非常感谢用示例解释类型 5 和 7。
提前致谢。
我试图了解 SCD 类型 5,6 和 7 的工作原理。
我阅读了 Kimball Group 的这篇文章和关于 Type 6 的堆栈溢出答案。
我可以理解 Type 6 的概念,它是如何工作的以及何时使用它。
但是,我仍然无法理解类型 5 和 7 的工作原理以及何时使用它们。非常感谢用示例解释类型 5 和 7。
提前致谢。
我不会太担心——类型 3 以上的所有类型在不同时间都被称为类型 6。基本上有一系列技术可以处理更复杂的历史跟踪,您可以选择适合您情况的组合。话虽如此,我将尝试从本文中提供更多关于 Type 5 和 7 的想法:
类型 5 是“迷你维度”的变体,其中大维度的某些属性可能会发生变化,但您不想执行类型 2,因为该维度有数百万行。您将这些属性分解为一个像垃圾维度一样构建的维度,您可以在事实中使用该表的键来跟踪历史记录。在类型 5 变体中,您在维度本身中包含新键作为类型 1 属性,允许您随时查询维度本身以找出这些属性的值,而无需通过 Fact。更多信息,谷歌“迷你维度金球”。
类型 7 是实现与类型 6 相同事物的不同方式,其中您将事物的类型 1 版本与事物的类型 2 版本分开维护。通常,事物的类型 1 版本是通过使用类型 2 版本的视图创建的。通过在事实中拥有这两个键,您可以查询事实发生时的情况以及基于当前版本的维度的情况。它避免了用当前状态更新旧值的需要。