CN108153784B - 同步数据处理方法和装置 - Google Patents
同步数据处理方法和装置 Download PDFInfo
- Publication number
- CN108153784B CN108153784B CN201611108202.3A CN201611108202A CN108153784B CN 108153784 B CN108153784 B CN 108153784B CN 201611108202 A CN201611108202 A CN 201611108202A CN 108153784 B CN108153784 B CN 108153784B
- Authority
- CN
- China
- Prior art keywords
- data
- target
- source
- same
- check value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种同步数据处理方法和装置,涉及数据处理领域。其中的同步数据处理方法包括:获取源数据和目标数据,其中,目标数据是源数据的同步数据;对源数据和目标数据进行比较,获得差异数据;根据差异数据对目标数据进行修复。通过比较源数据与同步源数据获得的目标数据,能够获得同步后的数据与源数据的差异,并根据差异对目标数据进行修复。从而,能够获得准确的数据同步结果。
Description
技术领域
本发明涉及数据处理领域,特别涉及一种同步数据处理方法和装置。
背景技术
目前,出于对实时、准时地产生报表等需求,各种数据同步工具应运而生,并且使用越来越广泛。然而,在数据同步的过程中,可能因为网络、***死锁、硬件故障等原因引发数据库同步错误,导致使用同步工具进行同步的数据之间产生不一致。而这些同步工具无法对数据进行进一步处理,以解决同步数据不准确的问题。
发明内容
本发明实施例所要解决的一个技术问题是:如何提高同步数据的准确性。
根据本发明实施例的第一个方面,提供一种同步数据处理方法,包括:获取源数据和目标数据,其中,目标数据是源数据的同步数据;对源数据和目标数据进行比较,获得差异数据;根据差异数据对目标数据进行修复。
在一个实施例中,对源数据和目标数据进行比较,获得差异数据包括:获取源数据和目标数据中同一数据表的数据的校验值;比较源数据的校验值和目标数据的校验值;如果源数据的校验值和目标数据的校验值不同,比较源数据和目标数据中同一数据表的数据,获得差异数据。
在一个实施例中,对源数据和目标数据进行比较,获得差异数据包括:对源数据和目标数据进行比较,删除源数据和目标数据中完全相同的数据;将源数据和目标数据中未被删除并且完成比较的数据作为差异数据。
根据本发明实施例的第二个方面,提供一种同步数据处理装置,包括:数据获取模块,用于获取源数据和目标数据,其中,目标数据是源数据的同步数据;数据比较模块,用于对源数据和目标数据进行比较,获得差异数据;数据修复模块,用于根据差异数据对目标数据进行修复。
在一个实施例中,数据比较模块包括:校验值获取单元,用于获取源数据和目标数据中同一数据表的数据的校验值;校验值比较单元,用于比较源数据的校验值和目标数据的校验值;问题数据比较单元,用于当源数据的校验值和目标数据的校验值不同时,比较源数据和目标数据中同一数据表的数据,获得差异数据。
在一个实施例中,数据比较模块包括:相同数据删除单元,用于对源数据和目标数据进行比较,删除源数据和目标数据中完全相同的数据;差异数据获得单元,用于将源数据和目标数据中未被删除并且完成比较的数据作为差异数据。
本发明通过比较源数据与同步源数据获得的目标数据,能够获得同步后的数据与源数据的差异,并根据差异对目标数据进行修复。从而,能够获得准确的数据同步结果。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明同步数据处理方法一个实施例的流程图。
图2为本发明同步数据处理方法另一个实施例的流程图。
图3为本发明获得差异数据的方法的一个实施例的流程图。
图4为本发明获得差异数据的方法的另一个实施例的流程图。
图5为本发明同步数据处理装置的一个实施例的结构图。
图6为本发明同步数据处理装置的另一个实施例的结构图。
图7为本发明同步数据处理装置的又一个实施例的结构图。
图8为本发明同步数据处理装置的再一个实施例的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明同步数据处理方法一个实施例的流程图。如图1所示,该实施例的方法包括:
步骤S102,获取源数据和目标数据,其中,目标数据是源数据的同步数据。
源数据和目标数据可以是从数据库中获得的数据表中的数据。源数据和目标数据可以来自相同的数据库,也可以来自不同的数据库。此外,目标数据也可以包含来自多个数据库的数据。
步骤S104,对源数据和目标数据进行比较,获得差异数据。
例如,可以在目标数据中逐一查找源数据中的数据、并在源数据中逐一查找目标数据中的数据,将无法查找到的数据作为差异数据;或者,可以首先根据源数据和目标数据中同一数据表的校验值确定同步有差错的数据表,再通过详细比较确定这些数据表中的哪些数据是差异数据。
差异数据主要包括三种:在源数据中存在而在目标数据中不存在的数据,这类数据是需要在目标数据中增加的数据;在目标数据中存在而在源数据中不存在的数据,这类数据是需要在目标数据中删除的数据;在源数据和目标数据中均存在,但是时间戳不一致的数据,这类数据是目标数据没有进行更新的数据。其中,时间戳是指由数据库自身维护的时间信息,在数据记录被***、修改时会进行自动更新。
步骤S106,根据差异数据对目标数据进行修复。
可以在目标数据中增加待增加的数据、删除待删除的数据,并对待更新的数据按照源数据的内容进行更新。
通过比较源数据与同步源数据获得的目标数据,能够获得同步后的数据与源数据的差异,并根据差异对目标数据进行修复。从而,能够获得准确的数据同步结果。
当同步数据的数据量较大时,可以首先缩小可能存在同步错误的数据的范围,再进行具体的数据比较和修复。下面参考图2描述本发明另一个实施例的同步数据处理方法。
图2为本发明同步数据处理方法另一个实施例的流程图。如图2所示,该实施例的方法包括:
步骤S202,获取源数据和目标数据。
在对源数据和目标数据中的数据内容进行校验之前,可以先对表的结构、属性进行校验。例如,可以根据数据库的元数据信息,获得表信息和结构信息,将表结构不一致的表进行记录并预警。
步骤S204,获取源数据和目标数据中同一数据表的数据的校验值。
例如,可以首先分别获取源数据和目标数据中同一数据表的总行数作为校验值,当源数据和目标数据中同一数据表的总行数不一致时,则说明同步有异常。
此外,还可以将源数据库和目标数据库中同一数据表中同一行数据的哈希值作为校验值。例如,可以计算源数据和目标数据中同一数据表中同一行数据的所有字段的值的MD5(Message-Digest Algorithm5,消息摘要算法第五版)值。从而,可以根据数据表中同一行数据的字段值生成校验值,使校验更准确。
或者,还可以将源数据库和目标数据库中同一数据表中的预设字段的统计结果作为校验值。例如,对于数值类型的字段,可以分别计算源数据库和目标数据库中同一数据表中的数值类型字段的值的总和,或者,对于状态类型的字段,可以分别计算源数据库和目标数据库中同一数据表中具有特定状态的数据的总条数。从而,可以根据数据表中的部分信息生成校验值,校验效率更高。
此外,还可以定期对同步数据进行校验。此时,可以获取源数据库和目标数据库中同一数据表的时间戳在同一时间段内的数据的校验值,该时间段的截止时间例如可以为当前时间,或者将当前时间向前偏移预设值后所确定的时间,该时间段的起始时间可以为上一次进行同步数据的比较时所采用的时间段的截止时间。
上述时间段的长度可以不是固定的。例如,可以取1小时内的源数据库和目标数据库中同一数据表的数据进行比较,随着数据的变化和业务的需求,在下一次进行比较时,也可以获取20分钟内的源数据库和目标数据库中同一数据表的数据进行比较。即,可以在任意的时间间隔内进行源数据和目标数据的比较。
从而,可以仅对最近一段时间内的同步数据进行增量比较,提高了同步数据处理的效率。
步骤S206,比较源数据的校验值和目标数据的校验值。
步骤S208,如果源数据的校验值和目标数据的校验值不同,比较源数据和目标数据中同一数据表的数据,获得差异数据。
如果校验值为源数据库和目标数据库中同一数据表的时间戳在同一时间段内的数据的校验值,那么当校验值不同时,可以仅比较源数据和目标数据中同一数据表的时间戳在该同一时间段内的数据,获得差异数据。从而,进一步减少了进行比较的数据量,提高了同步数据处理的效率。
步骤S210,根据差异数据对目标数据进行修复。
通过采用上述方法,可以首先确定发生了同步错误的数据的范围,再在该范围内进行详细的数据比较和数据修复,提高了同步数据处理的效率。
下面参考图3描述本发明一个实施例的获得差异数据的方法。
图3为本发明获得差异数据的方法的一个实施例的流程图。如图3所示,该实施例的方法包括:
步骤S302,对源数据和目标数据进行比较,删除源数据和目标数据中完全相同的数据。
其中,源数据和目标数据可以是所有的源数据和目标数据,也可以是源数据和目标数据中已确定具有差异的数据。例如,可以为图2实施例中校验值不一致的源数据和目标数据。
一种删除源数据和目标数据中完全相同的数据的方法为:搜索源数据和目标数据中具有相同唯一索引的数据;如果源数据和目标数据中具有相同唯一索引的数据具有相同的时间戳,删除源数据和目标数据中具有相同唯一索引的数据。
此外,如果源数据和目标数据中具有相同唯一索引的数据具有不同的时间戳,说明该数据虽然未被删除,也不是新增数据,但是源数据发生了变更而在目标数据中没有进行相应更新,从而可以将源数据中具有相同唯一索引的数据导出到差异数据中的待更新数据中。
其中,可以采用按序移动比较的方法获得源数据和目标数据中完全相同的数据。
例如,可以将源数据和目标数据分别按照数据的唯一索引的递增或递减顺序进行排序,并采用源游标和目标游标分别记录源数据和目标数据的当前待比较数据的唯一索引,即分别指向源数据和目标数据的当前待比较数据。
在初始阶段,源游标和目标游标分别指向源数据和目标数据的首个数据。比较源游标和目标游标所指向的数据,如果相同,则删除源数据和目标数据中的源游标和目标游标所指向的数据,并将源游标和目标游标后移一位;如果不同,当数据按唯一索引的递增顺序排列时,将源游标和目标游标中较小的游标后移,并继续进行比较。
步骤S304,将源数据和目标数据中未被删除并且完成比较的数据作为差异数据。
其中,源数据中未被删除并且完成比较的数据为待添加数据,目标数据中未被删除并且完成比较的数据为待删除数据。
当待进行比较的源数据和目标数据的数据量较大时,可以分批次地将数据加载到比较区中进行比较,并将源比较区和目标比较区中完成比较的数据导出或删除。下面参考图4描述本发明另一个实施例的获得差异数据的方法。
图4为本发明获得差异数据的方法的另一个实施例的流程图。如图4所示,该实施例的方法包括:
步骤S402,分别从源数据和目标数据中装载若干批次的数据到源比较区和目标比较区中。
可以根据需要对源数据和目标数据划分批次。例如,可以预设每个批次的数据条目数,或者设定各个批次的数据的唯一索引值的范围。
其中,比较区例如可以采用队列实现。
步骤S404,对源比较区和目标比较区中的数据进行比较,删除源比较区和目标比较区中完全相同的数据。
步骤S406,将源比较区和目标比较区中未被删除并且完成比较的数据分别导出到差异数据中。
在导出数据时,可以按批次进行输出,从而可以对数据进行分批次的修复。
当源比较区和目标比较区中的数据小于预设批次时,可以再装载若干批次的数据。例如,可以当比较区和目标比较区中的数据小于2个批次时,再装载1个批次的数据。
通过采用上述方法,可以将源数据和目标数据分批次地加载到比较区中,并且仅对比较区中的数据进行比较,可以高效、低成本地处理海量数据,在兼顾了处理装置的性能的同时,满足了准确地进行数据同步的需求。
在某些情况下,源比较区和目标比较区中的数据可能并不处于同一有效比较区域。例如,当前源比较区中的一条数据的唯一索引为1112,目标比较区中没有唯一索引为1112的数据。然而,这并不能说明目标数据中不包括唯一索引为1112的数据,因为该数据有可能尚未被加载到目标比较区中。因此,可以再从目标数据中加载一个批次的数据到目标比较区中,以使源比较区和目标比较区中的数据能够进行对应。
一种比较和加载的方法为:如果源游标小于目标游标并且目标比较区中的数据均已经完成比较,将源比较区中的数据导出到待添加数据,并从源数据中装载若干批次的数据到源比较区中并继续进行比较。其中,源游标为源比较区中待比较的数据的唯一索引,目标游标为目标比较区中待比较的数据的唯一索引。
在源比较区和目标比较区中的数据完成相同数据删除的操作之后,当源游标小于目标游标时,说明目标数据的比较和处理进度较快,并且源比较区中未被删除的数据均为已完成比较的数据,因此,可以将源比较区中的数据导出到待添加数据。而目标比较区中未被删除的数据中可能存在与源数据中相同的数据,而这些相同的源数据尚未加载到源比较区中进行比较,因此目标比较区中的数据很可能尚未完成比较,可以暂时保留。
类似地,如果源游标大于目标游标并且源比较区中的数据均已经完成比较,将目标比较区中的数据导出到待删除数据,并从目标数据中装载若干批次的数据到目标比较区中并继续进行比较。
在上述实施例中,唯一索引不仅可以为数值类型,还可以为其他类型,例如字符类型。对于非数值类型的唯一索引,可以按照预设的规则排序,例如字符对应的ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)码等等。因此,即使唯一索引不是数值类型,也可以进行大小比较。其中,唯一索引较小的数据是指在数据升序排列时值较小的数据,以及在数据降序排列时值较大的数据,即更靠前的数据。
此外,当源数据中所有的数据均已完成比较时,目标数据中未完成比较的数据没有可比较的对象,因此均为待删除数据,可以直接将目标数据中未完成比较的数据导出到差异数据中。类似地,当目标数据中所有的数据均已完成比较时,可以将源数据中未完成比较的数据导出到差异数据中。
上述各个实施例的方法可以采用多个进程实现,例如,可以为不同数据库、不同数据表设置不同的进程进行同时处理,从而可以提升数据校验和修复的效率。每个进程可以对应独立的配置文件,用于配置该进程所处理的数据库、数据表、进行数据比较的时间段、库表中的唯一索引、进行校验的字段、报警配置、数据输出配置等等。
下面参考图5描述本发明一个实施例的同步数据处理装置。
图5为本发明同步数据处理装置的一个实施例的结构图。如图5所示,该实施例的装置包括:数据获取模块51,用于获取源数据和目标数据,其中,目标数据是源数据的同步数据;数据比较模块52,用于对源数据和目标数据进行比较,获得差异数据;数据修复模块53,用于根据差异数据对目标数据进行修复。
其中,差异数据可以包括待添加数据、待删除数据和待更新数据中的至少一种。数据修复模块53可以用于:将待添加数据添加到目标数据中、将待删除数据从目标数据中删除、将目标数据中与待更新数据具有相同唯一索引的数据进行更新、使目标数据中更新后的数据与待更新数据相同中的至少一种。
下面参考图6描述本发明另一个实施例的同步数据处理装置。
图6为本发明同步数据处理装置的另一个实施例的结构图。如图6所示,该实施例的数据比较模块52可以包括:校验值获取单元621,用于获取源数据和目标数据中同一数据表的数据的校验值;校验值比较单元622,用于比较源数据的校验值和目标数据的校验值;问题数据比较单元623,用于当源数据的校验值和目标数据的校验值不同时,比较源数据和目标数据中同一数据表的数据,获得差异数据。
其中,校验值获取单元621可以进一步用于获取源数据库和目标数据库中同一数据表的时间戳在同一时间段内的数据的校验值;问题数据比较单元623可以进一步用于当源数据的校验值和目标数据中同一数据表的时间戳在同一时间段内的数据的校验值不同,比较源数据和目标数据中同一数据表的时间戳在同一时间段内的数据,获得差异数据。
其中,校验值获取单元621还可以进一步用于将源数据库和目标数据库中同一数据表中的数据的哈希值作为校验值,或者,将源数据库和目标数据库中同一数据表中的预设字段的统计结果作为校验值。
此外,数据比较模块52还可以包括:相同数据删除单元624,用于对源数据和目标数据进行比较,删除源数据和目标数据中完全相同的数据;差异数据获得单元625,用于将源数据和目标数据中未被删除并且完成比较的数据作为差异数据。
其中,相同数据删除单元624可以进一步用于搜索源数据和目标数据中具有相同唯一索引的数据,如果源数据和目标数据中具有相同唯一索引的数据具有相同的时间戳,删除源数据和目标数据中具有相同唯一索引的数据。
其中,相同数据删除单元624还可以进一步用于分别从源数据和目标数据中装载若干批次的数据到源比较区和目标比较区中,并对源比较区和目标比较区中的数据进行比较,删除源比较区和目标比较区中完全相同的数据;差异数据获得单元625可以进一步用于将源比较区和目标比较区中未被删除并且完成比较的数据分别导出到差异数据中。
差异数据可以包括待添加数据和/或待删除数据。相同数据删除单元624还可以进一步用于按照数据的唯一索引的排序顺序,依次比较源比较区和目标比较区中的数据;差异数据获得单元625还可以进一步用于当源游标小于目标游标并且目标比较区中的数据均已经完成比较时,将源比较区中的数据导出到待添加数据,并从源数据中装载若干批次的数据到源比较区中并继续进行比较,当源游标大于目标游标并且源比较区中的数据均已经完成比较时,将目标比较区中的数据导出到待删除数据,并从目标数据中装载若干批次的数据到目标比较区中并继续进行比较。其中,源游标为源比较区中待比较的数据的唯一索引,目标游标为目标比较区中待比较的数据的唯一索引。
此外,装置还可以包括:剩余数据导出模块64,用于当源数据中所有的数据均已完成比较,将目标数据中未完成比较的数据导出到差异数据中,和/或,当目标数据中所有的数据均已完成比较,将源数据中未完成比较的数据导出到差异数据中。
此外,装置还可以包括:待更新数据确定模块65,用于当源数据和目标数据中具有相同唯一索引的数据具有不同的时间戳时,将源数据中具有相同唯一索引的数据导出到待更新数据中。
图7为本发明同步数据处理装置的又一个实施例的结构图。如图7所示,该实施例的装置700包括:存储器710以及耦接至该存储器710的处理器720,处理器720被配置为基于存储在存储器710中的指令,执行前述任意一个实施例中的同步数据处理方法。
其中,存储器710例如可以包括***存储器、固定非易失性存储介质等。***存储器例如存储有操作***、应用程序、引导装载程序(Boot Loader)以及其他程序等。
图8为本发明同步数据处理装置的再一个实施例的结构图。如图8所示,该实施例的装置700包括:存储器710以及处理器720,还可以包括输入输出接口830、网络接口840、存储接口850等。这些接口830,840,850以及存储器710和处理器720之间例如可以通过总线860连接。其中,输入输出接口830为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口840为各种联网设备提供连接接口。存储接口850为SD卡、U盘等外置存储设备提供连接接口。
本领域内的技术人员应当明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种同步数据处理方法,其特征在于,包括:
获取源数据和目标数据,其中,目标数据是源数据的同步数据;
对源数据和目标数据进行比较,获得差异数据,包括:获取源数据和目标数据中同一数据表的数据的校验值,其中,所述校验值包括源数据库和目标数据库中同一数据表中的预设字段的统计结果;比较源数据的所述校验值和目标数据的所述校验值;如果源数据的所述校验值和目标数据的所述校验值不同,比较所述源数据和目标数据中同一数据表的数据,获得差异数据,所述差异数据包括待添加数据和/或待删除数据;其中,所述比较所述源数据和目标数据中同一数据表的数据,获得差异数据包括:
对源数据和目标数据进行比较,删除源数据和目标数据中完全相同的数据,包括:分别从源数据和目标数据中装载若干批次的数据到源比较区和目标比较区中;和,按照数据的唯一索引的排序顺序,依次比较源比较区和目标比较区中的数据,删除源比较区和目标比较区中完全相同的数据;以及
将源比较区和目标比较区中未被删除并且完成比较的数据分别导出到差异数据中,包括:如果源游标小于目标游标并且目标比较区中的数据均已经完成比较,将源比较区中的数据导出到待添加数据,并从源数据中装载若干批次的数据到源比较区中并继续进行比较;如果源游标大于目标游标并且源比较区中的数据均已经完成比较,将目标比较区中的数据导出到待删除数据,并从目标数据中装载若干批次的数据到目标比较区中并继续进行比较;
其中,源游标为源比较区中待比较的数据的唯一索引,目标游标为目标比较区中待比较的数据的唯一索引;以及
根据差异数据对目标数据进行修复。
2.根据权利要求1所述的方法,其特征在于,
所述获取源数据和目标数据中同一数据表的数据的校验值包括:
获取源数据库和目标数据库中同一数据表的时间戳在同一时间段内的数据的校验值;
所述如果源数据的所述校验值和目标数据的所述校验值不同,比较所述源数据和目标数据中同一数据表的数据,获得差异数据包括:
如果源数据的所述校验值和目标数据中同一数据表的时间戳在同一时间段内的数据的校验值不同,比较所述源数据和目标数据中同一数据表的时间戳在同一时间段内的数据,获得差异数据。
3.根据权利要求1所述的方法,其特征在于,所述获取源数据和目标数据中同一数据表中的数据的校验值包括:
将源数据库和目标数据库中同一数据表中同一行数据的哈希值作为校验值。
4.根据权利要求1所述的方法,其特征在于,还包括:
当源数据中所有的数据均已完成比较,将目标数据中未完成比较的数据导出到差异数据中,和/或,
当目标数据中所有的数据均已完成比较,将源数据中未完成比较的数据导出到差异数据中。
5.根据权利要求1所述的方法,其特征在于,所述对源数据和目标数据进行比较,删除源数据和目标数据中完全相同的数据包括:
搜索源数据和目标数据中具有相同唯一索引的数据;
如果源数据和目标数据中所述具有相同唯一索引的数据具有相同的时间戳,删除所述源数据和目标数据中所述具有相同唯一索引的数据。
6.根据权利要求5所述的方法,其特征在于,还包括:
如果源数据和目标数据中所述具有相同唯一索引的数据具有不同的时间戳,将源数据中所述具有相同唯一索引的数据导出到待更新数据中。
7.根据权利要求1所述的方法,其特征在于,所述差异数据包括待添加数据、待删除数据和待更新数据中的至少一种;
所述根据差异数据对目标数据进行修复至少包括以下一种:
将待添加数据添加到目标数据中;
将待删除数据从目标数据中删除;
将目标数据中与待更新数据具有相同唯一索引的数据进行更新,使目标数据中更新后的数据与所述待更新数据相同。
8.一种同步数据处理装置,其特征在于,包括:
数据获取模块,用于获取源数据和目标数据,其中,目标数据是源数据的同步数据;
数据比较模块,用于对源数据和目标数据进行比较,获得差异数据,所述差异数据包括待添加数据和/或待删除数据;其中,所述数据比较模块包括:
校验值获取单元,用于获取源数据和目标数据中同一数据表的数据的校验值,包括将源数据库和目标数据库中同一数据表中的预设字段的统计结果作为校验值;
校验值比较单元,用于比较源数据的所述校验值和目标数据的所述校验值;以及
问题数据比较单元,用于当源数据的所述校验值和目标数据的所述校验值不同时,比较所述源数据和目标数据中同一数据表的数据,获得差异数据;
相同数据删除单元,用于对源数据和目标数据进行比较,删除源数据和目标数据中完全相同的数据,包括:分别从源数据和目标数据中装载若干批次的数据到源比较区和目标比较区中;和,按照数据的唯一索引的排序顺序,依次比较源比较区和目标比较区中的数据,删除源比较区和目标比较区中完全相同的数据;以及
差异数据获得单元,用于将源比较区和目标比较区中未被删除并且完成比较的数据分别导出到差异数据中,包括:如果源游标小于目标游标并且目标比较区中的数据均已经完成比较,将源比较区中的数据导出到待添加数据,并从源数据中装载若干批次的数据到源比较区中并继续进行比较;如果源游标大于目标游标并且源比较区中的数据均已经完成比较,将目标比较区中的数据导出到待删除数据,并从目标数据中装载若干批次的数据到目标比较区中并继续进行比较;其中,源游标为源比较区中待比较的数据的唯一索引,目标游标为目标比较区中待比较的数据的唯一索引;以及
数据修复模块,用于根据差异数据对目标数据进行修复。
9.根据权利要求8所述的装置,其特征在于,
所述校验值获取单元进一步用于获取源数据库和目标数据库中同一数据表的时间戳在同一时间段内的数据的校验值;
所述问题数据比较单元进一步用于当源数据的所述校验值和目标数据中同一数据表的时间戳在同一时间段内的数据的校验值不同,比较所述源数据和目标数据中同一数据表的时间戳在同一时间段内的数据,获得差异数据。
10.根据权利要求8所述的装置,其特征在于,所述校验值获取单元进一步用于将源数据库和目标数据库中同一数据表中同一行数据的哈希值作为校验值。
11.根据权利要求8所述的装置,其特征在于,还包括:
剩余数据导出模块,用于当源数据中所有的数据均已完成比较,将目标数据中未完成比较的数据导出到差异数据中,和/或,当目标数据中所有的数据均已完成比较,将源数据中未完成比较的数据导出到差异数据中。
12.根据权利要求8所述的装置,其特征在于,所述相同数据删除单元进一步用于搜索源数据和目标数据中具有相同唯一索引的数据,如果源数据和目标数据中所述具有相同唯一索引的数据具有相同的时间戳,删除所述源数据和目标数据中所述具有相同唯一索引的数据。
13.根据权利要求12所述的装置,其特征在于,还包括:
待更新数据确定模块,用于当源数据和目标数据中所述具有相同唯一索引的数据具有不同的时间戳时,将源数据中所述具有相同唯一索引的数据导出到待更新数据中。
14.根据权利要求8所述的装置,其特征在于,所述差异数据包括待添加数据、待删除数据和待更新数据中的至少一种;
所述数据修复模块用于:将待添加数据添加到目标数据中、将待删除数据从目标数据中删除、将目标数据中与待更新数据具有相同唯一索引的数据进行更新、使目标数据中更新后的数据与所述待更新数据相同中的至少一种。
15.一种同步数据处理装置,其特征在于,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1-7中任一项所述的同步数据处理方法。
16.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1-7中任一项所述的同步数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611108202.3A CN108153784B (zh) | 2016-12-06 | 2016-12-06 | 同步数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611108202.3A CN108153784B (zh) | 2016-12-06 | 2016-12-06 | 同步数据处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108153784A CN108153784A (zh) | 2018-06-12 |
CN108153784B true CN108153784B (zh) | 2020-11-24 |
Family
ID=62470993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611108202.3A Active CN108153784B (zh) | 2016-12-06 | 2016-12-06 | 同步数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108153784B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874344B (zh) * | 2018-06-15 | 2021-10-08 | 深圳市轱辘车联数据技术有限公司 | 一种数据刷新方法、终端设备及计算机可读介质 |
CN108897863A (zh) * | 2018-06-29 | 2018-11-27 | 联想(北京)有限公司 | 数据同步方法及其***以及服务器集群 |
CN108845915A (zh) * | 2018-07-02 | 2018-11-20 | 山东浪潮商用***有限公司 | 一种数据库数据监控方法 |
CN109614393A (zh) * | 2018-10-26 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 数据核对方法及装置 |
CN109656964A (zh) * | 2018-12-19 | 2019-04-19 | 北京超萌国际文化有限公司 | 数据比对的方法、装置以及存储介质 |
CN109710603B (zh) * | 2018-12-28 | 2020-11-24 | 江苏满运软件科技有限公司 | 数据清洗方法、***、存储介质及电子设备 |
CN109857806B (zh) * | 2018-12-30 | 2021-07-27 | 贝壳技术有限公司 | 数据库表的同步验证方法及装置 |
CN110513252B (zh) * | 2019-08-30 | 2020-11-24 | 湘电风能有限公司 | 一种风电场scada***数据异常告警修复***与方法 |
CN110781194B (zh) * | 2019-11-05 | 2022-06-14 | 网易(杭州)网络有限公司 | 应用程序的表数据处理方法、装置、电子设备及存储介质 |
CN110928891B (zh) * | 2019-11-08 | 2023-01-03 | 中国工商银行股份有限公司 | 数据一致性检测方法、装置、计算设备以及介质 |
CN112559546B (zh) * | 2020-12-23 | 2024-03-19 | 平安银行股份有限公司 | 数据库同步方法、装置、计算机设备及可读存储介质 |
CN113064909B (zh) * | 2021-06-03 | 2021-10-22 | 广州宸祺出行科技有限公司 | 一种数据同步校验方法、装置 |
CN113742422A (zh) * | 2021-08-20 | 2021-12-03 | 广州市易工品科技有限公司 | 数据同步准确性校验方法和装置 |
CN114385631A (zh) * | 2021-12-17 | 2022-04-22 | 北京达佳互联信息技术有限公司 | 校验方法、装置、服务器及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582081A (zh) * | 2009-05-25 | 2009-11-18 | 中兴通讯股份有限公司 | 一种数据比对的方法及装置 |
CN104142954B (zh) * | 2013-05-10 | 2017-11-21 | 中国电信股份有限公司 | 一种基于频度分区的数据表比对更新方法与装置 |
US10303666B2 (en) * | 2015-03-09 | 2019-05-28 | International Business Machines Corporation | File transfer system using file backup times |
CN105069161A (zh) * | 2015-08-26 | 2015-11-18 | 浪潮软件股份有限公司 | 一种数据交互的方法及装置 |
-
2016
- 2016-12-06 CN CN201611108202.3A patent/CN108153784B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108153784A (zh) | 2018-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108153784B (zh) | 同步数据处理方法和装置 | |
CN110209728B (zh) | 一种分布式异构数据库同步方法、电子设备及存储介质 | |
US10452625B2 (en) | Data lineage analysis | |
US20140297592A1 (en) | Computer-readable medium storing program and version control method | |
US20160378785A1 (en) | Distributed work flow using database replication | |
CN108647357B (zh) | 数据查询的方法及装置 | |
CN104965735A (zh) | 用于生成升级sql脚本的装置 | |
US20150154097A1 (en) | System and method for automated testing | |
CN112130891B (zh) | 一种数据库持续部署的方法和设备 | |
CN109063005B (zh) | 一种数据迁移方法及***、存储介质、电子设备 | |
CN110737594A (zh) | 自动生成测试用例的数据库标准符合性测试方法及装置 | |
CN104636401A (zh) | 一种scada***数据回滚的方法及装置 | |
CN112307124A (zh) | 数据库同步验证方法、装置、设备及存储介质 | |
CN111522811B (zh) | 数据库的处理方法及装置、存储介质、终端 | |
CN111966747A (zh) | 数据同步方法、***、终端设备及存储介质 | |
CN106407233B (zh) | 一种数据处理方法和设备 | |
CN111125067A (zh) | 数据维护方法及装置 | |
CN115373889A (zh) | 数据同步中的数据比对校验及数据修复的方法及装置 | |
CN110196880B (zh) | 异构数据库数据同步方法和装置、存储介质及电子装置 | |
CN111737349A (zh) | 数据一致性校验方法及装置 | |
CN110908978A (zh) | 数据库数据结构验证方法及装置 | |
CN112000671B (zh) | 基于区块链的数据库表处理方法、装置及*** | |
CN114385188A (zh) | 一种代码工作量统计方法、装置和电子设备 | |
CN114676054A (zh) | 一种测试数据生成方法、装置、设备、介质及产品 | |
CN111209597B (zh) | 数据校验方法及应用*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1256874 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |