数据仓库之维度建模

维度模型数据分析作为出发点,不遵循三范式,故数据存在一定的冗余。维度模型面向业务,将业务用事实表(SalesOrder:业务事实——下单记录、支付记录、加入购物车记录…)和维度表业务事实的描述信息——何人何时何地)呈现出来。表结构简单,故查询简单,查询效率较高。

第一范式属性不可切割
数据仓库之维度建模_第1张图片
第二范式:不存在部分函数依赖
数据仓库之维度建模_第2张图片
第三范式:不存在传递函数依赖
数据仓库之维度建模_第3张图片
一个典型的维度建模一般需要经过如下几个步骤:

  1. 业务调研:调研需要建模的业务形态,划分基本的业务线/数据域
  2. 层次设计:定义数仓层级,保证各层级之间职责明确,划分清晰
  3. 规范设计:定义数仓中表/字段的命名规范,建立统一的指标体系 ;
  4. 事实表设计:根据单一/复合业务过程确定事实表主题确定最小粒度
  5. 维度表设计:根据业务确定实体,补充实体属性字段

维度建模应该符合以下几个规范:

  1. 高内聚,低耦合:从业务流程数据访问特性两个角度考虑,针对业务粒度相近,业务流程相近的数据应该放在同一个表中(例如广告数仓中通常会把广告的点击/曝光/转化多个业务过程数据放在同一个宽表中),针对经常要在同一个场景下访问的数据,也应该放在同一个表内
  2. 公共处理逻辑下沉和单一:公用的逻辑应该封装在底层表中,避免公用逻辑直接暴露给上层,同一个公共逻辑需要收敛,避免在多个地方同时存在。
  3. 适当冗余:考虑到mr/rdd计算框架下join运算的资源损耗,可以通过适当冗余字段处理减少join操作。
  4. 命名一致/可理解同一个业务含义的字段命名必须相同,且直观可读。

维度建模的基础上又分为三种模型:星型模型雪花模型星座模型

雪花模型与星型模型的区别主要在于维度的层数标准的星型模型维度只有一层。而雪花模型可能会涉及多级
数据仓库之维度建模_第4张图片

星座模型与前两种的区别事实表的数量星座模型是基于多个事实表
数据仓库之维度建模_第5张图片

你可能感兴趣的:(大数据面试,数据仓库)