kimball维度建模(3)-维度表技术基础

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:增加微型维度

处理频繁变化的维度属性,如人口属性。即将年龄、购买频繁度、收入水平等转换成离散的范围值组成新的维度以适应变化,在逻辑层还是可以展开码值使用。

有两种场景不适合微型维度:数据挖掘分析、有分析离散值的需求

原文地址:https://www.cnblogs.com/foolangirl/p/13950450.html