数据仓库之拉链表

什么是拉链表

拉链表,记录每条信息的生命周期,一旦一条记录的生命周期结束,就要重新开始一条新的记录,并把当前日期放入生效的开始日期;
如果当前信息至今有效,在生效结束日期中填入一个极大值(一般为9999-99-99)

为什么要建立拉链表?

拉链表适合于:数据会发生变化,但是大部分是不变的;

比如:订单信息从未支付、已支付、未发货、已完成等经历了一周,大部分时间是不变化的,只有状态和状态发生时间会有更改。如果数据量有一定的规模,无法按照每日全量的方式保存。

如何使用拉链表?

通过,生效开始日期<=某个日期 且 生效结束日期>=某个日期,能够得到某个时间点的数据全量切片

  1. 拉链表数据

  2. 例如获取2019-01-01的历史切片:SELECT * FROM order_info where start_date<='2019-01-01' AND end_date>='2019-01-01'

  3. 例如获取2019-01-02的历史切片:SELECT * FROM order_info where start_date<='2019-01-02' AND end_date>='2019-01-02'

拉链表的制作过程?

订单当日全部数据和MySQL中每天变化的数据拼接在一起,形成一个新的临时拉链表数据。用临时拉链表覆盖旧的拉链表数据。

posted @   Binge-和时间做朋友  阅读(827)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示