本文主要介绍源表为多表关联时,增量数据同步的情况。
一、数据同步情况说明
将源数据库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,则