1 什么是维度
参考网址:深入解析数据仓库中的缓慢变化维
在数据仓库的DW层中,表根据用途往往会分为2个类型:FACT(事实表)和 DIM(维度表)。
举个例子,如果我们要描述一个餐饮过程:
小明 2020年4月19日下午3点20分 在 海底捞(万达广场) 吃了5道菜,每道菜的单价是4元,总价是20元。
那么这个过程在数仓中,会如此划分:
- fact:餐饮过程,单价、数量、总价
- dim:小明,餐饮时间,餐饮门店,菜名。
也就是说:
吃了多少东西,多少钱——这些属于fact;
在哪里吃、什么时候吃?这些属于dim。
下面是简单的ER图,方便大家更好的理解。
2 缓慢变化维概念介绍
3 缓慢变化维的处理方法
根据面临的不同场景,可采用的处理方法不同,因此有多种处理方法。《深入解析数据仓库中的缓慢变化维》一文讲解了多个方法,建议仔细阅读。
常见的有:
-
拉链表
在原有维度表的基础上,加两个字段:开始时间,结束时间。没结束的结束时间就设一个超级大的值。
拉链表的优点:节约存储。(但大数据环境下,这点存储也没啥。)
数据仓库-缓慢渐变维-拉链表 -
需要分别统计变化前后的数值时,增加新行,且使用代理键。
场景举例:《深入解析数据仓库中的缓慢变化维》。
生成代理键的方法:Hive 中如何生成代理键