我们在ETL的过程中,就要考虑到缓慢变化维度的处理,对于缓慢变化维度,有三种情况
一:缓慢变化维度第一种类型:历史数据需要修改,这种情况下,我们使用update方法来修改维度表中的数据,例如:产品的ID号码为123 ,后来发现ID号错了,需要改成456,那么我们就在ETL处理时,直接修改维度表中原来的ID号码为456
图片.png
二:缓慢变化维度第二种类型:历史数据保留,新增数据也要保留。这时,要将原来数据更新,将新数据插入,我们使用update/insert.
比如: 某一员工2005年在A部门,2006又被调到了B部门,那么统计2005年的数据就应该将该员工定位到A部门;而在统计2006年数据时,就是应该定位到B部门。然后在新的数据插入时,建按照新部门(B部门)进行处理。这样我们的做法是将该维度成员列表加入标识列,将历史的数据标识为‘过期’,将目前的数据标书为‘当前的’,另一种方法是将该维度上打上时间戳,即使历史数据生效的时间段作为它的一个属性,在与原始表匹配生成事实表时 按照时间段进行关联,这种方法的好处是该维度成员生效时间明确。
图片.png
注意维度信息,只保留当前,和当前上一条的维度信息,其他不保留
链接:https://www.jianshu.com/p/b61f7938a546
来源:简书