大数据项目中的拉链表(hadoop,hive)

缓慢渐变维

拉链表

拉链表,可实现数据快照,可以将历史和最新数据保存在一起

如何实现:

在原始数据增加两个新字段 起始时间(有效时间:什么时候导入的数据的时间),结束时间(默认的结束时间为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 进行数据合并

3- insert overweight 新数据覆盖导入旧数据

相关推荐
TGB-Earnest31 分钟前
【py脚本+logstash+es实现自动化检测工具】
大数据·elasticsearch·自动化
大圣数据星球3 小时前
Fluss 写入数据湖实战
大数据·设计模式·flink
suweijie7683 小时前
SpringCloudAlibaba | Sentinel从基础到进阶
java·大数据·sentinel
Data跳动8 小时前
Spark内存都消耗在哪里了?
大数据·分布式·spark
woshiabc1119 小时前
windows安装Elasticsearch及增删改查操作
大数据·elasticsearch·搜索引擎
lucky_syq9 小时前
Saprk和Flink的区别
大数据·flink
lucky_syq9 小时前
流式处理,为什么Flink比Spark Streaming好?
大数据·flink·spark
袋鼠云数栈9 小时前
深入浅出Flink CEP丨如何通过Flink SQL作业动态更新Flink CEP作业
大数据
清平乐的技术专栏10 小时前
Hive SQL 查询所有函数
hive·hadoop·sql
小白学大数据11 小时前
如何使用Selenium处理JavaScript动态加载的内容?
大数据·javascript·爬虫·selenium·测试工具