数据仓库之维度建模

本文介绍了维度建模在数据分析中的应用,强调其不遵循数据库三范式以提高查询效率。维度建模包括业务调研、层次设计、规范设计、事实表和维度表设计等步骤。维度模型分为星型、雪花型和星座型,其中雪花模型具有多层维度,而星座模型包含多个事实表。在建模时,应注意高内聚、低耦合、适当冗余和统一命名规范。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

第一范式属性不可切割
在这里插入图片描述
第二范式:不存在部分函数依赖
在这里插入图片描述
第三范式:不存在传递函数依赖
在这里插入图片描述
一个典型的维度建模一般需要经过如下几个步骤:

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

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

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

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

雪花模型与星型模型的区别主要在于维度的层数标准的星型模型维度只有一层。而雪花模型可能会涉及多级
在这里插入图片描述

星座模型与前两种的区别事实表的数量星座模型是基于多个事实表
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值