kettle学习之--缓慢变化维度(SCD)

我们在ETL的过程中就要考虑到缓慢变化维度的处理。对于缓慢变化维度,有三种情况:

1.缓慢变化维度的第一种类型:历史数据需要修改。这种情况下,我们使用update方法来修改表中的数据。例如:产品的id为123后来发现id错了,需要改写为456,那么我们就在ETL处理时直接修改维度表为456.这种情况我们使用插入更新控件就可以。

2.缓慢变化维度第二种类型:历史数据保留,新增数据也要保留。这时,要将元数据更新,将新数据插入,我们使用数据仓库中的维度查询更新控件。例如某一员工2005年在A部门,2006年掉到了B部门。那么在统计2005年的数据的时候就应该将员工定位到A部门在统计2006年的数据的时候就应该定位到B部门,然后再有新的数据插入时,将按照新部门处理,这样的做法时将该维度成员列表打上时间戳,即将历史数据生效的时间段作为它的一个属性,再与原始表匹配生成事实表时将按照时间段进行关联,这种方法的好处时该维度成员生效时间明确。

3.缓慢变化维度第三种类型:新增数据维度成员改变了属性。例如:某一维度成员新加入了一列,该列在历史数据中不能基于它浏览,而在目前数据和将来数据中可以按照它浏览,那么此时我们需要改变维度表属性,即假如新的字段列。那么我们将使用存储过程或程序生成新的维度属性,在后续的数据中将基于新的属性进行查看。这种类型,我们只保留两个,最新的和上一条记录。

猜你喜欢

转载自blog.csdn.net/qq_37050372/article/details/81557308