一种多模型数据的同步方法及装置
技术领域
本发明涉及数据处理领域,尤其涉及一种多模型数据的同步方法及装置。
背景技术
随着社会信息化的快速发展,产生了大量的数据信息,需要数据库对大量的数据进行存储,在数据库的管理中,存在对不同数据库中存储的数据进行同步的需求。
当前,可采用直接同步方式,来实现数据库之间的同步,在数据库之间的直接同步中,数据进行随机排列,然后对随机排列的数据进行同步。然而,实践发现,在数据库的数据同步中(如多模型电网数据同步),由于数据模型类别多、数据量级大,采用直接同步方式无法针对数据进行有序同步,最终导致数据同步效率低。
发明内容
本发明所要解决的技术问题在于,提供一种多模型数据的同步方法及装置,能够在数据库之间的同步中实现数据的有序同步,从而提高数据同步效率。
为了解决上述技术问题,本发明第一方面公开了一种多模型数据的同步方法,所述方法包括:
扫描待同步数据库中的待同步任务;
对所述待同步任务进行拆解,得到所述待同步任务对应的任务列表清单,其中,所述任务列表清单包括至少一个任务,每个所述任务包括至少一个数据表;
按照预设顺序将所述任务列表清单中的数据从所述待同步数据库同步到至少一个目标数据库中。
作为一种可选的实施方式,在本发明第一方面中,所述按照预设顺序将所述任务列表清单中的数据从所述待同步数据库同步到至少一个目标数据库中,包括:
按照串行方式将所述任务列表清单中的任务从所述待同步数据库同步到至少一个目标数据库中;
在将所述任务列表清单中的任一任务从所述待同步数据库同步到所有所述目标数据库的过程中,按照并行方式将该任务包括的数据表中的数据从所述待同步数据库同步到所有所述目标数据库中。
作为一种可选的实施方式,在本发明第一方面中,所述扫描待同步数据库中的待同步任务之前,所述方法还包括:
读取待同步数据库的配置项,所述配置项包括数据同步频率和线程,且所述配置项是根据所述待同步数据库的业务类型和/或数据量级确定的;
其中,所述扫描待同步数据库中的待同步任务,包括:
根据所述配置项定时扫描待同步数据库中的待同步任务。
作为一种可选的实施方式,在本发明第一方面中,所述对所述待同步任务进行拆解,得到所述待同步任务对应的任务列表清单,包括:
以多线程方式对所述待同步任务中的每个任务进行拆解,得到所述待同步任务对应的任务列表清单;
其中,所述对所述待同步任务进行拆解,得到所述待同步任务对应的任务列表清单之后,所述方法还包括:
将所述任务列表清单转换成能够被执行的SQL语句。
作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
判断所述任务列表清单中的已写入任务是否存在对应的外部事务,所述已写入任务包括所述任务列表清单中已同步至所有所述目标数据库的任务;
当判断出所述已写入任务存在所述外部事务时,调用所述外部事务的接口,执行所述外部事务;
其中,所述执行所述外部事务之后,所述方法还包括:
对所述已写入任务标记用于表示所述外部事务已完成的任务完成标记。
作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
根据所述任务列表清单中的任务同步情况,生成状态标记,其中,所述状态标记包括所述任务列表清单中任务的状态标记和数据表的状态标记;和/或,
根据所述任务列表清单中的任务同步情况,生成日志信息,其中,所述日志信息包括所述任务列表清单中任务的日志信息和数据表的日志信息。
作为一种可选的实施方式,在本发明第一方面中,所述方法还包括:
获取所述任务列表清单对应的所有所述状态标记;
根据所有所述状态标记判断所述任务列表清单是否存在执行失败的任务和数据表;
当判断出存在执行失败的任务和数据表时,根据执行失败的任务和数据表确定补偿任务列表清单,其中,所述补偿任务列表清单包括至少一个执行失败的目标任务,每个所述目标任务包括至少一个数据表;
按照预设顺序将所述补偿任务列表清单中的数据从所述待同步数据库同步到所有所述目标数据库中。
本发明第二方面公开了一种多模型数据的同步装置,所述装置包括:
扫描模块,用于扫描待同步数据库中的待同步任务;
拆解模块,用于对所述待同步任务进行拆解,得到所述待同步任务对应的任务列表清单,其中,所述任务列表清单包括至少一个任务,每个所述任务包括至少一个数据表;
同步模块,用于按照预设顺序将所述任务列表清单中的数据从所述待同步数据库同步到至少一个目标数据库中。
作为一种可选的实施方式,在本发明第二方面中,所述同步模块按照预设顺序将所述任务列表清单中的数据从所述待同步数据库同步到至少一个目标数据库中的方式具体为:
按照串行方式将所述任务列表清单中的任务从所述待同步数据库同步到至少一个目标数据库中;
在将所述任务列表清单中的任一任务从所述待同步数据库同步到所有所述目标数据库的过程中,按照并行方式将该任务包括的数据表中的数据从所述待同步数据库同步到所有所述目标数据库中。
作为一种可选的实施方式,在本发明第二方面中,所述装置还包括:
读取模块,用于在所述扫描模块扫描待同步数据库中的待同步任务之前,读取待同步数据库的配置项,所述配置项包括数据同步频率和线程,且所述配置项是根据待同步数据库的业务类型和/或数据量级确定的;
其中,所述扫描模块扫描待同步数据库中的待同步任务的方式具体为:
根据所述配置项定时扫描待同步数据库中的待同步任务。
作为一种可选的实施方式,在本发明第二方面中,所述拆解模块对所述待同步任务进行拆解,得到所述待同步任务对应的任务列表清单的方式具体为:
以多线程方式对所述待同步任务中的每个任务进行拆解,得到所述待同步任务对应的任务列表清单;
其中,所述装置还包括:
转换模块,用于在所述拆解模块对所述待同步任务进行拆解,得到所述待同步任务对应的任务列表清单之后,将所述任务列表清单转换成能够被执行的SQL语句。
作为一种可选的实施方式,在本发明第二方面中,所述装置还包括:
判断模块,用于判断所述任务列表清单中的已写入任务是否存在对应的外部事务,所述已写入任务包括所述任务列表清单中已同步至所有所述目标数据库的任务;
调用执行模块,用于当所述判断模块判断出所述已写入任务存在所述外部事务时,调用所述外部事务的接口,执行所述外部事务;
其中,所述装置还包括:
标记生成模块,用于在所述调用执行模块执行所述外部事务之后,对所述已写入任务标记用于表示所述外部事务已完成的任务完成标记。
作为一种可选的实施方式,在本发明第二方面中,所述标记生成模块,还用于根据所述任务列表清单中的任务同步情况,生成状态标记,其中,所述状态标记包括所述任务列表清单中任务的状态标记和数据表的状态标记;和/或,所述装置还包括:
日志生成模块,用于根据所述任务列表清单中的任务同步情况,生成日志信息,其中,所述日志信息包括所述任务列表清单中任务的日志信息和数据表的日志信息。
作为一种可选的实施方式,在本发明第二方面中,所述装置还包括:
获取模块,用于获取所述任务列表清单对应的所有所述状态标记;
所述判断模块,还用于根据所有所述状态标记判断所述任务列表清单是否存在执行失败的任务和数据表;
确定模块,用于当所述判断模块判断出存在执行失败的任务和数据表时,根据执行失败的任务和数据表确定补偿任务列表清单,其中,所述补偿任务列表清单包括至少一个执行失败的目标任务,每个所述目标任务包括至少一个数据表;
所述同步模块,还用于按照预设顺序将所述补偿任务列表清单中的数据从所述待同步数据库同步到所有所述目标数据库中。
本发明第三方面公开了另一种多模型数据的同步装置,所述装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明第一方面公开的一种多模型数据的同步方法中的部分或全部步骤。
本发明第四方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行本发明第一方面公开的一种多模型数据的同步方法中的部分或全部步骤。
与现有技术相比,本发明实施例具有以下有益效果:
本发明实施例中,扫描待同步数据库中的待同步任务;对所述待同步任务进行拆解,得到所述待同步任务对应的任务列表清单,其中,所述任务列表清单包括至少一个任务,每个所述任务包括至少一个数据表;按照预设顺序将所述任务列表清单中的数据从所述待同步数据库同步到至少一个目标数据库中。可见,实施本发明实施例能够扫描待同步数据库中的待同步任务,拆解待同步任务,得到数据表级别的任务列表清单,由于该数据表级别的任务列表清单对待同步任务中的数据进行了更精细的,更有规律的拆解,使得任务列表清单中的数据进行了有效聚类,随后按照预设顺序将该数据表级别的任务列表清单中的数据同步到至少一个目标数据库中,能够在数据库之间的同步中实现数据的有序同步,从而提高数据同步效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种多模型数据的同步方法的流程示意图;
图2是本发明实施例公开的另一种多模型数据的同步方法的流程示意图;
图3是本发明实施例公开的一种双数据库双向同步的示意图;
图4是本发明实施例公开的另一种多数据库一对多同步的示意图;
图5是本发明实施例公开的一种多模型数据的同步装置的结构示意图;
图6是本发明实施例公开的另一种多模型数据的同步装置的结构示意图;
图7是本发明实施例公开的又一种多模型数据的同步装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明实施例公开了一种多模型数据的同步方法及装置,可先扫描待同步数据库中的待同步任务,拆解待同步任务,得到数据表级别的任务列表清单,并按照预设顺序将数据表级别的任务列表清单中的数据从待同步数据库同步到至少一个目标数据库中,能够在数据库之间的同步中实现数据的有序同步,从而提高数据同步效率。以下分别进行详细说明。
实施例一
请参阅图1,图1是本发明实施例公开的一种多模型数据的同步方法的流程示意图。如图1所示,该多模型数据的同步方法可以包括以下操作:
101、扫描待同步数据库中的待同步任务。
本发明实施例中,该待同步数据库数量为一个,该待同步数据库中的待同步任务为该待同步数据库中的增量数据,该增量数据可以理解为:相对于该待同步数据库前一次同步的数据,该待同步数据库中发生变动的数据,该增量数据包括增加的数据、减少的数据、发生修改的数据等,也可以为其他增量数据,本发明实施例不做限定。
本发明实施例中,该待同步数据库通过JDBC+mybatis技术实现与目标数据库的连接。
102、对待同步任务进行拆解,得到待同步任务对应的任务列表清单,其中,任务列表清单包括至少一个任务,每个任务包括至少一个数据表。
本发明实施例中,对待同步任务进行拆解得到数据表级别的任务列表清单,该任务列表清单包括一个任务或者多个任务,每个任务都拆解成一个数据表或者多个数据表,该数据表级别的任务列表清单对待同步任务中的数据进行了更精细的,更有规律的拆解,使得任务列表清单中的数据进行了有效聚类。当该待同步数据库的增量数据量级很大时,该任务列表清单就包括数量很多的任务,并且,每个任务下都包括数量很多的数据表;当该待同步数据库的增量数据量级很小时,该任务列表清单就可能包括一个任务,并且,该任务下可能只包括一个数据表。
103、按照预设顺序将任务列表清单中的数据从待同步数据库同步到至少一个目标数据库中。
本发明实施例中,对待同步数据库中的数据表级别的任务列表清单中的数据,按照预设顺序同步到目标数据库中,该预设顺序可以为数据修改时间顺序、数据类型顺序、数据大小顺序等,也可以为能够实现有序同步数据的其他预设顺序,本发明实施例不做限定。
本发明实施例中,如图3所示,图3为双数据库双向同步的示意图,在双数据库的双向同步中,该目标数据库为一个,该待同步数据库的待同步任务可以同步到该目标数据库,并且,该目标数据库中的待同步任务也可以同步到该待同步数据库,从而实现数据库之间的双向数据同步。
本发明实施例中,如图4所示,图4为多数据库一对多同步的示意图,在多数据库一对多同步中,该目标数据库为多个,该待同步数据库的待同步任务可以同时同步到多个目标数据库中,从而实现一个数据库同时与多个目标数据库同步。
本发明实施例中,对于该多模型数据同步的整个过程,以多模型电网数据库举例来说,其中,待同步数据库为电网数据库1,目标数据库为电网数据库2,在数据同步中,先扫描电网数据库1中的待同步任务,将电网数据库1中的待同步任务中的增量数据进行拆解,得到待同步任务中的增量数据对应的数据表级别的任务列表清单,其中,该电网数据库1的任务列表清单包括100个任务,该100个任务中的每个任务包括数量大于等于1000个的数据表,按照任务列表清单中的100个任务的数据量大小顺序将电网数据库1中的待同步任务同步到电网数据库2中,从而实现电网数据库1的数据同步到电网数据库2。在电网数据库1将数据同步到电网数据库2后,可以进行电网数据库2的数据同步到电网数据库1,同理,先扫描电网数据库2中的待同步任务,将电网数据库2中的待同步任务中的增量数据进行拆解,得到待同步任务中的增量数据对应的数据表级别的任务列表清单,其中,该电网数据库2的任务列表清单包括200个任务,该200个任务中的每个任务包括数量大于等于1000个的数据表,按照任务列表清单中的200个任务的数据量大小顺序将电网数据库2中的待同步任务同步到电网数据库1中,从而实现包含亿级数据量、复杂模型的电网数据库1和电网数据库2之间的双向数据同步。值得说明的是,电网数据库1和电网数据库2之间的双向数据同步过程可以同时进行。
本发明实施例中,对于该多模型数据同步的整个过程,以多模型电网数据库举例来说,其中,待同步数据库为电网数据库1,目标数据库为电网数据库2、电网数据库3和电网数据库4,在数据同步中,先扫描电网数据库1中的待同步任务,将电网数据库1中的待同步任务中的增量数据进行拆解,得到待同步任务中的增量数据对应的数据表级别的任务列表清单,其中,该电网数据库1的任务列表清单包括100个任务,该100个任务中的每个任务包括数量大于等于1000个的数据表,按照任务列表清单中的100个任务的数据量大小顺序将电网数据库1中的待同步任务同步到电网数据库2、电网数据库3和电网数据库4中,从而实现包含亿级数据量、复杂模型的电网数据库1和多个电网数据库2、电网数据库3和电网数据库4之间的一对多数据同步。
可见,实施本发明实施例所描述的一种多模型数据的同步方法能够通过对待同步数据库中的待同步任务进行拆解,得到数据表级别的任务列表清单,该数据表级别的任务列表清单对待同步任务中的数据进行了更精细的,更有规律的拆解,使得任务列表清单中的数据进行了有效聚类,随后按照预设顺序将该数据表级别的任务列表清单中的数据同步到至少一个目标数据库中,能够在数据库之间的同步中实现数据的有序同步,从而提高数据同步效率。
实施例二
请参阅图2,图2是本发明实施例公开的另一种多模型数据的同步方法的流程示意图。如图2所示,该多模型数据的同步方法可以包括以下操作:
201、读取待同步数据库的配置项,配置项包括数据同步频率和线程,且配置项是根据待同步数据库的业务类型和/或数据量级确定的。
202、根据配置项定时扫描待同步数据库中的待同步任务。
本发明实施例中,可通过定时器根据待同步数据库的配置项定时扫描待同步数据库中的待同步任务,定时器采用quartz定时任务框架,根据设定的数据确定定时扫描频率,以定时扫描该待同步数据库中的待同步任务,通过配置项确定定时扫描频率来扫描待同步数据库中的待同步任务,可进一步提高数据同步效率。
203、以多线程方式对待同步任务中的每个任务进行拆解,得到待同步任务对应的任务列表清单,其中,任务列表清单包括至少一个任务,每个任务包括至少一个数据表。
本发明实施例中,在对该待同步数据库中的待同步任务进行拆解中,通过多线程的方式逐一对每个任务进行拆解,形成数据表级别的任务列表清单,该数据表级别的任务列表清单对待同步任务中的数据进行了更精细的,更有规律的拆解,使得任务列表清单中的数据进行了有效聚类,并且通过多线程的方式进行任务拆解,可有效提高该待同步数据库中的待同步任务的拆解效率。
在一个可选的实施例中,在得到待同步任务对应的任务列表清单之后,该方法还可以包括以下操作:
将任务列表清单转换成能够被执行的SQL语句。
该可选的实施例中,该SQL语句为结构化查询语言,该结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
204、按照串行方式将任务列表清单中的任务从待同步数据库同步到至少一个目标数据库中,在将任务列表清单中的任一任务从待同步数据库同步到所有目标数据库的过程中,按照并行方式将该任务包括的数据表中的数据从待同步数据库同步到所有目标数据库中。
本发明实施例中,在对待同步数据库中的任务列表清单进行同步中,通过对任务列表清单中的多个任务按照串行方式进行同步,即依次同步任务1、任务2、任务3以及任务列表清单中的所有任务,在每个任务的同步中,通过并行方式将该任务包括的数据表中的数据从待同步数据库同步到所有目标数据库中,即同时同步该任务中的数据表1、数据表2、数据表3以及该任务下的所有数据表。
本发明实施例中,对于该多模型数据同步的整个过程,以多模型电网数据库举例来说,其中,待同步数据库为电网数据库1,目标数据库为电网数据库2,在数据同步中,先读取待电网数据库1的配置项,根据配置项的结果,设定好数据同步频率,通过定时器定时扫描该电网数据库1中的待同步任务,将电网数据库1中的待同步任务中的增量数据进行拆解,得到待同步任务中的增量数据对应的数据表级别的任务列表清单,其中,该电网数据库1的任务列表清单包括100个任务,该100个任务中的每个任务包括数量大于等于1000个的数据表,按照串行方式依次将任务列表清单中的100个任务从电网数据库1同步到电网数据库2中。对于该100个任务中的每个任务的同步中,通过并行方式对每个任务包括的数量大于等于1000个的数据表同时进行同步,从而实现电网数据库1的数据同步到电网数据库2。在电网数据库1将数据同步到电网数据库2后,可以进行电网数据库2的数据同步到电网数据库1,同理,先读取待电网数据库2的配置项,根据配置项的结果,设定好数据同步频率,通过定时器定时扫描该电网数据库2中的待同步任务,将电网数据库2中的待同步任务中的增量数据进行拆解,得到待同步任务中的增量数据对应的数据表级别的任务列表清单,其中,该电网数据库2的任务列表清单包括200个任务,该200个任务中的每个任务包括数量大于等于1000个的数据表,按照串行方式依次将任务列表清单中的200个任务从电网数据库2同步到电网数据库1中,对于该200个任务中的每个任务的同步中,通过并行方式对每个任务包括的数量大于等于1000个的数据表同时进行同步,从而实现包含亿级数据量、复杂模型的电网数据库1和电网数据库2之间的双向数据同步。值得说明的是,电网数据库1和电网数据库2之间的双向数据同步过程可以同时进行。
本发明实施例中,对于该多模型数据同步的整个过程,以多模型电网数据库举例来说,其中,待同步数据库为电网数据库1,目标数据库为电网数据库2、电网数据库3和电网数据库4,在数据同步中,先读取待电网数据库1的配置项,根据配置项的结果,设定好数据同步频率,通过定时器定时扫描该电网数据库1中的待同步任务,将电网数据库1中的待同步任务中的增量数据进行拆解,得到待同步任务中的增量数据对应的数据表级别的任务列表清单,其中,该电网数据库1的任务列表清单包括100个任务,该100个任务中的每个任务包括数量大于等于1000个的数据表,按照串行方式依次将任务列表清单中的100个任务从电网数据库1同步到电网数据库2、电网数据库3和电网数据库4中,对于该100个任务中的每个任务的同步中,通过并行方式对每个任务包括的数量大于等于1000个的数据表同时进行同步以实现电网数据库1的数据同步到电网数据库2、电网数据库3和电网数据库4中,从而实现包含亿级数据量、复杂模型的电网数据库1和多个电网数据库2、电网数据库3和电网数据库4之间的一对多数据同步。
可见,实施本发明实施例所描述的一种多模型数据的同步方法能够通过先读取待同步数据库的配置项来定时扫描待同步数据库中的待同步任务,对待同步数据库中的待同步任务通过多线程的方式进行拆解,可提高数据拆解效率,在拆解得到数据表级别的任务列表清单后,由于该数据表级别的任务列表清单对待同步任务中的数据进行了更精细的,更有规律的拆解,使得任务列表清单中的数据进行了有效聚类,随后通过串行方式对任务列表清单中的任务进行同步,并且在每个任务同步中,通过并行方式对每个任务中的数据表进行同步,能够进一步提高数据同步效率。
在另一个可选的实施例中,该方法还可以包括以下操作:
判断任务列表清单中的已写入任务是否存在对应的外部事务,已写入任务包括任务列表清单中已同步至所有目标数据库的任务;
当判断出已写入任务存在外部事务时,调用外部事务的接口,执行外部事务;
其中,执行外部事务之后,方法还包括:
对已写入任务标记用于表示外部事务已完成的任务完成标记。
该可选的实施例中,该外部事务包括该任务列表清单中的任务同步的中止、暂缓、校验等,也包括其他与该任务同步相关的其他外部事务,本发明是不做限定。
该可选的实施例中,当外部事务为对该任务列表清单中的任务同步的中止事务时,针对已写入任务触发中止事务,调用该中止事务的接口,并执行该中止事务,完成同步数据的中止,在中止事务完成后,对该已写入任务进行标记,使得该任务的状态可通过标记信息获取。
该可选的实施例中,当外部事务为对该任务列表清单中的任务同步的暂缓事务时,针对已写入任务触发暂缓事务,调用暂缓事务的接口,并执行该暂缓事务,并在暂缓的预设时间段后,自动进行任务同步,在暂缓事务完成后,对该已写入任务进行标记,使得该任务的状态可通过标记信息获取。
该可选的实施例中,当外部事务为对该任务列表清单中的任务同步的校验事务时,针对已写入任务触发校验事务,调用校验事务的接口,并执行该校验事务,完成同步数据的校验,在校验事务完成后,对该已写入任务进行标记,使得该任务的状态可通过标记信息获取。
可见,该可选的实施例能够通过在任务列表清单中的已写入任务存在外部事务时,调用外部事务接口,并执行外部事务,通过设置外部事务,可实现数据同步过程中的扩展需求(如对同步任务进行中止、暂缓、校验等),提高数据同步的便利性。
在又一个可选的实施例中,该方法还可以包括以下操作:
根据任务列表清单中的任务同步情况,生成状态标记,其中,状态标记包括任务列表清单中任务的状态标记和数据表的状态标记;和/或,
根据任务列表清单中的任务同步情况,生成日志信息,其中,日志信息包括任务列表清单中任务的日志信息和数据表的日志信息。
该可选的实施例中,通过对数据库的数据同步过程中的信息进行监控,实现对数据库的同步操作管理,监控的信息包括任务列表清单中的任务同步的基本信息和日志信息等,也包括在任务列表清单中的任务同步过程中的其他信息,本发明不做限定。
该可选的实施例中,该数据同步过程中的监控信息,可在前端进行展示,展示的页面包括同步状态展示页面和同步日志查询页面,基于Spring MVC开发,该前端可以为显示面板,通过在显示面板上显示数据同步过程中的监控信息。
可见,该可选的实施例能够在对任务列表清单中的任务同步过程中对信息进行监控,并通过将监控信息进行前端展示,实现数据同步的直观呈现和及时展示,能够对数据同步状态进行监控及异常处理,从而提高数据同步的管控效率。
在又一个可选的实施例中,该方法还可以包括以下操作:
获取任务列表清单对应的所有状态标记;
根据所有状态标记判断任务列表清单是否存在执行失败的任务和数据表;
当判断出存在执行失败的任务和数据表时,根据执行失败的任务和数据表确定补偿任务列表清单,其中,补偿任务列表清单包括至少一个执行失败的目标任务,每个目标任务包括至少一个数据表;
按照预设顺序将补偿任务列表清单中的数据从待同步数据库同步到所有目标数据库中。
该可选的实施例中,通过上述任务列表清单对应的所有状态标记,获取到执行失败的任务和数据表,将执行失败的任务和数据表重新形成补偿任务列表清单,以多模型电网数据库举例来说,其中,待同步数据库为电网数据库1,目标数据库为电网数据库2,在数据同步中,通过查询任务列表清单对应的所有状态标记,获取到执行失败的任务和数据表为任务1中的数据表19,任务9中的数据表3和数据表58,任务76中的数据表132和数据表786,随后将上述执行失败的任务和数据表组成补偿任务列表清单,并按照预设顺序对该补偿任务列表清单中的数据进行重新同步。
可见,该可选的实施例能够通过获取的任务列表清单对应的所有状态标记,对执行失败的任务和数据表重新形成补偿任务列表清单并针对这些数据进行重新的数据同步,能够提高数据同步的完整性。
实施例三
请参阅图5,图5是本发明实施例公开的一种多模型数据的同步装置的结构示意图。如图5所示,该多模型数据的同步装置可以包括:
扫描模块301,用于扫描待同步数据库中的待同步任务;
拆解模块302,用于对待同步任务进行拆解,得到待同步任务对应的任务列表清单,其中,任务列表清单包括至少一个任务,每个任务包括至少一个数据表;
同步模块303,用于按照预设顺序将任务列表清单中的数据从待同步数据库同步到至少一个目标数据库中。
可见,实施图5所描述的装置能够通过对待同步数据库中的待同步任务进行拆解,得到数据表级别的任务列表清单,该数据表级别的任务列表清单对待同步任务中的数据进行了更精细的,更有规律的拆解,使得任务列表清单中的数据进行了有效聚类,随后按照预设顺序将该数据表级别的任务列表清单中的数据同步到至少一个目标数据库中,能够在数据库之间的同步中实现数据的有序同步,从而提高数据同步效率。
在一个可选的实施例中,同步模块303按照预设顺序将任务列表清单中的数据从待同步数据库同步到至少一个目标数据库中的方式具体为:
按照串行方式将任务列表清单中的任务从待同步数据库同步到至少一个目标数据库中;
在将任务列表清单中的任一任务从待同步数据库同步到所有目标数据库的过程中,按照并行方式将该任务包括的数据表中的数据从待同步数据库同步到所有目标数据库中。
在一个可选的实施例中,如图6所示,该装置还可以包括:
读取模块304,用于在扫描模块301扫描待同步数据库中的待同步任务之前,读取待同步数据库的配置项,配置项包括数据同步频率和线程,且配置项是根据待同步数据库的业务类型和/或数据量级确定的;
其中,扫描模块301扫描待同步数据库中的待同步任务的方式具体为:
根据配置项定时扫描待同步数据库中的待同步任务。
可见,实施图6所描述的装置能够通过配置项确定定时扫描频率,以该定时扫描频率扫描待同步数据库中的待同步任务,可进一步提高数据同步效率。
在一个可选的实施例中,如图6所示,图6是本发明实施例公开的另一种多模型数据的同步装置的结构示意图。
拆解模块302对待同步任务进行拆解,得到待同步任务对应的任务列表清单的方式具体为:
以多线程方式对待同步任务中的每个任务进行拆解,得到待同步任务对应的任务列表清单;
其中,装置还包括:
转换模块305,用于在拆解模块302对待同步任务进行拆解,得到待同步任务对应的任务列表清单之后,将任务列表清单转换成能够被执行的SQL语句。
可见,实施图6所描述的装置能够在对该待同步数据库中的待同步任务进行拆解中,通过多线程的方式逐一对每个任务进行拆解,形成数据表级别的任务列表清单,通过多线程的方式进行任务拆解,可有效提高该待同步数据库中的待同步任务的拆解效率。
在一个可选的实施例中,如图6所示,该装置还可以包括:
判断模块306,用于判断任务列表清单中的已写入任务是否存在对应的外部事务,已写入任务包括任务列表清单中已同步至所有目标数据库的任务;
调用执行模块307,用于当判断模块306判断出已写入任务存在外部事务时,调用外部事务的接口,执行外部事务;
其中,装置还包括:
标记生成模块308,用于在调用执行模块307执行外部事务之后,对已写入任务标记用于表示外部事务已完成的任务完成标记。
可见,实施图6所描述的装置能够通过在任务列表清单中的已写入任务存在外部事务时,调用外部事务接口,并执行外部事务,通过设置外部事务,可实现数据同步过程中的扩展需求(如对同步任务进行中止、暂缓、校验等),提高数据同步的便利性。
在一个可选的实施例中,如图6所示,标记生成模块308,还用于根据任务列表清单中的任务同步情况,生成状态标记,其中,状态标记包括任务列表清单中任务的状态标记和数据表的状态标记;和/或,装置还包括:
日志生成模块309,用于根据任务列表清单中的任务同步情况,生成日志信息,其中,日志信息包括任务列表清单中任务的日志信息和数据表的日志信息。
可见,实施图6所描述的装置能够在对任务列表清单中的任务同步过程中对信息进行监控,并通过将监控信息进行前端展示,实现数据同步的直观呈现和及时展示,能够提高数据同步的管控效率。
在一个可选的实施例中,如图6所示,该装置还可以包括:
获取模块310,用于获取任务列表清单对应的所有状态标记;
判断模块306,还用于根据所有状态标记判断任务列表清单是否存在执行失败的任务和数据表;
确定模块311,用于当判断模块306判断出存在执行失败的任务和数据表时,根据执行失败的任务和数据表确定补偿任务列表清单,其中,补偿任务列表清单包括至少一个执行失败的目标任务,每个目标任务包括至少一个数据表;
同步模块303,还用于按照预设顺序将补偿任务列表清单中的数据从待同步数据库同步到所有目标数据库中。
可见,实施图6所描述的装置能够通过获取的任务列表清单对应的所有状态标记,对执行失败的任务和数据表重新形成补偿任务列表清单并针对这些数据进行重新的数据同步,能够提高数据同步的完整性。
实施例四
请参阅图7,图7是本发明实施例公开的又一种多模型数据的同步装置的结构示意图。如图7所示,该装置可以包括:
存储有可执行程序代码的存储器401;
与存储器401耦合的处理器402;
处理器402调用存储器401中存储的可执行程序代码,用于执行实施例一或实施例二所描述的多模型数据的同步方法中的步骤。
实施例五
本发明实施例公开了一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,该计算机程序使得计算机执行实施例一或实施例二所描述的多模型数据的同步方法中的步骤。
实施例六
本发明实施例公开了一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,且该计算机程序可操作来使计算机执行实施例一或实施例二所描述的多模型数据的同步方法中的步骤。
以上所描述的装置实施例仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施例的具体描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、一次可编程只读存储器(One-timeProgrammable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
最后应说明的是:本发明实施例公开的一种多模型数据的同步方法及装置所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:图纸数据的保存方法及保存装置、电子设备