谈笑间学会数仓—维度层设计③
缓慢变化维
数据仓库的重要特点之一是反映历史变化,所以如何处理维度的变化是维度设计的重要工作之一。缓慢变化维的提出是因为在现实世界中,维度的属性并不是静态的,它会随着时间的流逝发生缓慢的变化。与数据增长较为快速的事实表相比,维度变化相对缓慢。
在一些情况下,保留历史数据没有什么分析价值;而在另外一些情况下,保留历史数据将会起到至关重要的作用。在Kimball的理论中,有三种处理缓慢变化维的方式,下面通过简单的实例进行说明。
第一种处理方式:重写维度值
采用此种方式,不保留历史数据,始终取最新数据。比如,商品所属的类目于2015年11月16日由类目1变成了类目2,采用第一种处理方式,变化前后的数据记录分别为下表所示:
第二种处理方式:插入新的维度行
采用此种方式,保留历史数据,维度值变化前的事实和过去的维度值关联,维度值变化后的事实和当前的维度值关联。同上面的例子,采用第二种处理方式,变化前的数据记录同表10.4,变化后的数据记录如表10.6所示。