数据仓库中如何设计一张拉链表?

提问者:帅平 问题分类:大数据
数据仓库中如何设计一张拉链表?
2 个回答
帅平
帅平 提问者
拉链表的核心设计主要有:

1、info
2、start_time
3、end_time

这里的info主要是快照信息,可以是1个字段,也可以是多个字段。
这3个要素里面的核心主要是:start_time和end_time,这里给一张示例图:

上图里面的链表我们使用user_id和nickname构成info,如果信息有效,那么我们就查询end_time=9999/1/1的数据,如果查看历史快照的话则查询start_time和endtime区间的数据。
发布于:4个月前 (12-26) IP属地:四川省
帅平
帅平提问者
这里记录一个网上的拉链表案例,如下图:

关于上图的拉链表的说明如下:
t_start_date表示该条记录的生命周期开始时间,t_end_date表示该条记录的生命周期结束时间。
t_end_date = '9999-12-31'表示该条记录目前处于有效状态。
如果查询当前所有有效的记录,则select * from user where t_end_date = '9999-12-31'。
如果查询2017-01-02的历史快照,则select * from user where t_start_date <= '2017-01-02' and t_end_date >= '2017-01-02'。
发布于:4个月前 (12-26) IP属地:四川省
我来回答