0x00 前言
本文会分享数据仓库中和缓慢变化维度相关的内容。在看之前建议回顾一下和维度建模相关的知识点,可参考这篇博客:《漫谈数据仓库之维度建模》。
为什么会分享这个听起来很奇怪的东西?因为站在的笔者的视角中,只要是做数据仓库的小伙伴们,在工作中基本上都会接触和维度建模相关的内容,而谈到维度建模,就少不了会和维度表打交道。我们要谈的就是维度表相关的知识点。
在正式开始之前,先解释一下什么是缓慢变化维度。笔者个人理解,缓慢变化维度其实就是指在维度表中那些会随着时间变化的字段,比如用户基本资料。
注:缓慢是一个相对的概念。与缓慢变化的纬度相比,数据增长快速是事实表
0x01 什么是SCD?
SCD(Slowly Changing Dimensions),中文一般翻译成“缓慢变化维”。
缓慢变化维的提出是因为在现实世界中,维度的属性并不是静态的,它会随着时间的流失发生缓慢的变化。这种随时间发生变化的维度我们一般称之为缓慢变化维,并且把处理维度表的历史变化信息的问题称为处理缓慢变化维的问题,有时也简称为处理SCD的问题。
0x02 如何处理SCD问题
在《数据仓库工具箱》这本书中一共列举了5中基础缓慢变化维类型和3种混合缓慢变化维类型。
鉴于知识储备有限,在此只分析一下笔者熟悉的4种类型。
TYPE 0:保留原始值
此类型唯独属性值绝不会变化,因此事