大数据之数仓--DW--Hadoop数仓实践Case-08-退化维度

退化维度是简化数据仓库模式的技术,常见于事务和累积快照事实表。本文介绍了退化订单维度的概念,指出在识别数据后,可通过将订单号迁移至事实表来实现退化。在数仓建模设计前规划好退化维度,避免中途更改带来的高成本。并提供了维度退化的四个步骤及修改定期装载脚本的示例。
摘要由CSDN通过智能技术生成

退化维度概述

  • 退化维度,该技术减少维度的数量, 简化维度数据仓库模式。 简单的模式比复杂的更容易理解, 也有更好的查询性能。
  • 有时, 维度表中除了业务主键外没有其他内容。 例如, 在我们的销售订单示例中, 订单维度表除了订单号, 没有任何其他属性, 而订单号是事务表的主键。 我们将这种维度称为退化维度。 业务系统中的主键通常是不允许修改的。 销售订单只能新增, 不能修改已经存在的订单号, 也不会删除订单记录。 因此订单维度表也不会有历史数据版本问题。 退化维度常见于事务和累积快照事实表中。
  • 销售订单事实表中的每行记录都包括作为退化维度的订单号代理键。 在操作型系统中, 销售订单表是最细节事务表, 订单号是订单表的主键, 每条订单都可以通过订单号定位, 订单中的其他属性, 如客户、 产品等, 都依赖于订单号。 也就是说,订单号把与订单属性有关的表联系起来。 但是, 在维度模型中, 事实表中的订单号代理键通常与订单属性的其他表没有关联。 可以将订单事实表所有关心的属性分类到不同的维度中, 例如, 订单日期关联到日期维度, 客户关联到客户维度等。 在事实表中保留订单号最主要的原因是用于连接数据仓库与操作型系统, 它也可以起到事实表主键的作用。 某些情况下, 可能会有一个或两个属性仍然属于订单而不属于其他维度。 当然, 此时订单维度就不再是退化维度了。
  • 退化维度通常被保留作为操作型事务的标识符。 实际上可以将订单号作为一个属性加入到事实表中。 这样订单维度就没有数据仓库需要的任何数据, 此时就可以退化订单维度。 需要把退化维度的相关数据迁移到事实表中, 然后删除退化的维度。
  • 注意, 操作型事务中的控制号码, 例如, 订单号码、 发票号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值