缓慢变化维

1.缓慢变化维介绍

维度建模的数据仓库中,有一个概念叫Slowly Changing Dimensions,中文一般翻译成“缓慢变化维”,经常被简写为SCD。缓慢变化维的提出是因为在现实世界中,维度的属性并不是静态的,它会随着时间的流失发生缓慢的变化。这种随时间发生变化的维度我们一般称之为缓慢变化维,并且把处理维度表的历史变化信息的问题称为处理缓慢变化维的问题,有时也简称为处理SCD的问题。

Wikipedia中的定义:

Dimension is a termin data management and data warehousing that refers to logical groupings ofdata such as geographical location, customer information, or productinformation.

Slowly ChangingDimensions (SCD) are dimensions that have data that slowly changes.

大意是说数据会发生缓慢变化的维度就叫”缓慢变化维”。

实例说明:

人寿保险客户,有一个属性是所在城市(09年,北京),后来城市变了(10年,上海),但是统计09年销量的时候,需要把A的算在北京,而不是上海,所以要保存原来的记录

买家这个维度就属于缓慢变化的。

 

2.常见的几种解决方案

1.全覆盖,保持最新数据(keep mostrecent values in target)

即直接在原来维度的基础上进行更新,不会产生新的记录:

 更新前:

    emp_rid(代理键)  emp_id(自然键)   emp_name  position

    101212             12345            Jack     Developer

 

    更新后:

    emp_rid(代理键)  emp_id(自然键)   emp_name  position

    101212             12345           Jack      Manager

 

2.全历史记录(keep a fullhistory of changes in the target)。保存多条记录,通过字段加以区分,使其可以追溯所有的历史记录

 更新前:

    emp_rid(代理键)  emp_id(自然键)   emp_name  position  start_date   end_date

    101212            12345             Jack    Developer  2010-2-5    2012-6-12

 

    更新后:

    emp_rid(代理键)  emp_id(自然键)   emp_name  position  start_date   end_date

    201245                 12345         Jack   Manager     2012-6-12      2013-6-01

一般情况下,添加开始日期、结束日期或者添加标志字段,记录其是否有效

3.记录最新纪录及上一次历史(keep thecurrent and previous values in the target)

直接在原来维度的基础上进行更新,不会产生新的记录但是只会记录上一次的历史记录。

 更新前:

    emp_rid(代理键)  emp_id(自然键)   emp_name  position  old_position   

    101212                 12345             Jack               Developer  null

 

    更新后:

    emp_rid(代理键)  emp_id(自然键)   emp_name  position  old_position

    101212                 12345             Jack               Manager     Developer 

 

3.每种方式的优缺点

第一种方式优缺点:这样处理,最容易实现,但是没有保留历史数据,无法分析历史变化信息。

第二种方式优缺点:对于比较重要的信息,运用此方式还是很合适的,可以很好地保留历史痕迹。对于不是很重要甚至可以忽略的历史变化,运用此方法很累赘。

第三种方式优缺点:优点是可以同时分析当前及前一次变化的属性值,缺点是只保留了最后一次变化信息

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值