34个ETL子系统-9:缓慢变更维度处理

23 篇文章 0 订阅

缓慢变更维度(Slowly Change Dimensions  )是基于维度建模的多维数据仓库的基础。当维度表的信息发生变化时,如何更新就成为一个问题。根据Kimball的经典著作,主要有3种方法来处理。

Type 1:覆盖:直接用新值代替旧值。

Type 2:增加新行。将当前行的状态设置为off,并设置一个endtime时间戳,将当前时间标记上。

         同时新增1行,将其状态标记为on,设置begintime时间戳为上一个记录的endtime+1。

Type 3:增加新列:给表增加一个新列,来存储新值,同时保留原来的值不变。

除了上述的经典做法外,还可以通过数据分离的方式进行设计。

方式1:动静分离。新增一个维度表。将经常变化的维度从主维表分离出来,单独保存

方式2:时间拉链。将每次的变化都保存到历史表中,并且保存这个变化的类型以及变化时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值