我回答面试官,说缓慢变化维有10种处理方式,他惊了

本文详细介绍了在数据仓库中处理缓慢变化维的10种方法,包括基础型(保留原始值、直接覆盖、增加新行、增加新属性列、增加微型维度)、混合型(微型维度与方式1支架表、将方式1属性增加到方式2维度、双重外键并且方式1与方式2结合)和极限型(快照维度、历史拉链维度)。这些策略旨在平衡数据的历史信息和当前状态,确保数据的准确性和完整性。
摘要由CSDN通过智能技术生成

顾名思义,缓慢变化维(Slowly Changing Dimension)就是变化相对缓慢(相对与快速变化的事实表来说)的维度。

在维度建模理论中,有8种处理方式,包括基础的5种以及混合的3种。

再加上大数据时代的2种极限型,共10种,具体如下:

1 基础型

1.1 方式0:保留原始值

维度属性值不做更改,保留原始值。

此方式什么也不做,所以称之为方式0。

  • 比如商品上架售卖时间:一个商品上架售卖后可能由于缺货下架,补充库存后又再次上架,此种情况产生了多个商品上架售卖时间。如果重点关注的是商品首次上架售卖时间,则采用方式0。
  • 比如商品所属供应商:a商品的供应渠道是某供应商,随着时间推移可能转款到b供应商(由b供应商来供货),此种情况如果关注的是原始最初供应的供应商,则采用方式0。

1.2 方式1:直接覆盖

修改维度属性为最新值,直接覆盖,不保留历史信息。

  • 比如商品属于哪个品类:当商品品类发生变化时,直接重写为新品类,如果业务只关心最新的品类。

1.3 方式2:增加新行

在维度表中增加新的一行,新行中采用新的属性值。此种方式需要借助代理键,需要为新行分配新的代理键,将其作为事实表的外键。

采用此方式,一般会在维度行中额外增加3列:行生效时间,行失效时间以及当前行标识(或者不使用当前行标识,由行失效时间来判断是否是当前行)

此方式及其变种是处理缓慢变化维的主要技术。

比如

维度属性值变化前:

商品键(代理键) 商品唯一键(自然键) 品类 行生效时间 行失效时间 当前行标识
1 SPU001 科技 2020-01-01 9999-12-31 1

维度属性值变化后:

商品键(代理键) 商品唯一键(自然键) 品类 行生效时间 行失效时间 当前行标识
1 SPU001 科技 2020-01-01 2020-01-31 0
3 SPU001 教育 2020-02-01 9999-12-31 1

1.4 方式3:增加新属性列

在维度表中增加新的一列,原先属性列存

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值