hive拉链表详解

1、背景描述

        在数据仓库中,维度表中的数据会随着时间发生变化。当我们把维度表数据同步到数仓以后,对于后续更新数据,如果直接覆盖原有数据,则历史数据丢失导致不能获取历史某个时间节点的数据指标;如果分区全量冗余存储,又会造成资源浪费;如果增量分区冗余存储,又不便于使用,对于数据分析以及业务复盘决策存在重大影响。

2、拉链表定义

        拉链表(Slowly Changing Dimension, SCD Type 2)是一种用于管理和存储数据仓库中历史数据变化的方法。在数据仓库设计中,数据可能会随时间变化,而我们需要保留这些变化的历史记录,以便能够追溯到任意时刻的数据状态。拉链表通过在数据表中添加时间戳或有效期列来实现这一目的。

3、拉链表设计形式

  1. 基于原始表结构,新增起始时间列、结束时间列、是否当前有效记录列,创建出拉链维度表;
  2. 原始数据表初次同步数据采用全量同步形式,起始时间列为原始表的创建时间或者修改时间,结束时间列为9999-12-31,是否当前有效记录为1(1代表是,0代表否);
  3. 后续采用增量同步形式,如果数据发生变更,则对拉链表的对应原始记录进行处理,处理措施是修改结束时间为新记录的更新时间,是否当前有效记录为0;并将新的变更数据追加到拉链表中,追加记录的原始字段设置为数据更新时间,结束时间列为9999-12-31,是否当前有效记录为1;       

4、拉链表实操案例

1)假

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

圣·杰克船长

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值