在数据仓库中,我希望有一个事实表来跟踪大学申请的某些指标(例如标准化考试的平均分数)以及一年中不同时间的申请状态。为简单起见,假设给定的应用程序通过 3 个状态进行:
- 新的
- 被评估
- 已评估
这些状态会随着时间而改变。
我相信我想在这里使用一个缓慢变化的维度,但我不知道如何才能正常工作。
有人可以给我一个事实表和维度表的例子,它在两个应用程序通过这些状态时跟踪它们?
我正在使用 SQL Server 分析服务 2005。
目标是能够对每个州的申请数量进行逐年分析。
在数据仓库中,我希望有一个事实表来跟踪大学申请的某些指标(例如标准化考试的平均分数)以及一年中不同时间的申请状态。为简单起见,假设给定的应用程序通过 3 个状态进行:
这些状态会随着时间而改变。
我相信我想在这里使用一个缓慢变化的维度,但我不知道如何才能正常工作。
有人可以给我一个事实表和维度表的例子,它在两个应用程序通过这些状态时跟踪它们?
我正在使用 SQL Server 分析服务 2005。
目标是能够对每个州的申请数量进行逐年分析。
这听起来像是一个经典示例,说明您将使用累积快照类型的事实表而不是缓慢变化的维度。当您希望能够通过管道分析应用程序的进度时,累积快照是对具有已定义生命周期的业务流程进行建模的标准方法。
谷歌“累积快照”事实表,你会发现很多关于它们用法的好文章,但这里有一篇你可能会觉得有帮助。 http://blog.oaktonsoftware.com/2007/03/accumulating-snapshot-use-accumulating.html
我们在 SQLServerPedia 上有几篇关于慢慢改变维度的文章:
http://sqlserverpedia.com/wiki/SSIS_-_Slowly_Changing_Dimension_Wizard
http://sqlserverpedia.com/wiki/Data_Warehousing__-_Slowly_Changing_Dimensions
这些可能会帮助您加快速度。
你的问题提到了标准化考试成绩和评估状态。当然,那将是你的两个维度,以及无所不在的时间。Ralph Kimball 有一个很好的时间维度的例子。如果您的考试分数维度是 SAT,它将有 2400-700 = 1700 行,因为您在签名时获得 700 分,并且三个部分的满分均为 800。正如您所描述的,您的评估维度可能是三行。
因此,每次分数或评估发生变化时,您的事实表中都会有一条记录,并带有时间维度的键来告诉您更改发生的时间。