1.定义:
维度表包含与业务过程度量事件有关的文本环境,即事件的5W1H:When,Where,Who, What,Why,How
tips:避免在维度属性中使用空值(但这里注意空值NULL不关联,但空串字符会关联);事实表不同,事实表的度量可以为空,但外键不能存在空值,否则违背了参照完整性。
2.一些关于维度的处理:
1)退化维:
一般来说事实表中的外键都对应一个维表,维的信息主要存放在维表中;但是退化维仅仅是事实表中的一列,这个维的相关信息都在这一 列中,没有维表与之相关联。比如:发票号,序列号等等。退化维具有普通维上卷、切片的各种操作。若发票号下有众多明细项,退化维是表示母子订单发票号的双亲关系唯一标识符,可识别哪些属于同一订单,这时退化维可用于分组键。
2)非规范化扁平维度:
非规范化的多对一固定深度层次(类似商品->品牌->类别树状多对一关系),将多层次维度打开为多个扁平的维度属性。以易用为主,不需要省空间而单独建层次的维度表。
3)多层次维度:
与上面的多对一不同,这里指的是维度包含不只一个层次,如日历可以按财务周期划分为天到周;也可以从天到月到年。
4)杂项维度:
即建立单独的维度表将不同维度合并到一起,是一种事务概要型维度。不需要列出所有可能的笛卡尔积,但至少包含实际发生的可能情况。
5)支架维度:
就是维度表上还有维度外键的雪花模式,尽量少用。
3.缓慢变化维:
1)类型0:原样保留
原始值,无变化的
2)类型1:重写
只看当前值,不考虑历史
3)类型2:增加新行
拉链表的处理方式,三个额外列:生效时间、失效时间、当前行标志。
4)类型3:增加新属性--类似2019旧属性,2020新属性
可以考虑当前值,以及先前属性值
5)类型4:增加微型维度
处理频繁变化的维度属性,如人口属性。即将年龄、购买频繁度、收入水平等转换成离散的范围值组成新的维度以适应变化,在逻辑层还是可以展开码值使用。
有两种场景不适合微型维度:数据挖掘分析、有分析离散值的需求