维度设计之维度设计基础

基本概念:
1)维度:描述业务的角度、环境

2)属性:描述维度的列,一般用于查询约束、分类汇总

3)事实:即度量

4)维度使用主键标识,主键分两种:代理键和自然键

① 代理键:无业务意义,如自增ID

② 自然键:具有业务意义,如商品ID

基本方法:
维度设计的过程就是确定维度属性的过程,一般流程如下:

1)确定维度,具备唯一性

2)确定主维表,确定描述维度的主表

3)确定相关表,根据业务之间的关联性,确定维度的相关表

4)确定维度属性:包含两个阶段,第一个阶段从主维表中选择维度属性,第二阶段从相关维表中选择维度属性。确定维度有以下原则:

① 尽可能丰富的维度属性,为下游分析、统计提供良好的基础

② 维度属性提供编码+文字的描述,编码用于表关联,文字表示真正的标签

③ 沉淀出通用的维度属性,一来减少下游使用的复杂度,二来避免下游口径不一致

层次结构:
1)维度中有些属性以层次的方式相互关联

维度设计之维度设计基础
2)层次结构的属性常用于数据钻取
维度设计之维度设计基础
规范化与非规范化:
1)把属性层次实例化成一系列维度,而不是单一维度,被称为雪花模型。大多数OLTP系统采用这种方法规范化数据,将重复属性移至自身表中,删除数据冗余

  1. 将维度属性层次合并到单个维度中称为反规范化,主要用于数据分析。用存储空间换取查询性能
    维度一致性与交叉探索:
    1)有些场景需要将不同数据域的事实数据合并在一起进行查询,称为交叉查询

2)为了确保交叉查询中数据的维度格式一致性、内容一致性,采用共享维表的方式,建立唯一的公共维表