当前位置:   article > 正文

数仓之拉链表实现原理_拉链表的原理和简单实现

拉链表的原理和简单实现

一、拉链表是什么?

数仓建立过程中,在有些情况下,为了保持历史的一些状态,需要用拉链表来做,这样做目的在可以保留所有状态的情况下可以节省空间。
拉链表,是记录每条记录的生命周期,通常记录中需要一个状态变化来展示,如果一个状态结束,那么就重新开始一条记录
所以,拉链表原始记录需要:
1.记录需要有 状态变化
2.记录需要有创建时间和操作时间
拉链表需要新增两个字段:状态开始时间和状态结束时间

二、适用范围

拉链表适用于,数据会发生变化,但是大部分是不变的(实际是以运算换取存储空间)
拉链表反应的是数据的变化

三、制作流程

1.图示形成过程

在这里插入图片描述

2.制作过程

建立拉链表
在这里插入图片描述

使用第一天的数据初始化拉链表
在这里插入图片描述
建立临时拉链表
在这里插入图片描述

把变化的数据和拉链表做一个计算和union all
在这里插入图片描述
最后再插入覆盖到拉链表即可
总结原理:
原理:
1.先把变化表数据拿出来,
2.union all (原表数据 left join 变化表,left join 右表如果有数据,那么就更新这条数据的end_date,没有就保持原数据不变)
3.把变化数据 union all (原数据 left join 变化数据) 覆盖到原表
4.下一次就又拿这个表来 left join 和 union all 下一次变化的数据

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/255284
推荐阅读
相关标签
  

闽ICP备14008679号