关于缓慢变化维的使用 ,求举例讲解?

0
没接触过项目,求一份具体项目中缓慢变化维的使用举例讲解
已邀请:
6

andrea_zhou - 咨询顾问、BA 2013-07-15 回答

建模的过程中,经常会遇到Slowly Changing Dimensions,缓慢变化维,或称为渐变维,SCD。
实际的业务环境里,维度的属性并不是静态不变的,它会随着时间的发展发生缓慢的变化。打个最通用的比喻,销售人员维度,部门作为其一个属性,但是人员会换部门的,那么这个字段就会在业务系统中被刷,如果销售员甲在2013年3月从销售一部转到销售二部,那么他自身的业绩归属到部门的统计,通常会有不同的口径需求。
处理渐变维有几种方式,已被理论化。
方式一:直接用最新值,覆盖就有值。等于是忽略了历史的变化。拿上面销售人员的例子来说,销售员甲2013年3月以前的业绩,也会归入到销售二部。
方式二:记录历史,以有效期起和止来标示当前有效。这样的情况下,需要结合代理键,因为一个维度成员,会有若干行记录,这种情况下,表结构可以类似于:
KEY, CODE, NAME, 有效期起, 有效期止, 当前有效?
这种情况下,可以将上例中销售员甲的转部门前的业绩归入到其当时归属的部门。
方式三:记录当前和最近几次的历史,这种处理方式实际上很少使用。
另外,还会有一些非主流的处理方式,譬如不覆盖,或者说1、2、3方式结合,成为TYPE 6的,等等。
实际的处理,需要理论结合实际,实际,指的是客户的需求和工具的支持度。
客户如果能接受覆盖,这是最容易处理的方式。
否则,就要调研关注变化的属性。
ETL工具中,有些可以支持从源系统表生成TYPE 2的组件,但是用起来好像也不是太好用。
3

BIWORK - 热衷于微软BI技术,技术架构和解决方案! 2013-12-09 回答

我的这篇文章里讲解了 SCD 的理论知识
http://www.cnblogs.com/biwork/p/3371338.html

在这篇文章里讲解了具体如何在微软 SSIS 工具中实现 SCD 的总结
http://www.cnblogs.com/biwork/p/3371338.html
0

housheng33 - 专注金融BI http://blog.csdn.net/housheng33 2014-04-11 回答

方式二:记录历史,以有效期起和止来标示当前有效。这样的情况下,需要结合代理键,因为一个维度成员,会有若干行记录,这种情况下,表结构可以类似于:
KEY, CODE, NAME, 有效期起, 有效期止, 当前有效?
这种情况下,可以将上例中销售员甲的转部门前的业绩归入到其当时归属的部门。


这种用得挺多的~

这个时间拉链的算法,你可以找找~~~

要回复问题请先登录注册