1、设计目标
- 尽可能生成丰富维度属性
- 尽可能多给出有意义文字性描述 (xxx_id + xxx_name)
- 沉淀出通用的维度属性 (需要复杂运算得到,比如商品的三级分类名称,需要JOIN品类表得到 category3 name)
2、维度设计步骤
- 确定主维度表 (例如商品主表)
- 确定相关维表(商品相关的类目、卖家、店铺相关维表)
- 确定维度属性的整合和拆分 (详细如下)
PS. 保证核心维度模型的整洁性,防止过度运算,造成下游任务堵塞
3、维度属性的整合和拆分
维度表分 水平 和 垂直 两类
- 垂直:商品基础信息表,商品扩展信息表、商品等级表等
- 水平:淘宝商品表、天猫商品表、飞猪旅行商品表等
A. 垂直类 整合拆分 参考:
维度属性的产出时间、更新率、使用热度
拆分的话用主从维表, 主维表存 产出时间短、更新率低、使用热度高的维度属性
B. 水平类 整合拆分 参考:
不同业务的属性差异情况、关联程度
- 如果关联程度低: 一个业务一个维度表
- 有一定关联程度,也有一定差异性:定义一个主维度用来存放公共属性,同时定义多个子维度存放不同业务的特殊维度属性
- 很强关联程度,差异性也小:整合一个维表,允许存在 少量业务不一致导致数据空值