数仓建设生命周期_数仓模型之 拉链表

本文介绍了拉链表的概念,它用于记录信息的生命周期,特别是在数据变化但大部分时间保持不变的情况下,如订单状态的变更。通过拉链表,可以高效地获取特定时间点的数据全量切片。拉链表的制作过程包括将订单数据与MySQL中每日变化的数据拼接,形成临时拉链表并覆盖旧表。推荐阅读关于Hive拉链表实践及实时数仓建设的相关内容。
摘要由CSDN通过智能技术生成
4af542739d23f46f462c840e127e96d7.png正文

Q1

什么拉链表?

拉链表,记录每条信息的生命周期,一旦一条记录的生命周期结束,就要重新开始一条新的记录,并把当前日期放入生效的开始日期;

如果当前信息至今有效,在生效结束日期中填入一个极大值(一般为9999-99-99)

39d1ce41bbc36c94b41baa3d6c5da252.png

Q2

为什么要建立拉链表?

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

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

3353ae3e07b5ca8227794fa0624c3162.png

Q3

如何使用拉链表?

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

1.拉链表数据

6b0034bb7e5e4464f0c58a0589670c10.png

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

77d1e63e9a0b2e102f0571051ebd5004.png

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

83eeae4ee453035522624f8c2ec1882a.png

Q4

拉链表的制作过程?

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

d50f1d92537ee3701c8586ae897b1dd0.png 2094ac9e89805f7a2a748476fea5491e.png

如果感觉文章有用,记得分享给你的朋友哦

(在看也是鼓励!)

相关推荐

32cace2ff2a80f1b3efa5c65d720f295.png

Hive 拉链表实践

39ec70060d0efb9daa93b7576ad3a915.png

系列 | 数仓实践第三篇NO.3『拉链表』

573526d398c7ccc7c8f3fdbd5b814f1c.png

建设实时数仓之前的思考与方案

9cf5b3c58d2c73c2f58264e45a3802ce.png

关注不迷路~ 各种干货、资源定期分享

2b56ea717bf5926bb01c4bafe17e766f.gif戳原文,升职加薪!        你也「 在看 」吗?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值