处理星型模式中快照事实表的颗粒更改

时间:2015-04-28 19:19:47

标签: data-warehouse star-schema

问题

如何处理快照事实表中的谷物变化(从每周测量到每日测量)。

背景信息

对于星型模式设计,我想将调查结果作为一个事实(例如,在2015年第2周,80%的受访者回答'是',在第3周76%等) 这项调查每周进行一次,我只能查看调查结果(本周表示同意的人数百分比),而不是个人答复。

基于(我的解释)克里斯托弗亚当森的“星图:完整参考”我相信我应该使用快照事实表进行这类测量。

此事实的日期维度应为周级别,并且是对每天发生的其他明星中其他事实的更细粒度日期维度的符合汇总。

麻烦

现在有人决定他们每天都要进行这些调查而不是每周一次。处理这个问题的最佳方法是什么?我正在考虑的一些选项:

  • 将周维度更改为每日维度,并伪造旧事实,就像它们发生在一周的最后一天一样。
  • 将周维度更改为每日维度,并为每周一维添加7个事实。
  • 使用每日事实和维度创建一个新星,并将旧星视为聚合。

我很感激任何意见。如果我的逻辑关闭,或者我的问题不明确,请告诉我:)

1 个答案:

答案 0 :(得分:1)

我不相信这是一个快照。每个调查回复都代表一个“交易”。

使用适当的日期维度,您可以计算按周汇总的是/否百分比。

此外,这将使您能够显示“周日晚上发布的调查获得更多回复”或“周五回复的人更有可能回答'是'”等结果。 (人为的例子)

在澄清之后,这看起来像一个定期快照。银行账户余额的示例通常用于描述类似的情况。

定期快照的一个关键特征是每个维度的每个组合都应该存在。如果您的粮食是按月计算的,那么每个月您都会记录这一事实,即使它与上个月相比没有变化。

我认为这是你问题的关键。知道你的谷物可以从每周变为每天,每天制作你的谷物。它确实意味着你将在一周中的每一天重复每周价值,但这是对你对事实的了解的真实表现;星期三你只知道它的价值与周一相同。

如果您正确设计ETL,则每日更新开始时无需进行任何更改。

您的第二个选择是我在您所选择的选项。