迷你维度和日期时间
Mini-dimension and DateTime
我正在设计我的第一个 DWH 系统,并将 运行 放入一个我在任何 books/articles 中都找不到的用例中。
假设我有以下维度:
- 学生
- 主题
我有一个事实table:
- 评分
名为 Student
的维度是我遇到的问题。它包含所有被认为是常量且不可更新的基本信息列。但是,我有 4 列描述学生的当前住所:地址、城镇、传真号码和国家/地区。这些很容易发生变化。
在我分析如何解决这个问题时,我非常依赖 Kimball Group 的文章,我知道可以通过使用 缓慢变化的尺寸类型 5 来解决 - 通过添加一个迷你-维度到 Student
维度。
这一切对我来说都很有意义,但是,这是让我完全困惑的部分:None 我能够掌握的例子有 DateTime
在他们的迷你维度中。
如果我没理解错的话,我们需要能够随着时间的推移跟踪迷你维度记录的变化,所以记录一个简单的变化(没有 DT)不会削减它,对吧?
有人可以帮助我更好地理解这一点吗?按照书上的说法,mini-dimension可以包含DT吗?
P.S。我本以为会有类似 Type 6 的东西,但没有历史专栏。
您是否考虑过将学生维度的动态属性移动到带有时间戳的支腿中(也许桥-table 会起作用)?或者您可以简单地使用类型 2 缓慢变化的维度,当属性实例值发生变化时,您将新行添加到学生维度 table。希望这有帮助。
如果我没看错(“类型 5”对我来说是新的),他们称它为类型 5,因为它是类型 4 + 类型 1。这给了我们:
类型 4,一个星型模式,包括“基本”维度(学生)和一个迷你维度(称为住宅)。这些维度与事实相关 table,但彼此无关。
类型 5,您仍然有两个维度,但是现在您将(住宅)迷你维度的键添加到“基本”维度(学生)......并且您将其视为类型 1 中的任何其他事实缓慢变化的维度,因为数据在变化时是 replaced/overwritten。类型 1 维度不记录数据已更改,因此不跟踪数据何时更改,因此 旧值丢失。
Where/how 时间因素似乎取决于您的建模内容。如果 Time 是事实 table(s) 的一部分,对于类型 4,可以通过连接找到 Student 在选择给定 Subject 时的当前住所。尴尬,但也许足够了?如果你需要知道学生在选修科目时的住所,类型 2 缓慢变化的维度强烈建议自己。如果住所很少是一个因素,那么从 Student with Residence 和 StudentResidence 查询 table 中分离出来可能会被接受table.
(如果我们在这里谈论宿舍,你的住所 table 可能不会太大——但传真号码真的让我失望。传真在世纪之交有点陈旧,什么student/educational 这些天系统需要它们吗?)
我正在设计我的第一个 DWH 系统,并将 运行 放入一个我在任何 books/articles 中都找不到的用例中。
假设我有以下维度:
- 学生
- 主题
我有一个事实table:
- 评分
名为 Student
的维度是我遇到的问题。它包含所有被认为是常量且不可更新的基本信息列。但是,我有 4 列描述学生的当前住所:地址、城镇、传真号码和国家/地区。这些很容易发生变化。
在我分析如何解决这个问题时,我非常依赖 Kimball Group 的文章,我知道可以通过使用 缓慢变化的尺寸类型 5 来解决 - 通过添加一个迷你-维度到 Student
维度。
这一切对我来说都很有意义,但是,这是让我完全困惑的部分:None 我能够掌握的例子有 DateTime
在他们的迷你维度中。
如果我没理解错的话,我们需要能够随着时间的推移跟踪迷你维度记录的变化,所以记录一个简单的变化(没有 DT)不会削减它,对吧?
有人可以帮助我更好地理解这一点吗?按照书上的说法,mini-dimension可以包含DT吗?
P.S。我本以为会有类似 Type 6 的东西,但没有历史专栏。
您是否考虑过将学生维度的动态属性移动到带有时间戳的支腿中(也许桥-table 会起作用)?或者您可以简单地使用类型 2 缓慢变化的维度,当属性实例值发生变化时,您将新行添加到学生维度 table。希望这有帮助。
如果我没看错(“类型 5”对我来说是新的),他们称它为类型 5,因为它是类型 4 + 类型 1。这给了我们:
类型 4,一个星型模式,包括“基本”维度(学生)和一个迷你维度(称为住宅)。这些维度与事实相关 table,但彼此无关。
类型 5,您仍然有两个维度,但是现在您将(住宅)迷你维度的键添加到“基本”维度(学生)......并且您将其视为类型 1 中的任何其他事实缓慢变化的维度,因为数据在变化时是 replaced/overwritten。类型 1 维度不记录数据已更改,因此不跟踪数据何时更改,因此 旧值丢失。
Where/how 时间因素似乎取决于您的建模内容。如果 Time 是事实 table(s) 的一部分,对于类型 4,可以通过连接找到 Student 在选择给定 Subject 时的当前住所。尴尬,但也许足够了?如果你需要知道学生在选修科目时的住所,类型 2 缓慢变化的维度强烈建议自己。如果住所很少是一个因素,那么从 Student with Residence 和 StudentResidence 查询 table 中分离出来可能会被接受table.
(如果我们在这里谈论宿舍,你的住所 table 可能不会太大——但传真号码真的让我失望。传真在世纪之交有点陈旧,什么student/educational 这些天系统需要它们吗?)