本文主要介绍源表为多表关联时,增量数据同步的情况。
一、数据同步情况说明
将源数据库S中的A表(将此表称为源表A)以及B表(将此表称为源表B)进行关联,通过ETL工具同步至目标数据库T的C表(将此表称为目标表C)。表结构如下图所示:

采用时间戳的方式进行增量数据同步,需要目标数据库T中建立一张数据同步日志表LOG,来记录每次数据同步的情况。
表结构如下图所示:

其中,BM字段保存的是源表的表名(字段值为A或B),同时KSSJ、JSSJ字段为保存的值为BM字段值对应的源表(A或B)中每次数据同步时,根据其表(A或B)的ZHXGSJ字段进行数据过滤的字段值。
二、增量数据同步过程
1、结合源表的数据结构并确认所有源表的时间戳字段(A和B表的增量字段都为ZHXGSJ,即最后修改时间)。注意,时间戳字段不能为空。若为空,则不能采用此方法进行数据同步。
2、单次增量数据同步流程图,如下图所示:
1)、开始。
2) 、判断源表A及源表B关联的数据记录数是否为0。即在源数据库S下执行下面语句:
select count(1) from A inner join B on A.ID = B.GLID
3)、若记录数为0,则说明源表A及源表B关联的数据为空,不需要进行数据同步,结束。
4)、若记录数不为0,则查询源表A的最后修改最大时间,即max(ZHXGSJ),将此时间记作A_JSSJ,若此时间为空,则设置默

本文详细介绍了如何在源表A、B关联的情况下,利用时间戳进行增量数据同步到目标表C。通过ETL工具,结合源表的时间戳字段ZHXGSJ,更新数据同步日志表LOG,确保数据一致性。文章还强调了实际操作中的注意事项,如选择关键源表的增量字段过滤和可能出现的数据不一致问题。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



