数据仓库之维度

变化维度

缓慢变化维度(SCD)

SCD处理方法通常有三种
scd分析web

覆盖旧记录

若是符合要求,这是最简单的处理方式闭包

添加一列

xx, yy, new_attr, old_attr
优点: 省空间,把变化先后的属性放在一块儿,能直观的反映属性的变化
劣势: 只能追溯前一次的属性,也就是只能反映属性的一次变化svg

拉链表

拉链表,极限存储,可是无需为了拉链而拉链。能用第二种方法解决就无需拉链。大部分场景都是反映最近一次的变化。
拉链表实施
拉链表更新策略
拉链表.net

混合表

就是在拉链表中不只加上start_time,end_time,还加上valid以及old_attr属性列
这样就结合了方法二和方法三的优点cdn

快速变化维度(RCD)

在这种状况下,直接能够将快速变化维度拆出来,单独作一张表。xml

参考资料

scd/rcd
参考资料htm

层级维度

层级表与打平表的讨论

层级表是经过纵向添加记录的方式来实现层级的灵活变化,打平表若是要增减层级是须要修改表结构的。
优:从这一点而言,层级表很是灵活的支持了扩展,尤为是在相似评论这种无限层级扩展的业务场景下。层级表还有一个打平表没法实现的功能,就是跨层级多选。
劣:可是层级表和事实表关联的时候,会使得数据翻倍。blog

父子层级表

闭包表与桥接表

全路径

抓换

层级表与非层级表的转化

max level递归

父子层级表转化为闭包表

父节点中有set,经过递归从叶子节点开始,每一个节点算出本身的叶子节点。get

特殊场景维度

有些维度是和交易流水耦合在一块儿,好比订单的发生的时段,就是和流水表耦合在一块儿的。

维度建模总结

转维度建模总结