缓慢渐变维
拉链表
拉链表,可实现数据快照,可以将历史和最新数据保存在一起
如何实现:
在原始数据增加两个新字段 起始时间(有效时间:什么时候导入的数据的时间),结束时间(默认的结束时间为9999-99-99)
处理时间是处理昨天的数据 因为是今天处理昨天的时间 有效结束时间应该是昨天
如果有效时间为9999-99-99 说明当前数据为最新数据
数据导入数据仓中拉链表的流程:
首先需要使用where 条件过滤 查询哪些是新数据
接下来需要把新数据的拉链表与之前数仓中的拉链表进行结合
1- 先进行左关联(left join)
数据有变化会显示新数据,没有则显示null 数据没有变化
操作指令: select if(表名.字段 is null,结束时间,现在时间-1) as end_time
from 旧表名 left join 新表名 ;
2- left join 进行 union 操作
union all 进行数据合并