缓慢变化维和退化维

1、缓慢变化维

基础型

一、覆盖

属性值被新值覆盖。

这种情况只反映最新的情况,易实现,但破坏了历史情况,需小心使用

二、增加新行

在维度表中增加新行,这种情况最少需要增加俩个额外列,1.行生效时间 2.行失效时间 

举例:

id名称数据生效开始时间数据生效结束时间
1212大大大大肉包2022080220220809
1212回血大肉包2022080999999999

如果为了方便使用 可以加一列  当前行标识

三、增加新列

在维度表中增加新列,新列中增加历史名称。

id现用名称历史名称
1212辉血大肉包大大大大肉包

但是这样的形式不方便进行拓展,如果第三次修改的话又要修改表结构,或者丢掉部分数据。

数仓方式

维度快照

按时间分区,每个分区保存一份维度快照,在大数据背景下,如果存储成本大于计算成本,可以以空间换时间。

2、退化维

维度属性也可以存储到事实表中,这种存储到事实表中的维度列被称为“退化维度”

例如: 订单表中有skuid,在日常分析可能会用到 sku的属性如:商品一级品类、商品二级品类等等,我们需要关联sku的维表

这时候方便分析,我们可以直接将商品的属性存到订单表中。

订单id,这种量级很大的维度,没必要用一张维度表来进行存储,而我们进行数据查询或者数据过滤的时候又非常需要,所以这种就冗余在事实表里面,这种就叫退化维度,citycode这种我们也会冗余在事实表里面,但是它有对应的维度表,所以它不是退化维度。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值