数据同步方法、设备及存储介质与流程

文档序号:27681978发布日期:2021-12-01 00:01阅读:132来源:国知局
数据同步方法、设备及存储介质与流程

1.本技术涉及数据库技术领域,尤其涉及一种数据同步方法、设备及存储介质。


背景技术:

2.在传统的数据库同步方式中,通过获取数据库日志确定数据变更信息,并基于数据库日志,在目标数据库中执行同步任务,以将源数据库中的数据变更信息同步至目标数据库。基于数据库日志进行的数据库同步,要求源数据库与目标数据库类型以及表结构相同。
3.现有的数据库同步方式,难以解决不同类型数据库以及不同表结构之间的数据同步问题,且无法解决对指定表或表中指定列等部分数据的同步问题。


技术实现要素:

4.本技术的多个方面提供一种数据同步方法、设备及存储介质,用以实现不同类型数据库之间的数据同步,提升数据同步的兼容性时。
5.本技术实施例提供一种数据同步方法,适用于第一数据库,所述第一数据库上部署有数据同步程序以及对应的同步配置文件,所述同步配置文件中指定有所述数据同步程序的启动方式,所述方法包括:根据所述同步配置文件中指定的启动方式启动所述第一数据库上的数据同步程序,所述启动方式对应所述数据同步程序的服务角色为客户端或服务端;在所述第一数据库上的数据同步程序作为客户端被启动的情况下,将所述第一数据库作为目标数据库,从所述同步配置文件中读取源数据库的标识以及源数据库中待同步数据的第一数据表以及第一数据列的标识;根据所述源数据库、第一数据表以及第一数据列的标识,向所述源数据库发送第一数据同步请求;以及接收所述源数据库在将所述第一数据列中的数据转换为json格式后返回的第一字符串,并将所述第一字符串解析后存储至第一数据库中。
6.本技术实施例还提供一种计算机设备,包括:处理器以及存储有计算机程序的存储器;所述处理器,用于执行所述计算机程序,以用于:根据同步配置文件中指定的启动方式启动数据同步程序,所述启动方式对应所述数据同步程序的服务角色为客户端或服务端;在所述数据同步程序作为客户端被启动的情况下,从所述同步配置文件中读取源数据库的标识以及源数据库中待同步数据的第一数据表以及第一数据列的标识;根据所述源数据库、第一数据表以及第一数据列的标识,向所述源数据库发送第一数据同步请求;以及接收所述源数据库在将所述第一数据列中的数据转换为json格式后返回的第一字符串,并将所述第一字符串解析后存储至本地数据库中。
7.本技术实施例还提供一种计算机设备,包括:处理器以及存储有计算机程序的存储器;所述处理器,用于执行所述计算机程序,以用于:根据同步配置文件中指定的启动方式启动数据同步程序,所述启动方式对应所述数据同步程序的服务角色为客户端或服务端;在所述数据同步程序作为服务端被启动的情况下,将本地数据库作为源数据库,接收目
标数据库发送的第二数据同步请求,所述第二数据同步请求中包括本地数据库中待同步数据的第二数据表以及第二数据列的标识;根据所述第二数据表以及第二数据列的标识,从所述第二数据表中读取所述第二数据列中的数据;将所述数据转换为json格式以得到第二字符串,并向所述目标数据库返回所述第二字符串,所述第二字符串被解析后存储至所述目标数据库中。
8.本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,当所述计算机程序被处理器执行时,致使所述处理器实现本技术方法实施例中的步骤。
9.在本技术实施例中,通过配置文件的方式为部署在数据库上的数据同步程序配置数据库信息和启动方式,可将客户端和服务端进行整合配置,有利于统一管理和维护。并且,以配置文件的形式对数据库信息进行单独管理,将客户端和服务端的参数配置方式从数据库抽取到独立文件中,可以根据具体的需求对配置文件进行灵活扩展和变更,有助于对不同数据库之间的数据同步进行通用性处理。
附图说明
10.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
11.图1a为本技术实施例提供的一种数据同步方法的流程图;
12.图1b为本技术实施例提供的另一种数据同步方法的流程图;
13.图1c为本技术实施例提供的又一种数据同步方法的流程图;
14.图2为本技术实施例提供的一种计算机设备的结构示意图。
具体实施方式
15.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
16.为了解决现有数据同步方式中存在的问题,本技术实施例提供一种数据同步工具,该数据同步工具以独立文件的形式对数据同步任务、数据库信息以及缓存、日志和启动脚本等内容进行单独配置和管理,在有数据同步需求的情况下,通过增加配置文件建立源数据库与目标数据库的对应关系,以在数据同步程序执行时,依据该对应关系从源数据库向目标数据库同步数据。
17.在本技术实施例中,数据同步工具可以部署到源数据库所在的服务端,也可以部署到目标数据库所在的客户端。可选地,数据同步工具可提供有启动方式配置项,通过为该配置项配置不同的值,可以标识部署有数据同步工具的数据同步程序以不同的对应的方式启动。例如,当启动方式配置项的值为0时,表示数据同步程序以服务端角色启动,相应地,与数据同步程序对应的数据库即为源数据库;当启动方式配置项的值为1时,表示数据同步程序以客户端角色启动,相应地,数据同步程序上对应的数据库即为目标数据库。当然,区分部数据同步程序的方式并不限于此,在此仅为示例性说明。
18.进一步,根据启动方式配置项的值,可在数据同步工具提供的数据库信息配置文
件中配置数据库信息以及在其他相关配置文件中配置其他相关信息。在本技术实施例中,不限定数据库信息的配置方式,可选地,可根据启动方式配置项的值,配置与启动方式对应的数据库信息,也可以同时配置源数据库信息和目标数据库信息,并根据启动方式配置项的值设置对应的数据库信息为有效和/或把另一数据库信息设置成无效。例如,启动方式配置项的值为0,则在数据库信息配置文件中只配置源数据库对应的信息;启动方式配置项的值为1,则在数据库信息配置文件中只配置目标数据库对应的信息。又例如,同时在数据库信息配置文件中配置源数据库和目标数据库的信息,若启动方式配置项的值为0,则把源数据库的信息设置为有效和/或把目标数据库的信息设置为无效;若启动方式配置项的值为1,则把源数据库的信息设置为无效和/或把目标数据库的信息设置为有效。
19.下面,针对数据同步工具提供的各配置文件中的配置内容,就部署于第一数据库上的数据同步程序上以客户端角色启动和以服务端角色启动的两种情况,进行详细说明。
20.a:部署于第一数据库上的数据同步程序以客户端角色启动
21.在本技术实施例中,数据同步工具为作为客户端角色启动的数据同步程序提供有数据库信息配置文件,该数据库信息配置文件用于配置第一数据库的信息,当数据同步程序以客户端角色启动的情况下,第一数据库被作为目标数据库。其中,数据库信息配置文件中的数据库信息配置项包括但不限于:数据库驱动类型、数据库连接地址、数据库的用户名和密码,以及连接数据库的校验语句等。当该数据库信息配置文件建立后,数据同步程序可根据该配置文件中的信息建立目标数据库的连接池,若该配置文件发生变动,例如配置文件被删除,数据库同步程序会自动关闭之前建立的连接池,并建立新的连接池。在有数据同步需求的情况下,数据同步程序可启动并执行数据同步任务,并从数据库信息配置文件中读取各数据库信息配置项的值,确定目标数据库,以在从源数据库获取到数据的情况下,向目标数据库同步数据。
22.进一步,数据同步工具还为作为客户端角色启动的数据同步程序提供有数据同步任务配置文件,该数据同步任务配置文件用于配置数据同步任务的任务信息,其中的信息配置项包括但不限于:数据同步任务的名称、执行数据同步任务访问的地址(源数据库地址)、待同步数据的数据库名(源数据库名)、执行数据同步的sql语句、本地数据库名(目标据库名)以及更新本地数据库的sql语句,以及数据同步任务是否有效的标识和执行数据同步任务的数据同步程序对应的用户名和密码等。
23.进一步可选地,数据同步任务配置文件中还可以包括对数据同步任务进行管理的其他信息配置项,例如,还可以包括设置连续启动的数据同步任务之间的间隔时间等,这样,可以以单线程的方式依次启动不同的数据同步任务,以减轻服务端的处理压力。当然,本技术实施例并不限定以单线程的方式启动数据同步任务,在服务端处理能力强大的情况下,也可以以多个线程并行执行数据同步任务。进一步可选地,每启动一个数据同步任务,可在数据同步工具中增加一个数据同步任务配置文件,为了标识数据同步任务配置文件与数据同步任务之间的对应关系,可将数据同步任务配置文件的文件名与数据同步任务的名称对应,以在启动数据同步任务时,根据该对应关系确定与数据同步任务对应的配置信息。
24.在本技术实施例中,数据同步工具包括缓存文件存储目录,数据同步程序在运行过程中可自动生成缓存文件。可选地,可以将数据同步任务的缓存文件存储位置配置为缓存文件存储目录,以在数据同步任务被执行的情况下,将生成的缓存文件存储至缓存文件
存储目录中。在本实施例中,不限定不同数据同步任务对应的缓存文件的存储方式,例如,数据同步程序执行过程中产生的缓存文件可直接存储至缓存文件存储目录中,也可根据不同的数据同步任务在缓存文件存储目录中进行单独存储。进一步,也不限定对缓存文件存储位置的配置方式,例如,可以以单独的文件对所有缓存文件的存储位置进行统一配置,也可以针对不同的数据同步任务配置对应的缓存文件存储位置。
25.在本技术可选实施例中,针对已经执行过的数据同步任务,若想要重新以初始条件执行该数据同步任务,可将数据同步程序关闭并删除该数据同步任务的缓存文件,这样,在重启数据同步程序后,该数据同步任务可按照初始条件执行。进一步可选地,还可以对数据同步任务进行重命名以及创建对应名称的数据同步任务配置文件,这样,再执行该数据同步任务时,相当于执行一个新的数据同步任务,该数据同步任务即可按照初始条件执行。
26.除上述配置文件之外,本技术实施例的数据同步工具还为作为客户端角色启动的数据同步程序提供有其他信息的配置文件,例如,还可以包括启动脚本配置文件,用于配置启动数据同步程序的各种命令语句,在该配置文件中还可以配置数据同步程序的启动方式为客户端启动,这样,在数据同步程序启动时,可以以客户端角色进行启动。进一步可选地,数据同步工具还提供有对表数据的同步方式以及网络访问时长等信息的配置文件,根据数据同步任务的具体需求可灵活配置对应的信息。例如,对于时间数据可配置其对应的同步方式为动态同步方式;对数据同步任务执行过程中的连接时长、读数据时长和写数据时长等信息,可根据需求配置对应的超时时间,可选地,该时间可以毫秒为单位,以在超时的情况下进行相应的处理或提示。
27.b:部署于第一数据库上的数据同步程序以服务端角色启动
28.在本技术实施例中,数据同步工具为作为服务端角色启动的数据同步程序提供有数据库信息配置文件,该数据库信息配置文件用于配置待同步数据的源数据库信息,其中的数据库信息配置项包括但不限于:数据库驱动类型、数据库连接地址、数据库的用户名和密码,以及连接数据库的校验语句等。当该数据库信息配置文件建立后,数据同步程序可根据该配置文件中的信息建立源数据库的连接池,若该配置文件发生变动,例如配置文件被删除,数据库同步程序会自动关闭之前建立的连接池,并建立新的连接池。进一步可选地,为了建立源数据库与数据同步任务的对应关系,可将数据库信息配置文件的名称设置为源数据库的名称,该名称对应客户端的数据同步任务配置文件中的待同步数据的数据库名。这样,在数据同步程序执行数据同步任务时,可根据数据同步任务名称确定源数据库的信息,并从源数据库中读取数据。
29.在本技术实施例中,客户端可访问服务端并从服务端获取数据,对于服务端而言,在原则上可被任何客户端访问。可选地,为了保证数据同步的安全性和可靠性,数据同步工具为作为服务端角色启动的数据同步程序提供有账号配置文件,该配置文件用于配置客户端的访问权限。可选地,账号配置文件中的信息配置项包括但不限于:账号名和密码、账号是否有效的标识以及允许访问的数据库地址等;其中,账号名是服务端使用数据同步工具的身份标识;允许访问的数据库地址是客户端对应的数据库地址,其可以为一个或多个。
30.在本技术实施例中,一个服务端使用一个账号,每个账号对应一个账号配置文件,可选地,为了标识不同账号对应的账号信息,可将账号配置文件的名称设置为对应的账号名,当某一账号配置文件变更或删除的情况下,将会影响该账号对应的服务端允许访问的
客户端的访问权限。进一步可选地,数据同步工具中提供有账号配置文件存储目录,为每个服务端配置的账号配置文件可存储至账号配置文件存储目录中。在本实施例中,不限定不同服务端对应的账号文件的存储方式,例如,不同服务端对应的账号文件可直接存储至账号配置文件存储目录中,也可根据不同服务端在账号配置文件存储目录中进行单独存储。
31.在本技术实施例中,数据同步程序执行过程中可生成对应的日志文件,通过查看日志文件可确定数据库变更信息,根据该数据库变更信息可以对数据库数据进行维护,以及在数据同步程序运行出错的情况下,根据日志文件中记录的运行日志,对数据同步程序进行调试。进一步可选地,在有数据同步需求的情况下,还可以根据日志文件中记录源数据库日志,对目标数据库进行同样的数据库变更操作。基于此,在本技术实施例中,数据同步工具还为作为服务端角色启动的数据同步程序提供有日志配置文件,其中的配置项包括但不限于源数据库名,以及与源数据库对应日志文件的存储位置,例如,配置日志文件存储在数据同步程序的安装目录下。这样,在需要对目标数据库进行与源数据库同样变更的情况下,还可以根据源数据库对应的日志文件,确定源数据库的变更信息,以对目标数据库进行同样的变更。
32.除上述配置文件之外,本技术实施例的数据同步工具还为客户端提供有其他信息的配置文件,例如,还可以包括启动脚本配置文件,用于配置启动数据同步程序的各种命令语句,在该配置文件中还可以配置数据同步程序的动方式为客户端启动,这样,在数据同步程序启动时,可以服务端的形式进行启动。
33.需要说明的是,上述实施例是从数据同步程序以客户端或服务端角色启动两个角度对配置文件的内容进行说明,在本技术实施例中,并不限定数据同步工具提供上述配置文件的方式。可选地,数据同步工具可以根据数据同步程序的启动角色提供对应的配置文件,也可以同时提供上述配置文件,并根据数据同步程序的启动角色将对应的配置文件设置成有效和/或将另一端对应的配置文件设置成无效。当然,除上述配置文件之外,也可以根据实际需求增加其他配置文件,在本技术实施例中不做过多说明。
34.在本技术实施例中,通过以配置文件的形式对数据库信息、数据同步任务以及其他信息进行单独管理,将客户端和服务端的参数配置方式从数据库抽取到独立文件中,可以根据具体的需求对配置文件进行灵活扩展和变更。另外,对于客户端和服务端,通过启动方式进行角色区分,将客户端和服务端对应的配置信息进行整合,有利于同一维护。
35.基于上述,本技术实施例还提供一种数据同步方法,适用于上述实施例中的数据同步工具,在本技术实施例中,将数据同步工具对应的数据库称为第一数据库;其中,第一数据库上部署有数据同步程序以及对应的同步配置文件。可选地,同步配置文件包括数据库信息配置文件、数据同步任务配置文件、账号配置文件、缓存信息配置文件、日志配置文件,以及启动脚本配置文件和其他信息配置文件。关于各配置文件中的具体内容和配置文件的作用,可参见上述实施例,在此不做赘述。
36.图1a为本技术实施例提供的数据同步方法的流程图,如图1a所示,方法包括:
37.s1a、根据同步配置文件中指定的启动方式启动第一数据库上的数据同步程序,启动方式对应数据同步程序的服务角色为客户端或服务端;
38.s2a、在第一数据库上的数据同步程序作为客户端被启动的情况下,将第一数据库作为目标数据库,从同步配置文件中读取源数据库的标识以及源数据库中待同步数据的第
一数据表以及第一数据列的标识;
39.s3a、根据源数据库、第一数据表以及第一数据列的标识,向源数据库发送第一数据同步请求;
40.s4a、接收源数据库在将第一数据列中的数据转换为json格式后返回的第一字符串,并将第一字符串解析后存储至第一数据库中。
41.在本技术实施例中,数据库同步程序支持客户端启动方式和服务端启动方式,根据其对应的启动方式,可确定数据同步程序的服务角色为客户端或服务端。在本技术实施例中,同步配置文件中提供有执行数据同步的sql语句,在该sql语句中可指定待同步数据的数据表和数据列。在本技术实施例中,源数据库中包括第一数据表,第一数据表中包括第一数据列,在根据启动方式确定数据同步程序的服务角色为客户端的情况下,可将数据同步程序对应的第一数据库作为目标数据库,根据同步配置文件中的执行数据同步的sql语句,可读取源数据库的标识以及源数据库中待同步数据的第一数据表以及第一数据列的标识。进而,根据源数据库、第一数据表以及第一数据列的标识,向源数据库发送第一数据同步请求,以供源数据库根据第一数据同步请求查询第一数据表的第一数据列中的数据。
42.在本技术实施例中,可根据数据同步需求配置对应的数据同步任务信息和对应的源数据库信息。可选地,配置的数据同步任务可能为多个,在有数据同步需求的情况下,数据同步程序可依次启动数据同步任务,并将启动的数据同步任务存储在本地缓存队列中。在满足执行条件的情况下,数据同步程序可从本地缓存队列中按序读取数据库同步任务,并根据数据库同步任务确定对应的同步配置文件,并从同步配置文件中读取源数据库的标识以及源数据库中待同步数据的第一数据表以及第一数据列的标识,将读取到的信息携带在第一数据同步请求中发送给源数据库,以供源数据库根据第一数据同步请求从第一数据列中查询数据。在本实施例中,不限定数据同步任务的执行条件,可选地,可在指定时间到达时执行对应的数据同步任务,也可以根据用户的触发或者其他条件执行数据同步任务,具体可根据需求灵活设定。
43.在本技术实施例中,不限定目标数据库向源数据库发送第一数据请求的方式,可选地,可以http的方式发送第一数据请求。进一步可选地,第一数据请求中包括第一数据表以及第一数据列的标识,以供源数据库根据第一数据表以及第一数据列的标识,从中查询待同步的数据。在一可选实施例中,可将执行数据同步的sql语句直接携带在第一数据同步请求中,以供源数据库根据该sql语句确定第一数据表以及第一数据列的标识;在另一可选实施例中,目标数据库也可以根据该sql语句确定第一数据表以及第一数据列的标识,并将第一数据表以及第一数据列的标识携带在第一数据同步请求中。进一步,在源数据库根据第一数据同步请求查询到对应数据的情况下,可将查询到的数据返回给目标数据库,目标数据库接收源数据库返回的数据后,可将其存储至目标数据库中。
44.进一步可选地,为了提升不同数据库之间数据同步的兼容性,可对不同数据库存储的数据类型进行通用性处理,可选地,源数据库在查询到数据后可对其进行格式转换,将其包装成指定格式的数据。目标数据库在接收到该指定格式数据的情况下,可将其解析成与目标数据库适配的数据类型并进行存储。可选地,源数据库可将第一数据表中的数据转换为json格式的第一字符串返回给目标数据库,目标数据库接收到第一字符串后,可对第一字符串进行解析并存储至目标数据库中。
45.在本技术实施例中,目标数据库向源数据库请求同步的数据为多条,在数据量非常大的情况下,可分批次向源数据库发送第一数据同步请求。在一可选实施例中,在每次向源数据库发送第一数据同步请求时,可在第一数据同步请求中携带待同步数据的数量,以供源数据库根据该数量查询对应条数的数据。进一步可选地,在目标数据库每次接收到源数据库返回的数据的情况下,可将本次接收到的最后一条数据的标识存储在缓存中作为断点标识,并在下次向源数据库发送第一数据同步请求时,将该断点标识发送给源数据库,以供源数据库根据断点标识、待同步数据的数量、第一数据表以及第一数据列的标识,从第一数据列中查询对应条数的数据。进一步,源数据库在接收到第一数据同步请求的情况下,可根据请求信息,将从第一数据列中查询到的若干行数据转换为json格式后,将转换得到的第一字符串返回给目标数据库。进一步,目标数据库可将第一字符串解析后存储至目标数据库中,并将缓存中的断点标识替换为解析得到的最后一条数据的标识。
46.在本技术实施例中,部署在第一数据库上的数据同步程序还可以以服务端角色启动。图1b为本技术实施例提供的另一数据同步方法的流程图,该流程图对应部署在第一数据库上的数据同步程序以服务端角色启动并执行数据同步的流程。如图1b所示,方法包括:
47.s1b、根据同步配置文件中指定的启动方式启动第一数据库上的数据同步程序,启动方式对应数据同步程序的服务角色为客户端或服务端;
48.s2b、在第一数据库上的数据同步程序作为服务端被启动的情况下,将第一数据库作为源数据库,接收目标数据库发送的第二数据同步请求,第二数据同步请求中包括第一数据库中待同步数据的第二数据表以及第二数据列的标识;
49.s3b、根据第二数据表以及第二数据列的标识,从第二数据表中读取第二数据列中的数据;将数据转换为json格式以得到第二字符串,并向目标数据库返回第二字符串;其中,第二字符串被解析后存储至目标数据库中。
50.在本技术实施例中,部署在第一数据库上的数据同步程序作为服务端被启动的情况下,可将第一数据库作为源数据库,进而,源数据库可接收来自目标数据库发送的第二数据同步请求,并根据第二数据同步请求中的信息,向目标数据库返回其请求同步的数据。在本技术实施例中,源数据库中包括第二数据表,第二数据表中包括第二数据列,可选地,第二数据同步请求中包括源数据库中待同步数据的第二数据表以及第二数据列的标识。基于此,源数据库可从第二数据表中的第二数据列查询数据,并向目标数据库返回查询到的数据。进一步可选地,源数据库在从第二数据表的第二数据列中查询到数据的情况下,可将查询到的数据转换为json格式的第二字符串,并向目标数据库返回第二字符串,目标数据接收到第二字符串后可对其进行解析并存储至目标数据库中。
51.在本技术实施例中,同步配置文件存储在存储库文件的文件夹中,部署在第一数据库上的数据同步程序启动之前,可在同步配置文件中配置所需的数据库信息。可选地,同步配置文件中至少包括第一配置信息、第二配置信息、第一数据库的标识以及数据同步程序的启动方式。其中,第一信息对应目标数据库,包括待访问的源数据库的标识、源数据库中待同步数据的数据表以及数据列的标识;第二信息对应源数据库,包括具有权限访问源数据库的目标数据库的标识。可选地,第一配置信息对应的目标数据库为第一数据库,第一配置信息中的源数据库为第二数据库;第二配置信息对应的源数据库为第一数据库,具有权限访问源数据库的目标数据库为第三数据库。
52.在本技术可选实施例中,不限定第一配置信息和第二配置信息的配置方式,在一可选实施例中,可根据数据同步程序的启动方式配置对应的数据库信息,例如,当启动方式对应客户端角色时,在同步配置文件中配置第一配置信息;当启动方式对应服务端角色时,在同步配置文件中配置第二配置信息。在另一可选实施例中,可在同步配置文件中同时配置第一配置信息和第二配置信息,并根据数据同步程序的启动方式设置二者的有效性,例如,当启动方式对应客户端角色时,设置第一配置信息生效;当启动方式对应服务端角色时,设置第二配置信息生效。
53.进一步可选地,不限定第一配置信息、第二配置信息、第一数据库的标识以及数据同步程序的启动方式的配置位置,在一可选实施例中,上述配置信息可以分别配置在不同的配置文件中,各配置信息的具体配置位置可参见上述实施例。在另一可选实施例中,上述各配置信息可以同时配置在一个配置文件中,在这种情况下,可根据具体需求设置所需的配置信息为有效和/或设置不需要的信息为无效。
54.在本技术可选实施例中,第一配置信息中包括第二数据库执行数据同步使用的sql语句,可选地,为了降低理解成本,可将第一配置信息中包括的执行数据同步使用的sql语句设置为伪第一sql语句,其中包括待同步的第一数据表和第一数据列,则部署在第一数据库上的数据同步程序以客户端角色启动的情况下,第一数据库(目标数据库)向源数据库发送第一数据同步请求所携带的执行数据同步的sql语句为伪第一sql语句。相应地,部署在第一数据库上的数据同步程序以服务端角色启动的情况下,第一数据库(源数据库)接收到的第二数据同步请求中包含第一数据库执行数据同步所需的第二伪sql语句,其中,第二伪sql语句包括第二数据表以及第二数据列的标识;第一数据库根据第二数据表以及第二数据列的标识,可从第二数据表中读取第二数据列中的数据。
55.在本技术可选实施例中,第一数据库在读取数据之前,可将第二伪sql语句转换成可执行sql语句,并执行转换后的sql语句,从第二数据表中读取第二数据列中的数据。进一步可选地,为了保证数据同步的安全性,第一数据库在根据第二数据表以及第二数据列的标识,从第二数据表中读取第二数据列中的数据之前,可对执行数据访问的目标数据库进行校验,判断其是够有访问第一数据库的权限。可选地,可以读取同步配置文件中允许访问的第三数据库的标识,判断第三数据库的标识中是否包含目标数据库的标识;在包含的情况下,执行根据第二数据表以及第二数据列的标识,从第二数据表中读取第二数据列中的数据的操作,在不包含的情况下,向目标数据库返回禁止访问或者访问失败等提示。
56.在本技术实施例中,不限定源数据库与目标数据库的类型是否相同,根据源数据库或目标数据库的类型以及部署于其上的数据同步程序依赖的开发环境,可通过适配的数据库连接与部署在其上的数据同步程序建立连接。例如,以基于java语言的开发环境为例,可以通过java数据库连接(java data base connectivity,jdbc)建立第一数据库与部署其上的数据同步程序建立连接;又例如,基于其他开发语言的开发环境,也可以使用开放数据库互连(open database connectivity,odbc)建立第一数据库与部署其上的数据同步程序建立连接,具体可根据实际需求确定。并且,源数据库将查询都的数据以执行格式例如json格式的字符串返回给目标数据库,目标数据库接收到该指定格式的数据后可解析成适配的数据类型,可实现源数据库与目标数据库之间数据同步的兼容,有利于数据同步的稳定性。
57.基于上述,本技术实施例提供的数据同步方法的整体流程图可参见图1c,如图1c所示,方法包括两个流程:
58.流程1:
59.s1、根据同步配置文件中指定的启动方式启动第一数据库上的数据同步程序,启动方式对应数据同步程序的服务角色为客户端或服务端;
60.s21、在第一数据库上的数据同步程序作为客户端被启动的情况下,将第一数据库作为目标数据库,从同步配置文件中读取源数据库的标识以及源数据库中待同步数据的第一数据表以及第一数据列的标识;
61.s31、根据源数据库、第一数据表以及第一数据列的标识,向源数据库发送第一数据同步请求;
62.s41、源数据库接收目标数据库发送的第一数据同步请求,第一数据同步请求中包括待同步数据的第一数据表以及第一数据列的标识;
63.s51、根据第一数据表以及第一数据列的标识,从第一数据表中读取第一数据列中的数据;将数据转换为json格式以得到第一字符串,并向第一数据库返回第第一字符串;
64.s61、第一数据库接收源数据库在将第一数据列中的数据转换为json格式后返回的第一字符串,并将第一字符串解析后存储至第一数据库中。
65.流程2:
66.s1、根据同步配置文件中指定的启动方式启动第一数据库上的数据同步程序,启动方式对应数据同步程序的服务角色为客户端或服务端;
67.s22、目标数据库从同步配置文件中读取第一数据库的标识以及第一数据库中待同步数据的第二数据表以及第二数据列的标识;
68.s32、根据第一数据库、第二数据表以及第二数据列的标识,向第一数据库发送第二数据同步请求;
69.s42、在第一数据库上的数据同步程序作为客户端被启动的情况下,接收目标数据库发送的第二数据同步请求,第二数据同步请求中包括第一数据库中待同步数据的第而数据表以及第而数据列的标识;
70.s52、根据第而数据表以及第而数据列的标识,从第而数据表中读取第而数据列中的数据;将数据转换为json格式以得到第而字符串,并向目标数据库返回第第而字符串;
71.s62、目标数据库接收第一数据库在将第二数据列中的数据转换为json格式后返回的第二字符串,并将第二字符串解析后存储至目标数据库中。
72.其中,流程1中的步骤s1、s21、s31和s61为部署在第一数据库上的数据同步程序作为客户端启动时执行的步骤,步骤s41和s51为对应的服务端的源数据库执行的步骤;流程2中的步骤s1、s42和s52为部署在第一数据库上的数据同步程序作为服务端启动时执行的步骤,步骤s22、s32和s62为对应的客户端的目标数据库执行的步骤。关于各步骤的具体实现过程和详细内容可参见上述实施例,在此不做赘述。
73.在本技术实施例中,通过配置文件的方式为部署在数据库上的数据同步程序配置数据库信息和启动方式,可将客户端和服务端进行整合配置,有利于统一管理和维护。并且,以配置文件的形式对数据库信息、数据同步任务以及其他信息进行单独管理,将客户端和服务端的参数配置方式从数据库抽取到独立文件中,可以根据具体的需求对配置文件进
行灵活扩展和变更,有助于对不同数据库之间的数据同步进行通用性处理。
74.需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤s1a至步骤s4a的执行主体可以为设备a;又比如,步骤s1至步骤s31的执行主体可以为设备a,步骤s41和步骤s51的执行主体可以为设备b;等等。
75.另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如s1a、s2a等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
76.本技术实施例还提供一种计算机设备,适用于客户端,图2为本技术实施例提供的计算机设备的结构示意图,如图2所示,计算机设备包括:处理器21以及存储有计算机程序的存储器22;其中,处理器21和存储器22可以是一个或多个。
77.存储器22,主要用于存储计算机程序,这些计算机程序可被处理器21执行,致使处理器21控制计算机设备实现相应功能、完成相应动作或任务。除了存储计算机程序之外,存储器22还可被配置为存储其它各种数据以支持在计算机设备上的操作。这些数据的示例包括用于在计算机设备上操作的任何应用程序或方法的指令。
78.存储器22,可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
79.在本技术实施例中,并不限定处理器21的实现形态,例如可以是但不限于cpu、gpu或mcu等。处理器21可以看作是计算机设备的控制系统,可用于执行存储器22中存储的计算机程序,以控制计算机设备实现相应功能、完成相应动作或任务。值得说明的是,根据计算机设备实现形态以及所处于场景的不同,其所需实现的功能、完成的动作或任务会有所不同;相应地,存储器22中存储的计算机程序也会有所不同,而处理器21执行不同计算机程序可控制计算机设备实现不同的功能、完成不同的动作或任务。
80.在一些可选实施例中,如图2所示,计算机设备还可包括:显示器23、电源组件24以及通信组件25等其它组件。图2中仅示意性给出部分组件,并不意味着计算机设备只包括图2所示组件,针对不同的应用需求,计算机设备还可以包括其他组件,例如,在存在语音交互需求的情况下,如图2所示,计算机设备还可以包括音频组件26。关于计算机设备可包含的组件,具体可视计算机设备的产品形态而定,在此不做限定。
81.在本技术实施例中,当处理器21执行存储器22中的计算机程序时,以用于:根据同步配置文件中指定的启动方式启动数据同步程序,启动方式对应数据同步程序的服务角色为客户端或服务端;在数据同步程序作为客户端被启动的情况下,从同步配置文件中读取源数据库的标识以及源数据库中待同步数据的第一数据表以及第一数据列的标识;根据源数据库、第一数据表以及第一数据列的标识,向源数据库发送第一数据同步请求;以及接收源数据库在将第一数据列中的数据转换为json格式后返回的第一字符串,并将第一字符串
解析后存储至本地数据库中。
82.在一可选实施例中,处理器21在从同步配置文件中读取源数据库的标识以及源数据库中待同步数据的第一数据表以及第一数据列的标识时,用于:从本地缓存队列中按序读取数据库同步任务,根据数据库同步任务确定对应的同步配置文件,并从同步配置文件中读取源数据库的标识以及源数据库中待同步数据的第一数据表以及第一数据列的标识。
83.在一可选实施例中,处理器21在根据源数据库、第一数据表以及第一数据列的标识,向源数据库发送第一数据同步请求时,用于:根据缓存中的断点标识、源数据库、第一数据表以及第一数据列的标识,向源数据库发送第一数据同步请求,第一数据同步请求包括断点标识。
84.在一可选实施例中,处理器21在接收源数据库在将第一数据列中的数据转换为json格式后返回的第一字符串,并将第一字符串解析后存储至第一数据库中时,用于:接收源数据库在将第一数据列中的若干行数据转换为json格式后返回的第一字符串,将第一字符串解析后存储至第一数据库中,并将缓存中的断点标识替换为解析得到的最后一条数据的标识。
85.在一可选实施例中,同步配置文件中包括第一配置信息、第二配置信息、第一数据库的标识以及数据同步程序的启动方式,同步配置文件在存储库文件的文件夹中;当启动方式对应客户端角色时,第一配置信息生效;当启动方式对应服务端角色时,第二配置信息生效;其中,第一信息包括待访问的第二数据库的标识、第二数据库中待同步数据的数据表以及数据列的标识,第二信息包括具有权限访问第一数据库的第三数据库的标识。
86.在一可选实施例中,第一配置信息中还包括第二数据库执行数据同步使用的第一伪sql语句,第一伪sql语句包含待同步的第一数据表和第一数据列;处理器21还用于:将伪第一sql语句携带在第一数据同步请求中发送给源数据库。
87.相应地,本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中作为客户端的计算机设备执行的各步骤。
88.本技术实施例还提供一种计算机设备,适用于服务端,其结构与图2所示的作为客户端的计算机设备的结构类似,具体可参见图2所示结构示意图。在本实施例中,计算机设备包括:处理器以及存储有计算机程序的存储器;其中,处理器和存储器可以是一个或多个。
89.存储器,主要用于存储计算机程序,这些计算机程序可被处理器执行,致使处理器控制计算机设备实现相应功能、完成相应动作或任务。除了存储计算机程序之外,存储器还可被配置为存储其它各种数据以支持在计算机设备上的操作。这些数据的示例包括用于在计算机设备上操作的任何应用程序或方法的指令。
90.存储器,可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
91.在本技术实施例中,并不限定处理器的实现形态,例如可以是但不限于cpu、gpu或mcu等。处理器可以看作是计算机设备的控制系统,可用于执行存储器中存储的计算机程序,以控制计算机设备实现相应功能、完成相应动作或任务。值得说明的是,根据计算机设
备实现形态以及所处于场景的不同,其所需实现的功能、完成的动作或任务会有所不同;相应地,存储器中存储的计算机程序也会有所不同,而处理器执行不同计算机程序可控制计算机设备实现不同的功能、完成不同的动作或任务。
92.在一些可选实施例中,计算机设备还可包括:显示器、电源组件以及通信组件等其它组件,本实施例仅示意性给出部分组件,并不意味着计算机设备只包括这些组件,针对不同的应用需求,计算机设备还可以包括其他组件,例如,在存在语音交互需求的情况下,计算机设备还可以包括音频组件。关于计算机设备可包含的组件,具体可视计算机设备的产品形态而定,在此不做限定。
93.在本技术实施例中,当处理器执行存储器中的计算机程序时,以用于:根据同步配置文件中指定的启动方式启动数据同步程序,启动方式对应数据同步程序的服务角色为客户端或服务端;在数据同步程序作为服务端被启动的情况下,将本地数据库作为源数据库,接收目标数据库发送的第二数据同步请求,第二数据同步请求中包括本地数据库中待同步数据的第二数据表以及第二数据列的标识;根据第二数据表以及第二数据列的标识,从第二数据表中读取第二数据列中的数据;将数据转换为json格式以得到第二字符串,并向目标数据库返回第二字符串,第二字符串被解析后存储至目标数据库中。
94.在一可选实施例中,同步配置文件中包括第一配置信息、第二配置信息、第一数据库的标识以及数据同步程序的启动方式,同步配置文件在存储库文件的文件夹中;当启动方式对应客户端角色时,第一配置信息生效;当启动方式对应服务端角色时,第二配置信息生效;其中,第一信息包括待访问的第二数据库的标识、第二数据库中待同步数据的数据表以及数据列的标识,第二信息包括具有权限访问第一数据库的第三数据库的标识。
95.在一可选实施例中,第二数据同步请求中还包含第一数据库执行数据同步所需的第二伪sql语句,第二伪sql语句包括第二数据表以及第二数据列的标识;相应地,处理器在根据第二数据表以及第二数据列的标识,从第二数据表中读取第二数据列中的数据时,用于:将第二伪sql语句转换成可执行sql语句,执行可执行sql语句,以从第二数据表中读取第二数据列中的数据。
96.在一可选实施例中,处理器在根据第二数据表以及第二数据列的标识,从第二数据表中读取第二数据列中的数据之前,还用于:读取同步配置文件中允许访问的第三数据库的标识,判断第三数据库的标识中是否包含目标数据库的标识;在包含的情况下,执行根据第二数据表以及第二数据列的标识,从第二数据表中读取第二数据列中的数据的操作。
97.相应地,本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中作为服务端的计算机设备执行的各步骤。
98.上述实施例中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如wifi,2g、3g、4g/lte、5g等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
99.上述实施例中的显示器包括屏幕,其屏幕可以包括液晶显示器(lcd)和触摸面板
(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
100.上述实施例中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
101.上述实施例中的音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(mic),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
102.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
103.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
104.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
105.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
106.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
107.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
108.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动
态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
109.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
110.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1