文主要讨论,采用时间戳的方法进行增量数据同步时,造成源表和目标表数据不一致的情况的原因进行讨论。在浏览此文时,请大家先浏览数据同步之采用时间戳的方法进行增量数据同步(一)、数据同步之采用时间戳的方法进行增量数据同步(二)这两篇文章。在探讨这个问题时,本文还是继续引用前面的文章的例子。
一、数据同步情况说明
将源数据库S中的A表(将此表称为源表),通过ETL工具同步至目标数据库T的A表(将此表称为目标表)。假设源表A的表结构与目标表A的表结构完全一致。表结构如下图所示:

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

其中,KSSJ、JSSJ字段为保存的值为源表A中每次数据同步时,根据ZHXGSJ字段进行数据过滤的字段值。
二、数据同步存在的问题
1、数据遗漏,即数据量不一致。即源表和目标表的数据量不一致。
2、数据记录内容不一致。即源表和目标表的数据量一致。但是存在部分数据,它们分别对应的源表和目标表的数据记录,内容不一致。
三、数据同步问题的原因分析。
1、源系统(即源表对应系统)开发人员的原因。
这种原因经常使得数据同步时,造成数据记录内容不一致。它是源系统的开发人员在修改源表的某记录的时候,并未同步更新对应记录的时间戳字段造成的。
在本例中,源系统的开发人员,在对源表A中插入一条记录时,使用的SQL为:
insert into A(ID,MC,ZHXGSJ) values ('111111','测试',to_date('2019-01-01 12:05:00',
时间戳增量同步:源目标数据不一致分析

本文深入探讨采用时间戳方法进行数据库增量同步时可能导致数据不一致的原因,包括开发人员错误、同步问题和系统架构设计因素。通过案例分析,揭示了时间戳字段在集群环境中不同步可能造成的数据遗漏和内容不一致问题,强调了数据同步的复杂性和挑战。
最低0.47元/天 解锁文章
6564

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



