CN113918648A - 数据同步方法、装置、电子设备及存储介质 - Google Patents
数据同步方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113918648A CN113918648A CN202111124023.XA CN202111124023A CN113918648A CN 113918648 A CN113918648 A CN 113918648A CN 202111124023 A CN202111124023 A CN 202111124023A CN 113918648 A CN113918648 A CN 113918648A
- Authority
- CN
- China
- Prior art keywords
- data
- synchronization
- timestamp
- determining
- row
- 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.)
- Pending
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
Abstract
本申请提出了一种数据同步方法、装置、电子设备及存储介质,其中,方法包括:确定源表中的待处理数据,其中,待处理数据包括对应的时间戳位于同步时间段内的至少一个行数据;确定至少一个行数据中的重复行数据,其中,重复行数据存在于源表的历史同步数据中;删除待处理数据中的重复行数据,得到待同步数据;将待同步数据同步至目的表中,从而解决数据同步时数据重复的问题,提高数据同步效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据同步方法、装置、电子设备及存储介质。
背景技术
相关技术中,基于源表对目的表进行数据同步时,是将源表中保存时间的字段作为增量数据的查询条件,基于该查询条件查询源表中的增量数据,并基于增量数据实现对目的表的数据同步。上述技术方案中,可能会出现数据重复的问题,导致同步后源表与目的表的数据不一致,数据同步效率差。
发明内容
本申请的目的旨在至少在一定程度上解决上述技术问题之一。
为此,本申请提出了一种数据同步方法、装置、电子设备及存储介质,通过确定源表中的待处理数据,确定至少一个行数据中的重复行数据,删除待处理数据中的重复行数据,得到待同步数据,将待同步数据同步至目的表中,解决现有技术方案中数据同步时数据重复的问题,提高数据同步效率。
本申请第一方面实施例提出了一种数据同步方法,包括:
确定源表中的待处理数据,其中,所述待处理数据包括对应的时间戳位于同步时间段内的至少一个行数据;
确定所述至少一个行数据中的重复行数据,其中,所述重复行数据存在于所述源表的历史同步数据中;
删除所述待处理数据中的所述重复行数据,得到待同步数据;
将所述待同步数据同步至目的表中。
可选地,所述确定源表中的待处理数据,包括:
确定所述源表的最大历史同步时间戳以及最大时间戳;
以所述最大历史同步时间戳为起始时间戳,以所述最大时间戳为终止时间戳,确定所述同步时间段;
抽取所述源表中对应的时间戳位于所述同步时间段内的行数据,得到所述待处理数据。
可选地,所述确定所述源表的最大历史同步时间戳以及最大时间戳,包括:
确定所述源表的最大时间戳;
获取存储的所述最大历史同步时间戳;或者,在未存储所述最大历史同步时间戳时,将用户配置的同步时间戳或者预设的同步时间戳确定为所述最大历史同步时间戳。
可选地,所述确定所述至少一个行数据中的重复行数据,包括:
确定所述至少一个行数据中的候选行数据,其中,所述候选行数据的时间戳与所述同步时间段的起始时间戳一致;
确定所述历史同步数据中的参考行数据,其中,所述参考行数据的时间戳与所述起始时间戳一致;
对所述候选行数据和所述参考行数据进行比对处理,确定所述候选行数据中的所述重复行数据。
可选地,所述源表的行数据中设置有主键字段,所述对所述候选行数据和所述参考行数据进行比对处理,确定所述候选行数据中的所述重复行数据,包括:
对所述候选行数据的主键字段和所述参考行数据的主键字段进行比对处理,确定所述候选行数据和所述参考行数据中相同的主键字段;
将所述相同的主键字段对应的候选行数据确定为所述重复行数据。
可选地,所述源表的行数据中未设置有主键字段,所述对所述候选行数据和所述参考行数据进行比对处理,确定所述候选行数据中的所述重复行数据,包括:
提取所述候选行数据的摘要信息以及所述参考行数据的摘要信息;
对所述候选行数据的摘要信息和所述参考行数据的摘要信息进行比对处理,确定相同的摘要信息,以及所述相同的摘要信息的数量;
将具有所述相同的摘要信息的所述数量个候选行数据确定为所述重复行数据。
可选地,在将所述待同步数据同步至目的表中之后,所述方法还包括:
采用所述同步时间段中的所述终止时间戳,对存储的最大历史同步时间戳进行更新处理;或者,在未存储有最大历史同步时间戳时,将所述终止时间戳作为最大历史同步时间戳进行存储。
本申请实施例的数据同步方法,通过确定源表中的待处理数据,其中,待处理数据包括对应的时间戳位于同步时间段内的至少一个行数据;确定至少一个行数据中的重复行数据,其中,重复行数据存在于源表的历史同步数据中;删除待处理数据中的重复行数据,得到待同步数据;将待同步数据同步至目的表中,从而解决数据同步时数据重复的问题,提高数据同步效率。
本申请第二方面实施例提出了一种数据同步装置,包括:
第一确定模块,用于确定源表中的待处理数据,其中,所述待处理数据包括对应的时间戳位于同步时间段内的至少一个行数据;
第二确定模块,用于确定所述至少一个行数据中的重复行数据,其中,所述重复行数据存在于所述源表的历史同步数据中;
处理模块,用于删除所述待处理数据中的所述重复行数据,得到待同步数据;
同步模块,用于将所述待同步数据同步至目的表中。
可选地,所述第一确定模块具体用于,
确定所述源表的最大历史同步时间戳以及最大时间戳;
以所述最大历史同步时间戳为起始时间戳,以所述最大时间戳为终止时间戳,确定所述同步时间段;
抽取所述源表中对应的时间戳位于所述同步时间段内的行数据,得到所述待处理数据。
可选地,所述第一确定模块具体用于,
确定所述源表的最大时间戳;
获取存储的所述最大历史同步时间戳;或者,在未存储所述最大历史同步时间戳时,将用户配置的同步时间戳或者预设的同步时间戳确定为所述最大历史同步时间戳。
可选地,所述第二确定模块具体用于,
确定所述至少一个行数据中的候选行数据,其中,所述候选行数据的时间戳与所述同步时间段的起始时间戳一致;
确定所述历史同步数据中的参考行数据,其中,所述参考行数据的时间戳与所述起始时间戳一致;
对所述候选行数据和所述参考行数据进行比对处理,确定所述候选行数据中的所述重复行数据。
可选地,所述源表的行数据中设置有主键字段,所述第二确定模块具体用于,
对所述候选行数据的主键字段和所述参考行数据的主键字段进行比对处理,确定所述候选行数据和所述参考行数据中相同的主键字段;
将所述相同的主键字段对应的候选行数据确定为所述重复行数据。
可选地,所述源表的行数据中未设置有主键字段,所述第二确定模块具体用于,
提取所述候选行数据的摘要信息以及所述参考行数据的摘要信息;
对所述候选行数据的摘要信息和所述参考行数据的摘要信息进行比对处理,确定相同的摘要信息,以及所述相同的摘要信息的数量;
将具有所述相同的摘要信息的所述数量个候选行数据确定为所述重复行数据。
可选地,所述装置还包括:更新模块;
所述更新模块,用于采用所述同步时间段中的所述终止时间戳,对存储的最大历史同步时间戳进行更新处理;或者,在未存储有最大历史同步时间戳时,将所述终止时间戳作为最大历史同步时间戳进行存储。
本申请实施例的数据同步装置,通过确定源表中的待处理数据,其中,待处理数据包括对应的时间戳位于同步时间段内的至少一个行数据;确定至少一个行数据中的重复行数据,其中,重复行数据存在于源表的历史同步数据中;删除待处理数据中的重复行数据,得到待同步数据;将待同步数据同步至目的表中,从而解决数据同步时数据重复的问题,提高数据同步效率。
本申请第三方面实施例提出了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的数据同步方法。
本申请第四方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的数据同步方法。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例提供的一种数据同步方法的流程示意图;
图2为本申请实施例提供的另一种数据同步方法的流程示意图;
图3为本申请实施例提供的一种数据同步装置的结构示意图;
图4为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的数据同步方法、装置、电子设备及存储介质。
下面结合图1,对本申请提供的数据同步方法进行详细说明。
图1为本申请实施例提供的一种数据同步方法的流程示意图。
本申请实施例的执行主体为本申请提供的数据同步装置,该数据同步装置可以被配置在电子设备中,以使该电子设备可以执行数据同步功能;或者,该数据同步装置可以配置在电子设备的应用中,以使该应用可以执行数据同步功能。
其中,电子设备可以为任一具有计算能力的设备,该设备或者该设备中的应用能够与多个数据应用通信,实现多个数据应用之间的数据同步。其中,具有计算能力的设备例如可以为个人电脑(Personal Computer,简称PC)、移动终端、服务器等,移动终端例如可以为车载设备、手机、平板电脑、个人数字助理、穿戴式设备等具有各种操作系统、触摸屏和/或显示屏的硬件设备。
其中,电子设备还可以为多个设备组成的集群,例如,云平台等。云平台或者云平台中的特定云服务,可以执行数据同步功能。
如图1所示,该数据同步方法包括以下步骤:
步骤11,确定源表中的待处理数据,其中,待处理数据包括对应的时间戳位于同步时间段内的至少一个行数据。
本申请实施例中,源表为其中数据待同步至其他表的表格;其他表,即为目的表。其中,一个源表可以对应一个或者多个目的表;一个目的表也可以对应一个或者多个源表,可以根据实际需要进行设置。
本申请实施例中,例如,源表和目的表可以属于不同的数据应用,源表至目的表的数据同步,可以实现不同的数据应用间的数据同步。又例如,目的表可以为同一个数据应用中源表的备份表,用于实现对源表的备份。又例如,源表和目的表可以位于集群中不同的服务器上,实现对不同服务器之间的数据同步。可以根据实际需要选择源表和目的表,此处不做限定。
本申请实施例中,源表和目的表的表类型可以相同,也可以不同,可以根据不同表类型对应的驱动,来实现对源表和目的表的处理。针对具体的表,可以根据表的表类型来选择对应的驱动,结合驱动以及结构化查询语言实现对表的查询、数据获取、数据更新等。
本申请实施例中,源表例如可以为数据应用的日志文件。数据同步装置可以解析数据应用的日志文件,获取增量数据,同步至目的表中。若日志文件的开关开启,可以直接从日志文件中拿到增量数据,同步至目的表中;若日志文件的开关没有开启,难以直接从日志文件中拿到增量数据。本申请实施例中的数据同步方法,可以只用于日志文件的开关没有开启的情况;也可以同时用于日志文件的开关开启和没有开启两种情况,可以根据实际需要进行设定。
本申请实施例中,源表中的数据可以周期性的同步至目的表中,例如,每隔1天,每隔10个小时,每隔3个小时等。另外,源表中的数据还可以非周期性的同步至目的表中。其中,同步时间段的起始时间戳可以为上一个同步时间点,同步时间段的终止时间戳可以为当前时间点或者源表的最大时间戳等。需要说明的是,本申请中的源表需要为具有时间戳的表。若源表中未具有时间戳,则需要确定源表中各个行数据的时间戳,并在源表中扩展时间戳字段。
本申请实施例中,数据同步装置执行步骤11的过程例如可以为,确定源表的最大历史同步时间戳以及最大时间戳;以最大历史同步时间戳为起始时间戳,以最大时间戳为终止时间戳,确定同步时间段;抽取源表中对应的时间戳位于同步时间段内的行数据,得到待处理数据。
其中,最大历史同步时间戳的确定方式例如可以为,在未存储最大历史同步时间戳时,即源表中的数据进行初次同步时,将用户配置的同步时间戳或者预设的同步时间戳确定为最大历史同步时间戳;在存储有最大历史同步时间戳时,即源表中的数据进行非初次同步时,获取存储的最大历史同步时间戳。其中,预设的同步时间戳例如可以为1970-01-01 08:00:00。其中,最大历史同步时间戳可以记为lastRunMaxTime;最大时间戳可以记为maxTime。
本申请实施例中,抽取源表中对应的时间戳位于同步时间段内的行数据,得到待处理数据的方式例如可以为,根据同步时间段构建查询条件,根据查询条件抽取源表中的待处理数据。以同步时间段的起始时间戳为最大历史同步时间戳,终止时间戳为最大时间戳为例,构建的查询条件具体可以为,时间戳字段值>=最大历史同步时间戳lastRunMaxTime,且,时间戳字段值<=最大时间戳maxTime,其中,从源表中抽取的待处理的数据可以记为rows。
进一步地,为了确保存储的最大历史同步时间戳的准确性,需要及时对存储最大历史同步时间戳进行更新。对应的,在将待同步的数据同步至目的表中之后,在存储有最大历史同步时间戳时,即源表中的数据进行非初次同步时,采用同步时间段中的终止时间戳,对存储的最大历史同步时间戳进行更新处理;或者,在未存储有最大历史同步时间戳时,即源表中的数据进行初次同步时,将终止时间戳作为最大历史同步时间戳进行存储。其中,最大历史同步时间戳可以存入磁盘或者数据库中,方便下次数据同步时获取。
步骤12,确定至少一个行数据中的重复行数据,其中,重复行数据存在于源表的历史同步数据中。
本申请实施例中,同步时间段的起始时间戳为最大历史同步时间戳,终止时间戳为源表的最大时间戳。位于同步时间段内的至少一个行数据的时间戳满足构建的查询条件,即时间戳字段值>=最大历史同步时间戳lastRunMaxTime,且,时间戳字段值<=最大时间戳maxTime。其中,该同步时间段的起始时间戳为相邻的历史同步时间段的终止时间戳,因此,该同步时间段与相邻的历史同步时间段是存在交集的,即该同步时间段的起始时间戳。从而使得相邻的历史同步时间段内的至少一个行数据,与该同步时间段的至少一个行数据,之间是存在重复行数据的,重复行数据的时间戳等于该同步时间段的起始时间戳。
作为一种示例,上次数据同步时的最大时间戳maxTime例如可以为2021-05-3100:00:00,最大历史同步时间戳lastRunMaxTime例如可以为2021-05-30 00:00:00,那么构建的查询条件具体可以为“timeColumn>=’2021-05-30 00:00:00’and timeColumn<=’2021-05-31 00:00:00’”。其中,timeColumn表示时间戳。假设上次数据同步时有两个行数据的timeColumn为maxTime,则这两个行数据在上次数据同步时会同步至目的表中。那么本次数据同步时最大历史同步时间戳lastRunMaxTime变为2021-05-31 00:00:00,在抽取同步时间段内的行数据时还会把这两个行数据抽取出来并同步至目的表中,造成数据重复,因此,本步骤中需要确定待处理数据中存在于源表的历史同步数据中的重复行数据。
步骤13,删除待处理数据中的重复行数据,得到待同步数据。
本申请实施例中,数据同步装置可以将待处理数据存储在一个新表中,根据该新表的类型确定对应的驱动,结合该驱动以及结构化查询语言实现对该表中部分数据的删除处理。
步骤14,将待同步数据同步至目的表中。
本申请实施例中,数据同步装置可以根据目的表的类型确定对应的驱动,结合该驱动以及结构化查询语言将待同步数据插入到该表中。
本申请实施例提供的数据同步方法,通过确定源表中的待处理数据,其中,待处理数据包括对应的时间戳位于同步时间段内的至少一个行数据;确定至少一个行数据中的重复行数据,其中,重复行数据存在于源表的历史同步数据中;删除待处理数据中的重复行数据,得到待同步数据;将待同步数据同步至目的表中,从而解决数据同步时数据重复的问题,提高数据同步效率。
作为本申请实施例的一种可能的实现方式,在上述步骤12中,由于在上次数据同步后,源表中数据可能存在更新,尤其是源表中该同步时间段的起始时间戳对应的行数据可能会存在更新,例如,增加了具有该起始时间戳的其他行数据。因此,需要结合历史同步数据的内容来确定待处理数据中的重复行数据。结合图2,对本申请提供的数据同步方法进行进一步说明。
图2为本申请实施例提供的另一种数据同步方法的流程示意图。如图2所示,上述步骤12可以包括以下步骤:
步骤21,确定至少一个行数据中的候选行数据,其中,候选行数据的时间戳与同步时间段的起始时间戳一致。
本申请实施例中,确定候选行数据的方式例如可以为,构建候选行数据的查询条件,即“timeColumn=lastRunMaxTime”;然后结合该查询条件从至少一个行数据中抽取候选行数据。其中,候选行数据的个数可以为一个或者多个,其中,候选行数据可以记为handledMaxTimeRows。
步骤22,确定历史同步数据中的参考行数据,其中,参考行数据的时间戳与起始时间戳一致。
本申请实施例中,确定参考行数据的方式例如可以为,构建参考行数据的查询条件,即“timeColumn=lastRunMaxTime”;然后结合该查询条件从历史同步数据中抽取参考行数据。其中,参考行数据的个数可以为一个或者多个。
需要说明的是,在上次数据同步后,源表中数据可能存在更新,尤其是源表中该同步时间段的起始时间戳对应的行数据可能会存在更新,例如,增加了具有该起始时间戳的其他行数据。因此,参考行数据的内容可能存在于候选行数据中,但候选行数据的内容不一定存在于参考行数据中。其中,参考行数据可以记为lastRunHandledRows。
步骤23,对候选行数据和参考行数据进行比对处理,确定候选行数据中的重复行数据。
本申请实施例中,作为一种示例,源表的行数据中可以设置有主键字段,主键字段可以由一个字段表示,也可以由多个字段综合表示。主键字段可以唯一标识行数据。也就是说,不同的行数据,可能具有相同的时间戳,但一定具有不同的主键字段。
因此,源表的行数据中设置有主键字段的情况下,数据同步装置执行步骤23的过程例如可以为,对候选行数据的主键字段和参考行数据的主键字段进行比对处理,确定候选行数据和参考行数据中相同的主键字段;将相同的主键字段对应的候选行数据确定为重复行数据。其中,不同的主键字段对应的行数据为上次数据同步后源表中新增的具有该同步时间段的起始时间戳的行数据。
例如,源表t1中有3个字段c1,c2,c3,源表t1中设置有主键字段且主键字段为c1,则c1的值即可唯一标识行数据,假设上次数据同步时只同步了一个行数据:c1=a,c2=b,c3=c;则本次数据同步确定重复行数据时,只需要比较查询出候选行数据中c1字段的值为a的行数据,直接将c1字段的值为a的行数据作为候选行数据中的重复行数据。
作为另一种示例,源表的行数据中未设置有主键字段。也就是说,行数据的字段中,没有能够唯一标识行数据的字段。针对两个行数据,任意一个字段的数值都可能会相同。因此,需要根据两个行数据的所有内容,来确定两个行数据是否相同。由于行数据的所有内容可能较多,为了减少计算量,可以对行数据的所有内容进行信息摘要处理,确定行数据的MD5值,比对两个行数据的MD5值来确定两个行数据是否相同。其中,行数据的MD5值可以唯一标识行数据。两个行数据的内容不同,则对应的MD5值一定不同;只有两个行数据的所有内容完全相同时,对应的MD5值才会相同,其中,摘要算法可以替换为哈希等散列算法。
另外,源表中是有可能存在所有内容完全相同的两个行数据的。以时间戳为同步时间段的起始时间戳的行数据为例,上次数据同步时,源表中具有起始时间戳且所有内容相同的行数据假设有2个,本地数据同步之前,源表中又增加了具有起始时间戳的一个行数据,该行数据的所有内容与上述2个行数据的内容完全相同,则确定重复行数据时,还需要根据参考行数据中具有相同MD5值的行数据的数量以及候选行数据中具有该MD5值的行数据的数量来确定重复行数据,避免将候选行数据中的3个具有起始时间戳且所有内容相同的行数据都确定为重复行数据,因为此时具有该起始时间戳且具有该内容的重复行数据应该只有2个。
因此,源表的行数据中未设置有主键字段的情况下,数据同步装置执行步骤23的过程例如可以为,提取候选行数据的摘要信息以及参考行数据的摘要信息;对候选行数据的摘要信息和参考行数据的摘要信息进行比对处理,确定相同的摘要信息,以及相同的摘要信息的数量;将具有相同的摘要信息的数量个候选行数据确定为重复行数据。
也就是说,在源表未设置有主键字段的情况下,记录整行数据的MD5值以及具有该MD5值的数据行的行数,比对候选行数据中具有该MD5值的行数据的行数以及参考行数据中具有该MD5值的行数据的行数,若一致,则候选行数据中具有该MD5值的行数据均作为重复行数据;若不一致,将参考行数据中具有该MD5值的行数据的行数作为第一数值,将候选行数据中具有该MD5值的该第一数值个行数据作为重复行数据。
例如,源表t2中有3个字段c4,c5,c6,源表t2中未设置有主键字段,则源表t2可以有完全一样的数据行,假设上次数据同步时同步了两个内容相同的行数据:c4=d,c5=e,c6=f,那么这两个行数据的MD5值相同,假设均为5a2fd2941d88de3710ecaf01193880ed,且记录具有该MD5值的行数据的数量为2;本次数据同步时,若候选行数据中具有该MD5值的行数据的数量也为2,则这两个行数据为重复行数据;候选行数据中具有该MD5值的行数据的数量大于2时,将具有该MD5值的其中两个行数据作为重复行数据。
本申请实施例的数据同步方法,确定至少一个行数据中的候选行数据,其中,候选行数据的时间戳与同步时间段的起始时间戳一致;确定历史同步数据中的参考行数据,其中,参考行数据的时间戳与起始时间戳一致;对候选行数据和参考行数据进行比对处理,确定候选行数据中的重复行数据。由此,能够适用于未设置有主键字段的源表以及设置有主键字段的源表中,用于确定源表中的重复行数据,以进行删除,从而避免了数据同步时的数据重复问题,提高数据同步效率。
与上述几种实施例提供的数据同步方法相对应,本申请的一种实施例还提供一种数据同步装置。由于本申请实施例提供的数据同步装置与上述几种实施例提供的数据同步方法相对应,因此在数据同步方法的实施方式也适用于本实施例提供的数据同步装置,在本实施例中不再详细描述。
图3为本申请实施例提供的一种数据同步装置的结构示意图。
如图3所示,该数据同步装置30,可以包括:第一确定模块31、第二确定模块32、处理模块33以及同步模块34。
其中,第一确定模块31,用于确定源表中的待处理数据,其中,待处理数据包括对应的时间戳位于同步时间段内的至少一个行数据。
第二确定模块32,用于确定所述至少一个行数据中的重复行数据,其中,所述重复行数据存在于所述源表的历史同步数据中。
处理模块33,用于删除待处理数据中的重复行数据,得到待同步数据。
同步模块34,用于将待同步数据同步至目的表中。
作为本申请实施例的一种可能实现方式,第一确定模块31具体用于,确定所述源表的最大历史同步时间戳以及最大时间戳;
以所述最大历史同步时间戳为起始时间戳,以所述最大时间戳为终止时间戳,确定所述同步时间段;
抽取所述源表中对应的时间戳位于所述同步时间段内的行数据,得到所述待处理数据。
作为本申请实施例的另一种可能实现方式,第一确定模块31具体用于,确定所述源表的最大时间戳;
获取存储的所述最大历史同步时间戳;或者,在未存储所述最大历史同步时间戳时,将用户配置的同步时间戳或者预设的同步时间戳确定为所述最大历史同步时间戳。
作为本申请实施例的另一种可能实现方式,第二确定模块32具体用于,
确定所述至少一个行数据中的候选行数据,其中,所述候选行数据的时间戳与所述同步时间段的起始时间戳一致;
确定所述历史同步数据中的参考行数据,其中,所述参考行数据的时间戳与所述起始时间戳一致;
对所述候选行数据和所述参考行数据进行比对处理,确定所述候选行数据中的所述重复行数据。
作为本申请实施例的另一种可能实现方式,源表的行数据中设置有主键字段,所述第二确定模块32具体用于,
对所述候选行数据的主键字段和所述参考行数据的主键字段进行比对处理,确定所述候选行数据和所述参考行数据中相同的主键字段;
将所述相同的主键字段对应的候选行数据确定为所述重复行数据。
作为本申请实施例的另一种可能实现方式,源表的行数据中未设置有主键字段,所述第二确定模块32具体用于,
提取所述候选行数据的摘要信息以及所述参考行数据的摘要信息;
对所述候选行数据的摘要信息和所述参考行数据的摘要信息进行比对处理,确定相同的摘要信息,以及所述相同的摘要信息的数量;
将具有所述相同的摘要信息的所述数量个候选行数据确定为所述重复行数据。
作为本申请实施例的另一种可能实现方式,该数据同步装置30还包括:更新模块;
更新模块,用于采用所述同步时间段中的所述终止时间戳,对存储的最大历史同步时间戳进行更新处理;或者,在未存储有最大历史同步时间戳时,将所述终止时间戳作为最大历史同步时间戳进行存储。
本申请实施例提供的数据同步装置,通过确定源表中的待处理数据,其中,待处理数据包括对应的时间戳位于同步时间段内的至少一个行数据;确定至少一个行数据中的重复行数据,其中,重复行数据存在于源表的历史同步数据中;删除待处理数据中的重复行数据,得到待同步数据;将待同步数据同步至目的表中,解决可能会出现数据重复的问题,提高数据同步效率。
为了实现上述实施例,本申请还提出一种电子设备,图4为本申请实施例提供的一种电子设备的结构示意图。该电子设备包括:
存储器1001、处理器1002及存储在存储器1001上并可在处理器1002上运行的计算机程序。
处理器1002执行所述程序时实现上述实施例中提供的前端开发页面的调试方法。
进一步地,电子设备还包括:
通信接口1003,用于存储器1001和处理器1002之间的通信。
存储器1001,用于存放可在处理器1002上运行的计算机程序。
存储器1001可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器1002,用于执行所述程序时实现上述实施例所述的前端开发页面的调试方法。
如果存储器1001、处理器1002和通信接口1003独立实现,则通信接口1003、存储器1001和处理器1002可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended IndustryStandard Architecture,简称为EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器1001、处理器1002及通信接口1003,集成在一块芯片上实现,则存储器1001、处理器1002及通信接口1003可以通过内部接口完成相互间的通信。
处理器1002可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
为了实现上述实施例,本申请实施例还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例中提供的数据同步方法。
为了实现上述实施例,本申请实施例还提出一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,实现上述实施例中提供的数据同步方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (16)
1.一种数据同步方法,其特征在于,包括:
确定源表中的待处理数据,其中,所述待处理数据包括对应的时间戳位于同步时间段内的至少一个行数据;
确定所述至少一个行数据中的重复行数据,其中,所述重复行数据存在于所述源表的历史同步数据中;
删除所述待处理数据中的所述重复行数据,得到待同步数据;
将所述待同步数据同步至目的表中。
2.根据权利要求1所述的数据同步方法,其特征在于,所述确定源表中的待处理数据,包括:
确定所述源表的最大历史同步时间戳以及最大时间戳;
以所述最大历史同步时间戳为起始时间戳,以所述最大时间戳为终止时间戳,确定所述同步时间段;
抽取所述源表中对应的时间戳位于所述同步时间段内的行数据,得到所述待处理数据。
3.根据权利要求2所述的数据同步方法,其特征在于,所述确定所述源表的最大历史同步时间戳以及最大时间戳,包括:
确定所述源表的最大时间戳;
获取存储的所述最大历史同步时间戳;或者,在未存储所述最大历史同步时间戳时,将用户配置的同步时间戳或者预设的同步时间戳确定为所述最大历史同步时间戳。
4.根据权利要求1所述的数据同步方法,其特征在于,所述确定所述至少一个行数据中的重复行数据,包括:
确定所述至少一个行数据中的候选行数据,其中,所述候选行数据的时间戳与所述同步时间段的起始时间戳一致;
确定所述历史同步数据中的参考行数据,其中,所述参考行数据的时间戳与所述起始时间戳一致;
对所述候选行数据和所述参考行数据进行比对处理,确定所述候选行数据中的所述重复行数据。
5.根据权利要求4所述的数据同步方法,其特征在于,所述源表的行数据中设置有主键字段,所述对所述候选行数据和所述参考行数据进行比对处理,确定所述候选行数据中的所述重复行数据,包括:
对所述候选行数据的主键字段和所述参考行数据的主键字段进行比对处理,确定所述候选行数据和所述参考行数据中相同的主键字段;
将所述相同的主键字段对应的候选行数据确定为所述重复行数据。
6.根据权利要求4所述的数据同步方法,其特征在于,所述源表的行数据中未设置有主键字段,所述对所述候选行数据和所述参考行数据进行比对处理,确定所述候选行数据中的所述重复行数据,包括:
提取所述候选行数据的摘要信息以及所述参考行数据的摘要信息;
对所述候选行数据的摘要信息和所述参考行数据的摘要信息进行比对处理,确定相同的摘要信息,以及所述相同的摘要信息的数量;
将具有所述相同的摘要信息的所述数量个候选行数据确定为所述重复行数据。
7.根据权利要求2所述的数据同步方法,其特征在于,在将所述待同步数据同步至目的表中之后,所述方法还包括:
采用所述同步时间段中的所述终止时间戳,对存储的最大历史同步时间戳进行更新处理;或者,在未存储有最大历史同步时间戳时,将所述终止时间戳作为最大历史同步时间戳进行存储。
8.一种数据同步装置,其特征在于,包括:
第一确定模块,用于确定源表中的待处理数据,其中,所述待处理数据包括对应的时间戳位于同步时间段内的至少一个行数据;
第二确定模块,用于确定所述至少一个行数据中的重复行数据,其中,所述重复行数据存在于所述源表的历史同步数据中;
处理模块,用于删除所述待处理数据中的所述重复行数据,得到待同步数据;
同步模块,用于将所述待同步数据同步至目的表中。
9.根据权利要求8所述的数据同步装置,其特征在于,所述第一确定模块具体用于,
确定所述源表的最大历史同步时间戳以及最大时间戳;
以所述最大历史同步时间戳为起始时间戳,以所述最大时间戳为终止时间戳,确定所述同步时间段;
抽取所述源表中对应的时间戳位于所述同步时间段内的行数据,得到所述待处理数据。
10.根据权利要求9所述的数据同步装置,其特征在于,所述第一确定模块具体用于,
确定所述源表的最大时间戳;
获取存储的所述最大历史同步时间戳;或者,在未存储所述最大历史同步时间戳时,将用户配置的同步时间戳或者预设的同步时间戳确定为所述最大历史同步时间戳。
11.根据权利要求8所述的数据同步装置,其特征在于,所述第二确定模块具体用于,
确定所述至少一个行数据中的候选行数据,其中,所述候选行数据的时间戳与所述同步时间段的起始时间戳一致;
确定所述历史同步数据中的参考行数据,其中,所述参考行数据的时间戳与所述起始时间戳一致;
对所述候选行数据和所述参考行数据进行比对处理,确定所述候选行数据中的所述重复行数据。
12.根据权利要求11所述的数据同步装置,其特征在于,所述源表的行数据中设置有主键字段,所述第二确定模块具体用于,
对所述候选行数据的主键字段和所述参考行数据的主键字段进行比对处理,确定所述候选行数据和所述参考行数据中相同的主键字段;
将所述相同的主键字段对应的候选行数据确定为所述重复行数据。
13.根据权利要求11所述的数据同步装置,其特征在于,所述源表的行数据中未设置有主键字段,所述第二确定模块具体用于,
提取所述候选行数据的摘要信息以及所述参考行数据的摘要信息;
对所述候选行数据的摘要信息和所述参考行数据的摘要信息进行比对处理,确定相同的摘要信息,以及所述相同的摘要信息的数量;
将具有所述相同的摘要信息的所述数量个候选行数据确定为所述重复行数据。
14.根据权利要求9所述的数据同步装置,其特征在于,所述装置还包括:更新模块;
所述更新模块,用于采用所述同步时间段中的所述终止时间戳,对存储的最大历史同步时间戳进行更新处理;或者,在未存储有最大历史同步时间戳时,将所述终止时间戳作为最大历史同步时间戳进行存储。
15.一种电子设备,其特征在于,包括:
存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1-7中任一所述的数据同步方法。
16.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111124023.XA CN113918648A (zh) | 2021-09-24 | 2021-09-24 | 数据同步方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111124023.XA CN113918648A (zh) | 2021-09-24 | 2021-09-24 | 数据同步方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113918648A true CN113918648A (zh) | 2022-01-11 |
Family
ID=79235811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111124023.XA Pending CN113918648A (zh) | 2021-09-24 | 2021-09-24 | 数据同步方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113918648A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116506449A (zh) * | 2023-06-26 | 2023-07-28 | 新亿成科技(江苏)有限公司 | 通信网络节点信息同步方法、系统、设备及存储介质 |
CN116955364A (zh) * | 2023-09-21 | 2023-10-27 | 深圳掌酷软件有限公司 | 基于区块链的数据存储方法、设备及存储介质 |
-
2021
- 2021-09-24 CN CN202111124023.XA patent/CN113918648A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116506449A (zh) * | 2023-06-26 | 2023-07-28 | 新亿成科技(江苏)有限公司 | 通信网络节点信息同步方法、系统、设备及存储介质 |
CN116506449B (zh) * | 2023-06-26 | 2023-09-26 | 新亿成科技(江苏)有限公司 | 通信网络节点信息同步方法、系统、设备及存储介质 |
CN116955364A (zh) * | 2023-09-21 | 2023-10-27 | 深圳掌酷软件有限公司 | 基于区块链的数据存储方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108255925B (zh) | 一种数据表结构变更情况的显示方法及其终端 | |
CN108121782B (zh) | 查询请求的分配方法、数据库中间件系统以及电子设备 | |
CN113918648A (zh) | 数据同步方法、装置、电子设备及存储介质 | |
CN113111129A (zh) | 数据同步方法、装置、设备及存储介质 | |
CN111177144B (zh) | 表同步方法、装置、设备、存储介质及系统 | |
EP3264291A1 (en) | Data block processing method and device | |
CN110647531A (zh) | 数据同步方法、装置、设备及计算机可读存储介质 | |
CN111190551B (zh) | 一种redis数据的迁移系统、迁移方法、装置及终端 | |
CN114461691A (zh) | 状态机的控制方法、装置、电子设备及存储介质 | |
CN114398397A (zh) | 数据处理方法、装置、存储介质以及系统 | |
CN111143092B (zh) | 故障录波数据处理方法、系统及终端设备 | |
CN110554992B (zh) | 一种分布式元数据路径管理方法、系统、终端及存储介质 | |
WO2021179488A1 (zh) | 监控数据存储方法、设备、服务器及存储介质 | |
CN111552673A (zh) | 文件处理方法、装置、电子设备及存储介质 | |
CN113157716B (zh) | 一种数据处理方法、装置、设备及介质 | |
CN115421965A (zh) | 一致性校验方法、装置、电子设备及存储介质 | |
CN111209597B (zh) | 数据校验方法及应用系统 | |
CN109325057B (zh) | 中间件管理方法、装置、计算机设备以及存储介质 | |
CN112612773A (zh) | 数据库同步测试方法、装置、计算机设备及存储介质 | |
CN109298974B (zh) | 系统控制方法、装置、计算机及计算机可读存储介质 | |
CN114547184A (zh) | 人员信息同步方法、终端设备及存储介质 | |
CN109783580A (zh) | 数据同步方法及装置 | |
CN111475105B (zh) | 监控数据存储方法、设备、服务器及存储介质 | |
CN112711608B (zh) | 数据展示方法、装置、计算机可读存储介质和计算机设备 | |
CN110716939B (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 |