维度设计中的慢变化技术解析
1. Type 3 变化概述
在大多数维度模式中,源数据的变化主要产生 Type 1 和 Type 2 变化。但有时这两种技术都无法满足需求。当需要用旧值或新值分析变化前后记录的所有事实时,就需要 Type 3 变化响应。
例如,在一个业务场景中,企业按客户、时间和其他维度衡量订单。高级管理层研究订单时,通常使用标准的区域分组,并且会用这些分组进行外部数据报告以及年度绩效比较。客户维度表需要记录每个客户所在的区域。随着公司发展,区域分组可能发生变化,如原来的东部区域可能细分为东北部和东南部。此时,管理层既需要用新的区域分组分析所有订单,也需要用旧的区域分组进行分析。
2. 现有技术的不足
- Type 1 响应 :可以满足用新值分析所有事实的需求,例如将“东部”区域的客户更新为“东北部”,新区域值会与所有相关事实关联。但它无法保留旧值,不能满足用旧值分析的需求。
- Type 2 响应 :每个事实与记录时的当前版本关联,旧区域值与变化前的事实关联,新值与变化后的事实关联。这既不能用新值分析历史,也不能用旧值分析变化后的事实,无法满足任何一个需求。
3. 不恰当的解决方案
设计师可能会设计一个 Type 2 解决方案,在事实表中使用维度的自然键代替代理键。理论上,这种方法允许使用维度中任何版本的变化历史进行事实分析,但会使报告变得极其困难,还可能导致结果不准确。因为事实表中的一行可能引用维度表中的多行,查询时需要用户选择合适的维度值版本,否则会导致重复计数。
超级会员免费看
订阅专栏 解锁全文
15万+

被折叠的 条评论
为什么被折叠?



