一、维度概念
在维度建模中,将度量称为“事实”,将环境描述为“维度”,维度是用于分析事实所需要的多样环境。维度所包含的表示维度的列,称为维度属性。
维度使用主键标识其唯一性。
代理键:不具有业务含义(一般用于处理缓慢变化维)
自然键:有业务含义(如商品ID)
二、维度设计方法
选择维度和新建维度(保证维度唯一性)
确定主维表(ods表)
确定相关维表(确定和主维表有联系的表生成维度属性)
确定维度属性
阶段一:从主维表中选择维度属性或生成新的维度属性
阶段二:从相关维表中选择维度属性或生成新的维度属性
确定属性维度的关键:
生成丰富的维度属性
属性应当是有意义的文字性描述(编码用于关联,名称是报表标签)
区分数值性属性和事实(用于约束和分组的字段是维度属性,参与度量计算的是事实)
沉淀出通用的维度属性(表关联/字段解析/字段加工【拼接/判断】)
三、维度的层次结构
维度中的描述属性以层次方式或一对多的方式相互关联。在创建事实表时,可以按照属性的层次结构向下钻取数据。
四、规范化和反规范化
雪花模型:属性层次被实例化成一系列的维度,而不是单一的维度
规范化技术(雪花模型):一个属性只存在于一张表, 删除冗余数据,可以避免数据的不一致性。(对OLTP友好,对OLAP能节约存储,但需要大量关联操作,查询性能差)
反规范化技术:将维度属性层次合并到单个维度中,更适用于统计分析,降低了分析复杂度。(用维表空间换取简明性和查询性能)。
五、一致性维度和交叉探查
交叉探查:将不同数据域某个维度的事实合并在一起进行数据探查(日志域的商品pv和交易域的商品GMV,计算转化率)。
维度一致性的表现形式:
共享维表
一致性上卷,一个维度的维度属性是另一个维度的维度属性的子集,两个维度的公共维度属性结构和内容相同。
交叉属性,两个维度具有部分相同的维度属性。