数仓
- 一、数据更新检查
- 二、更新目标表
- 三、更新中间表
在数仓建设过程中,经常会遇到上游数据变动,进而更新下游目标表的情况,这个时候只需要根据主键update/insert即可,但也会遇到某些特殊情况,比如说下游update数据库后,还要update缓存中的数据,这时候为了提高效率,必须采取增量更新且数据更新为0条的情况不进行更新,也不执行update操作,也就是说update语句不能一直放在加工流程里面,本文探讨了在数据库层面如何实现这个需求
- 新增一张中间表,表字段为表名(下游待更新表名)、下游待更新表的主键、变动时间,比如三个字段分别为table_name、primary_key、update_time
一、数据更新检查
- 判断数据是否更新,用源表和中间表做判断
eg:
select count(1)from source_table aleft join (</