1

我正在设计我的第一个 DWH 系统,并且遇到了一个我在任何书籍/文章中都没有找到的用例。

假设我有以下维度:

  • 学生
  • 主题

我有一个单一的事实表:

  • 等级

所谓的维度Student是我遇到的问题。它包含所有被认为是恒定且不可更新的基本信息列。但是,我有 4 列描述学生的当前居住地:地址、城镇、传真号码和国家/地区。这些很容易改变。

在我分析如何解决这个问题的过程中,我非常依赖 Kimball Group 的文章,我明白可以通过使用缓慢变化的维度类型 5来解决这个问题- 通过向维度添加一个迷你Student维度。

这一切对我来说都很有意义,然而,这是让我完全困惑的部分:我能够掌握的示例都没有DateTime在他们的小维度中。

如果我理解正确的话,我们需要能够随着时间的推移跟踪小维度记录的变化,所以记录一个简单的变化(没有 DT)不会削减它,对吧?

有人可以帮助我更好地理解这一点吗?从书上看,迷你维度可以包含 DT 吗?

PS我本来期望像Type 6这样的东西,但没有历史专栏。

4

2 回答 2

2

如果我正确地遵循它(“类型 5”对我来说是新的),他们称之为类型 5,因为它是类型 4 + 类型 1。这给了我们:

类型 4,星型模式,包括“基本”维度(学生)和迷你维度(称为住宅)。这些维度与事实表相关,但彼此不相关。

类型 5,您仍然拥有两个维度,但现在您将(住宅)迷你维度的键添加到“基本”维度(学生)......并且您将其视为类型 1 缓慢变化维度中的任何其他事实,在数据在更改时被替换/覆盖。类型 1 维度不记录数据发生变化,因此不跟踪数据何时发生变化,因此旧值丢失

在哪里/如何考虑时间似乎取决于您要建模的内容。如果时间是事实表的一部分,则类型 4 可以通过连接找到学生在接受给定主题时的当前居住地。尴尬,但也许足够了?如果您需要知道学生在学习科目时所在的居住地,类型 2 缓慢变化的维度强烈建议他们自己。如果 Residence 很少是一个因素,则可以接受 Student with Residence 和 StudentResidence 查找表的雪花。

(如果我们在这里谈论宿舍,您的宿舍表可能不会太大 - 但传真号码真的让我失望。传真在世纪之交有点旧,现在什么样的学生/教育系统需要它们? )

于 2017-07-13T21:24:24.380 回答
1

您是否考虑过将学生维度的动态属性移动到提供时间戳的支腿中(也许桥表可以工作)?或者,您可以简单地使用类型 2 渐变维度,当属性实例值发生更改时,您可以将新行添加到学生维度表中。希望这可以帮助。

于 2017-07-13T20:39:32.037 回答