一种数据同步方法、装置及系统与流程

文档序号:25586657发布日期:2021-06-22 17:01阅读:87来源:国知局
一种数据同步方法、装置及系统与流程

本说明书涉及计算机技术领域,尤其涉及一种数据同步方法、装置及系统。



背景技术:

目前,为了保证数据传输时的安全性,存在多种方式。其中之一就是从网络结构上,通过专线连接需要进行数据传输的设备,以避免外界攻击。

在现有技术中,对于需要进行数据库之间数据同步的场景来说,一般采用数据发送方和数据接收方通过各自的文件传输协议(filetransferprotocol,ftp)服务器,进行数据传输的方法保证安全性。其中,ftp服务器之间采用专线连接,而数据发送方和数据接收方与各自的ftp服务器通过设置在各自的内网中,提高各自的安全性。甚至可只接受ftp服务器传输的数据,以进一步保证安全。

图1为现有网络结构的示意图,其中,左侧为数据发送方及其ftp服务器,右侧为数据接收方及其ftp服务器,两个ftp服务器通过专线连接,左右两侧的设备分别位于各自的内网中。

但是,在现有数据同步方法中,由于为了保证数据传输的安全性,所以需要在有专线连接ftp服务器之间进行传输,数据接收方需轮询自身对应的ftp服务器,来获取同步数据,时效性差。并且由于ftp服务器通常为多台设备提供服务,因此还存在获取并非自身所需数据的情况出现,导致现有数据同步的效率低。



技术实现要素:

本说明书实施例提供一种数据同步方法、装置及系统,以部分解决上述现有技术存在的问题。

本说明书实施例采用下述技术方案:

本说明书提供的一种数据同步方法,包括:

本地数据库确定待同步数据集;

针对每个接收数据库,创建该接收数据库对应的传输实例,所述传输实例携带有该接收数据库的标识;

根据预设的该接收数据库的数据接收规则,从所述待同步数据集中确定所述传输实例对应的待传输数据包;

执行该接收数据库对应的传输实例,将所述传输实例对应的待传输数据包以及该接收数据库的标识,上传至发送服务器,使所述发送服务器通过安全专线将所述待传输数据包以及该接收数据库的标识发送至接收服务器,并由所述接收服务器根据该接收数据库的标识,将所述待传输数据包写入该接收数据库。

可选地,针对每个接收数据库,创建该接收数据库对应的传输实例,具体包括:

根据所述待同步数据集,确定传输任务;

针对每个接收数据库,创建所述传输任务包含的该接收数据库对应的传输实例,所述传输实例属于所述传输任务。

可选地,根据预设的该接收数据库的数据接收规则,从所述待同步数据集中确定所述传输实例对应的待传输数据包,具体包括:

根据存储的各接收数据库与各数据接收规则的对应关系,确定该接收数据库的数据接收规则;

判断所述待同步数据集中是否存在与该接收数据库的数据接收规则匹配的数据;

若是,则将匹配的数据作为所述传输实例对应的待传输数据包;

若否,则确定该接收数据库的传输实例执行完毕。

可选地,执行该接收数据库对应的传输实例,将所述传输实例对应的待传输数据包以及该接收数据库的标识,上传至发送服务器,具体包括:

当确定出所述传输任务中各传输实例对应的待传输数据包时,根据预设的并行实例数量,将各传输实例进行分组;

通过空闲线程依次执行各分组的传输实例,分别将各分组的传输实例对应的待传输数据包以及对应的接收数据库的标识,上传至发送服务器,直至各组传输实例执行完毕后,确定所述传输任务执行完毕。

可选地,上传至发送服务器,具体包括:

针对每个接收数据库,确定在所述发送服务器中预设的该接收数据库的存储路径;

将所述传输实例对应的待传输数据包以及该接收数据库的标识发送至所述存储路径中存储,使所述发送服务器在监测到所述存储路径中数据变化时,将所述传输实例对应的待传输数据包以及该接收数据库的标识发送至所述接收服务器。

本说明书提供的一种数据同步方法,包括:

接收服务器,接收发送服务器通过安全专线发送的各传输实例的数据,所述传输实例的数据至少包含所述传输实例对应的待传输数据包以及所述传输实例对应的接收数据库的标识;

针对每个传输实例对应的待传输数据包,根据该传输实例对应的接收数据库的标识,将该待传输数据包写入对应的接收数据库;

其中,所述传输实例的数据通过以下方式由本地数据库上传至所述发送服务器:

所述本地数据库创建每个接收数据库对应的传输实例,以基于各接收数据库的数据接收规则,从待同步数据集中确定各传输实例对应的待传输数据包,再通过执行各传输实例,将各传输实例的数据分别上传至所述发送服务器。

可选地,根据该传输实例对应的接收数据库的标识,将该待传输数据包写入对应的接收数据库,具体包括:

根据该传输实例对应的接收数据库的标识,确定所述接收数据库的属性,所述属性至少包括:数据结构或者数据库结构中的一种;

根据所述接收数据库的属性对所述待传输数据包进行格式转换;

将转换后的数据包存储至所述接收数据库中,使所述接收数据库根据所述转换后的数据进行业务处理。

可选地,所述方法还包括:

根据所述待传输数据包中的数据文件名称,判断所述待传输数据包是否为业务处理所需数据;

若是,则将所述待传输数据包写入对应的接收数据库;

若否,则不存储所述待传输数据包。

本说明书提供的一种数据同步系统,所述系统包括:本地数据库、发送服务器以及接收服务器,其中:

所述本地数据库,确定待同步数据集;针对每个接收数据库,创建该接收数据库对应的传输实例,所述传输实例携带有该接收数据库的标识;根据预设的该接收数据库的数据接收规则,从所述待同步数据集中确定所述传输实例对应的待传输数据包;执行该接收数据库对应的传输实例,将所述传输实例对应的待传输数据包以及该接收数据库的标识,上传至发送服务器;

所述发送服务器,通过安全专线将各传输实例对应的待传输数据包及其对应的接收数据库的标识发送至所述接收服务器;

所述接收服务器,针对每个传输实例对应的待传输数据包,根据该传输实例对应的接收数据库的标识,将该待传输数据包写入对应的接收数据库。

本说明书提供的一种数据同步装置,包括:

第一确定模块,通过本地数据库确定待同步数据集;

创建模块,针对每个接收数据库,创建该接收数据库对应的传输实例,所述传输实例携带有该接收数据库的标识;

第二确定模块,根据预设的该接收数据库的数据接收规则,从所述待同步数据集中确定所述传输实例对应的待传输数据包;

执行及写入模块,执行该接收数据库对应的传输实例,将所述传输实例对应的待传输数据包以及该接收数据库的标识,上传至发送服务器,使所述发送服务器通过安全专线将所述待传输数据包以及该接收数据库的标识发送至接收服务器,并由所述接收服务器根据该接收数据库的标识,将所述待传输数据包写入该接收数据库。

本说明书提供的一种数据同步装置,包括:

接收模块,通过接收服务器接收发送服务器通过安全专线发送的各传输实例的数据,所述传输实例的数据至少包含所述传输实例对应的待传输数据包以及所述传输实例对应的接收数据库的标识;

写入模块,针对每个传输实例对应的待传输数据包,根据该传输实例对应的接收数据库的标识,将该待传输数据包写入对应的接收数据库,其中,所述传输实例的数据通过以下方式由本地数据库上传至所述发送服务器:所述本地数据库创建每个接收数据库对应的传输实例,以基于各接收数据库的数据接收规则,从待同步数据集中确定各传输实例对应的待传输数据包,再通过执行各传输实例,将各传输实例的数据分别上传至所述发送服务器。

本说明书提供的一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的数据同步方法。

本说明书提供的一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的数据同步方法。

本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:

在本说明书中,本地数据库可先确定待同步数据集,并针对每个接收数据库,创建该接收数据库对应的传输实例。之后,根据预设的该接收数据库的数据接收规则,从该待同步数据集中确定该传输实例对应的待传输数据包。最后,执行该接收数据库对应的传输实例,将该传输实例对应的待传输数据包以及该接收数据库的标识,上传至发送服务器,使该发送服务器通过安全专线将该待传输数据包以及该接收数据库的标识发送至接收服务器,并由该接收服务器根据该接收数据库的标识,将该待传输数据包写入该接收数据库中。通过确定对应于各接收数据库的待传输数据包,并将各待传输数据包分别写入对应的接收数据库,无需各接收数据库轮询获取数据,数据传输的时效性较强。同时避免了各接收数据库获取到并非自身所需的数据,提高了数据同步的效率。

附图说明

此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:

图1为现有进行数据传输时的网络结构的示意图;

图2为本说明书实施例提供的一种数据同步流程示意图;

图3为本说明书实施例提供的另一种数据同步流程示意图;

图4为本说明书实施例提供的一种数据同步系统的架构示意图;

图5为本说明书实施例提供的一种数据同步系统中各设备之间的交互示意图;

图6为本说明书实施例提供的另一种数据同步系统的架构示意图;

图7为本说明书实施例提供的一种数据同步装置的结构示意图;

图8为本说明书实施例提供的一种数据同步装置的结构示意图;

图9为本说明书实施例提供的实现数据同步方法的电子设备的结构示意图。

具体实施方式

为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。

以下结合附图,详细说明本说明书各实施例提供的技术方案。

图2为本说明书实施例提供的数据同步流程示意图,包括:

s100:本地数据库确定待同步数据集。

本说明书提供的数据同步方法,通过将数据发送方本地数据库中的数据传输至数据接收方的接收数据库中,以实现双方数据库的数据同步。于是在本说明书中进行数据同步时,可先确定数据发送方的本地数据库中待同步的数据集,以通过后续步骤进行数据同步。

具体的,数据发送方可以定时传输数据给数据接收方,则当到达设定时间点时,该数据发送方可从本地数据库中确定待传输的数据,作为待同步数据集。其中,该待同步数据集可以是在设定时间点之前的任意时间存储的数据。

或者在本说明书另一种实施例中,数据发送方也可响应于用户操作,确定用户在本地数据库中选中的数据,作为待同步数据集。

需要说明的是,该数据同步方法具体可由数据发送方的本地数据库对应的同步任务服务器执行,该同步任务服务器用于执行数据同步任务,可以是单个服务器,也可以是多个服务器组成的系统,如,分布式服务器系统等,可以是物理服务器设备,也可以是云服务器,当然,该数据发送方还可包含其他服务器,本说明书对此不做限制。为方便描述,后续在本说明书中以本地数据库作为执行主体进行说明。

进一步的,当通过定时的方式自动确定待同步数据集时,则该同步任务服务器中可预先安装有软件开发工具包(softwaredevelopmentkit,sdk),该sdk中包含有执行定时任务的代码。在数据同步过程中,可通过运行该sdk中的代码,定时从本地数据库中确定待同步数据集。

当基于用户操作的方式人为确定待同步数据集时,具体的,同步任务服务器中还设置有超文本传输协议(hypertexttransferprotocol,http)接口,用户可在终端界面上选择待传输的数据,并通过该接口传输至该同步任务服务器,以使该同步任务服务器响应于该用户的选中操作,确定待同步数据集。

当然,在本说明书中,若数据发送方存在多个本地数据库,且各本地数据库分别对应不同的同步任务服务器,则可针对每个本地数据库,分别执行本说明书的数据同步方法。若数据发送方存在多个本地数据库,且多个本地数据库均对应于相同的同步任务服务器,则可由该同步任务服务器从多个本地数据库中确定待传输的数据,作为待同步数据集。

s102:针对每个接收数据库,创建该接收数据库对应的传输实例,所述传输实例携带有该接收数据库的标识。

s104:根据预设的该接收数据库的数据接收规则,从所述待同步数据集中确定所述传输实例对应的待传输数据包。

为了使数据传输至数据接收方后,各接收数据库可仅获取自身所需的数据,避免下载其它冗余的数据。于是在本说明书一种或多种实施例中,该数据发送方可从本地数据库中确定分发至各接收数据库的数据包,以分别传输至数据接收方的各接收数据库中。

具体的,当确定出待同步的数据集后,该本地数据库可根据该待同步的数据集,确定传输任务,以通过该传输任务传输该数据集。

之后,针对数据接收方的每个接收数据库,该本地数据库可在该传输任务中,创建该接收数据库对应的传输实例,其中,该传输实例中携带有该接收数据库的标识,还可包含将要写入该接收数据库中数据表的表名信息等。并且,该传输任务中可包含对应于各接收数据库的若干传输实例。

最后,该本地数据库可根据预先存储的各接收数据库与各数据接收规则的对应关系,确定该接收数据库对应的数据接收规则。并判断该待同步数据集中是否存在与该接收数据库的数据接收规则匹配的数据,若该待同步数据集中存在与该接收数据库的数据接收规则匹配的数据,则将匹配的数据作为该传输实例对应的待传输数据包,否则,确定该接收数据库的传输实例执行完毕,无需再向该接收数据库传输数据。

s106:执行该接收数据库对应的传输实例,将所述传输实例对应的待传输数据包以及该接收数据库的标识,上传至发送服务器,使所述发送服务器通过安全专线将所述待传输数据包以及该接收数据库的标识发送至接收服务器,并由所述接收服务器根据该接收数据库的标识,将所述待传输数据包写入该接收数据库。

在本说明书中,当确定出对应于该接收数据库的待传输数据包后,便可将该待传输数据包传输至数据接收方,以使数据接收方写入到该接收数据库中,完成数据同步。

具体的,该本地数据库可执行该接收数据库对应的传输实例,将该传输实例对应的待传输数据包以及该接收数据库的标识,上传至数据发送方的发送服务器,以使该发送服务器通过安全专线将该待传输数据包以及该接收数据库的标识发送至数据接收方的接收服务器,并由该接收服务器根据该接收数据库的标识,将该待传输数据包写入该接收数据库。其中,该发送服务器可以是数据发送方的ftp服务器,该接收服务器可以是数据接收方的ftp服务器。

进一步的,当确定出该传输任务中各传输实例对应的待传输数据包时,该本地数据库可根据预设的并行实例数量,将各传输实例进行分组,确定各分组中包含的若干传输实例。之后,通过空闲线程依次执行各分组的传输实例,分别将各分组的传输实例对应的待传输数据包以及对应的接收数据库的标识,上传至发送服务器,直至各组的传输实例执行完毕后,确定该传输任务执行完毕。其中,预设的并行实例数量通常是根据历史线程空闲数量设置的,本说明书对此不做限制。具体的执行过程可参见现有技术,本说明书对此不再赘述。

更进一步的,针对每个分组,在通过空闲线程依次执行该分组内各传输实例之前,该本地数据库还可检测当前空闲线程的数量,若当前空闲线程的数量不小于预设的并行实例数量时,便可通过当前的空闲线程,并行执行该分组内的各传输实例。若当前空闲线程的数量小于预设的并行实例数量时,可从该分组中选取对应数量的传输实例,通过当前的空闲线程并行执行,当出现新的空闲线程时,再继续执行该分组内的剩余传输实例。例如,假设每个分组内包含10个传输实例,在执行第一个分组内包含的各传输实例时,若当前存在7个空闲线程,则先通过当前的空闲线程执行该分组内的7个传输实例,当出现空闲线程时,再继续执行该分组内的剩余3个传输实例。当该分组内包含的各传输实例执行完毕后,再依次执行下一分组内的传输实例。

另外,在本说明书中将该传输实例对应的待传输数据包以及该接收数据库的标识上传至发送服务器时,该本地数据库可先针对每个接收数据库,确定在该发送服务器中预设的该接收数据库的存储路径。之后再将该传输实例对应的待传输数据包以及该接收数据库的标识发送至确定出的存储路径中存储,使该发送服务器在监测到该存储路径中的数据变化时,将该传输实例对应的待传输数据包以及该接收数据库的标识发送至数据接收方的接收服务器。

其中,在执行传输实例时,该本地数据库可根据该传输实例,生成对应的执行代码。并通过该执行代码执行传输实例,从该本地数据库中下载该传输实例对应的待传输数据包,将该待传输数据包以及该接收数据库的标识上传至发送服务器的对应的存储路径下。当然,该本地数据库还可向该发送服务器上传该待传输数据包所需写入的接收数据库中数据表的表名信息等。

基于图2所示的数据同步方法,本地数据库可先确定待同步数据集,并针对每个接收数据库,创建该接收数据库对应的传输实例。之后,根据预设的该接收数据库的数据接收规则,从该待同步数据集中确定该传输实例对应的待传输数据包。最后,执行该接收数据库对应的传输实例,将该传输实例对应的待传输数据包以及该接收数据库的标识,上传至发送服务器,使该发送服务器通过安全专线将该待传输数据包以及该接收数据库的标识发送至接收服务器,并由该接收服务器根据该接收数据库的标识,将该待传输数据包写入该接收数据库中。通过确定对应于各接收数据库的待传输数据包,并将各待传输数据包分别写入对应的接收数据库,无需各接收数据库轮询获取数据,数据传输的时效性较强。同时避免了各接收数据库获取到并非自身所需的数据,提高了数据同步的效率。

本说明书提供的数据同步方法,可应用于安全性较高的大批量数据传输的过程中,如,各金融平台之间的数据传输过程中,或者也可应用于涉及机要文件传输的过程中,只要是通过专线进行传输的过程,均可应用该数据同步方法。

针对上述图2所示的数据同步方法,本说明书还对应提供了接收服务器侧的执行流程,如图3所示。

图3为本说明书实施例提供的另一种数据同步流程示意图,以接收服务器作为执行主体,具体可包括以下步骤:

s200:接收服务器,接收发送服务器通过安全专线发送的各传输实例对应的待传输数据包以及各传输实例对应的接收数据库的标识。

本说明书提供的数据同步方法,也可由接收服务器作为执行主体执行,该接收服务器可以是单独的服务器,也可以是多个服务器组成的集群,如,分布式服务器系统等,本说明书对此不做限制,可根据需要设置。

在本说明书中,该接收服务器通常为数据接收方的ftp服务器,与数据接收方中的各接收数据库对应的服务器处于同一内网中。为了保证数据传输的安全性,数据接收方的接收服务器与数据发送方的发送服务器之间可通过安全专线进行数据传输。

具体的,该接收服务器可依次接收各传输实例的数据,其中,每个传输实例的数据中包含该传输实例对应的待传输数据包以及该传输实例对应的接收数据库的标识。

进一步的,各传输实例的数据可通过以下方式由数据发送方的本地数据库上传至数据发送方的发送服务器:

数据发送方的本地数据库可创建每个接收数据库对应的传输实例,并基于各接收数据库的数据接收规则,从待同步数据集中确定各传输实例对应的待传输数据包,再通过执行各传输实例,将各传输实例的数据分别上传至该数据发送方的发送服务器。其中,该数据发送方的发送服务器通常为数据发送方的ftp服务器,与该数据接收方的ftp服务器之间通过安全专线进行数据传输。

在本说明书中,具体将各传输实例的数据传输至发送服务器的传输过程已经在上述步骤s100~步骤s106中进行了详细阐述,本说明书在此不做赘述,具体可参考上文。

s202:针对每个传输实例对应的待传输数据包,根据该传输实例对应的接收数据库的标识,将该待传输数据包写入对应的接收数据库。

在本说明书一种或多种实施例中,当该接收服务器接收到各传输实例的数据后,便可将各传输实例对应的待传输数据包分别写入各接收数据库中。

具体的,针对接收到的每个传输实例对应的待传输数据包,该接收服务器可根据该传输实例对应的接收数据库的标识,将该待传输数据包写入对应的接收数据库中。

进一步的,由于数据发送方发送的待传输数据包的数据结构与数据接收方的接收数据库中存储数据的数据结构不一定相同,如,待传输数据包为关系型数据库中存储的数据,而接收数据库为海杜普(hadoopdistributedfilesystem,hadoop)分布式数据库,则该接收数据库无法直接存储该待传输数据包。

于是在本说明书中,该接收服务器还可根据该传输实例对应的接收数据库的标识,从预先存储的各接收数据库的标识与各接收数据库的属性的对应关系中,确定该接收数据库的属性,该属性至少包括该接收数据库中存储数据的数据结构或者该接收数据库的数据库结构中的一种。之后,该接收服务器可根据该接收数据库的属性对该待传输数据包进行格式转换,并将转换后的数据包存储至该接收数据库中,使该接收数据库根据转换后的数据进行业务处理。

其中,在根据该接收数据库的属性对该待传输数据包进行格式转换时,该接收服务器还可根据该待传输数据包的数据结构以及该接收数据库的属性,判断该待传输数据包的数据结构是否与该接收数据库的属性相符,即,该传输数据包是否能够直接存储到该接收数据库中,当确定该待传输数据包的数据结构与该接收数据库的属性不符时,则根据该传输数据包的数据结构以及该接收数据库的属性,对该待传输数据包进行格式转换。当确定该待传输数据包的数据结构与该接收数据库的属性相符时,便可直接将该待传输数据包存储到该接收数据库中。

更进一步的,在本说明书中该接收服务器中还可设置有监听模块,并通过该监听模块监听接收服务器中的信息变更,当监听到接收服务器接收各传输实例的数据时,便可根据接收到的各传输实例的数据,确定各接收数据库的属性。其中,该属性中还可包含将待传输文件写入到接收数据库中数据表的表名信息等,该表名信息可根据传输实例对应的待传输数据包的数据文件名称确定。

基于图3所示的数据同步方法,接收服务器可先接收发送服务器通过安全专线发送的各传输实例的数据,并针对每个传输实例对应的待传输数据包,根据该传输实例对应的接收数据库的标识,将该待传输数据包写入对应的接收数据库。其中,各传输实例的数据由本地数据库从待同步数据集中确定并分别上传至该发送服务器的。通过将各传输实例对应的待传输数据包分别写入各传输实例对应的接收数据库中,无需各接收数据库轮询获取数据,数据传输的时效性较强。同时避免了各接收数据库获取到并非自身所需的数据,提高了数据同步的效率。

另外,在本说明书中,该接收服务器可为分布式服务器系统,包含用于接收各传输实例的数据的第一服务器,以及用于监听第一服务器中发生信息变更的第二服务器,当通过该第二服务器监听到第一服务器发生信息变更,即,接收到发送方服务器发送的各传输实例的数据时,可通过该第二服务器获取各传输实例的数据,并根据各传输实例对应的接收数据库的标识,写入相应的接收数据库中。

在本说明书步骤s202中,该接收服务器接收到的传输实例的数据还有可能是测试文件,如,用于测试安全专线是否出现传输故障,或者测试数据传输所需的传输时长等。对于此类测试文件,则无需写入到各接收数据库中,因此该接收服务器还可根据待传输数据包中的数据文件名称,判断该待传输数据包是否为该接收数据库进行业务处理所需数据。若该待传输数据包为该接收数据库进行业务处理所需,则将该待传输数据包写入对应的接收数据库中,若该待传输数据包不是该接收数据库进行业务处理所需的,则不存储该待传输数据包,也无需写入对应的接收数据库中。

在本说明书一种实施例中,当通过监听模块或者第二服务器监听到通过安全专线传输来的传输实例的数据后,便可将发生的信息变更转换为事件流,并根据该传输实例的数据,确定该事件流的属性。其中,该事件流的属性中可包含该传输实例对应的接收数据库的属性、写入的接收数据库的数据表的表名信息等。之后,通过数据同步工具将该事件流对应的传输实例的待传输数据包写入对应的接收数据库中。

或者在本说明书另一种实施例中,该接收服务器也可创建写入任务,并针对接收到的每个传输实例,在该写入任务中创建该传输实例对应的写入实例,之后,通过空闲线程依次处理该写入任务中的各写入实例,将各传输实例对应的待传输数据包写入对应的接收数据库中。

基于图2和以及图3所示的数据同步方法,本说明书还对应提供了一种数据同步系统,如图4所示。

图4为本说明书实施例提供的数据同步系统的架构示意图,该系统中包含有数据发送方的本地数据库300、发送服务器302以及数据接收方的接收服务器304,并且在该系统中,还包含数据发送方的本地数据库300对应的同步任务服务器、数据接收方的若干接收数据库306以及各接收数据库306对应的服务器。其中,数据发送方的发送服务器302、本地数据库300以及本地数据库300对应的同步任务服务器处于同一内网中,数据接收方的接收服务器304、接收数据库306以及接收数据库306对应的服务器处于同一内网中,数据发送方的发送服务器302与数据接收方的接收服务器304之间通过安全专线进行数据传输。

具体的,图5为本说明书提供的系统中各设备之间的交互示意图,在本说明书中的数据同步系统中,数据发送方的本地数据库300可先确定待传输的数据,作为待同步数据集。

之后,该本地数据库300可根据该待同步数据集,确定传输任务,并针对数据接收方的每个接收数据库306,在该传输任务中,创建该接收数据库306对应的传输实例,其中,该传输实例中携带有该接收数据库306的标识。

然后,该本地数据库300可根据预设的该接收数据库306的数据接收规则,从该待同步数据集中确定该传输实例对应的待传输数据包。

最后,可执行该接收数据库306对应的传输实例,将该传输实例对应的待传输数据包以及该接收数据库306的标识,上传至发送服务器302。

其中,本地数据库300确定各传输实例的数据,以及将各传输实例的数据上传至发送服务器302的具体过程在上述步骤s100~步骤s106中已经进行了详细阐述,本说明书在此不做赘述,可参见上述内容。

如图5所示,当数据发送方的发送服务器302接收到本地数据库300上传的各传输实例的数据后,便可通过安全专线将各传输实例的数据发送至接收服务器304。其中,传输实例的数据至少包含传输实例对应的待传输数据包及其对应的接收数据库306的标识。

当该接收服务器304接收到各传输实例的数据后,针对每个传输实例对应的待传输数据包,该接收服务器304可根据该传输实例对应的接收数据库306的标识,将该待传输数据包写入对应的接收数据库306。

其中,接收服务器304将接收到的各传输实例的数据写入各接收数据库306的详细过程在上述步骤s200~步骤s202中已经进行了详细阐述,本说明书在此不做赘述,详情可参见上述内容。

在本说明书所示的数据同步系统中,该系统中还可包含多个本地数据库300,以及多个本地数据库300对应的同步任务服务器,如图6所示,则可分别针对每个本地数据库300,确定该本地数据库300中的待同步数据集,并对该待同步数据集进行传输。

基于图4所示的数据同步系统,该系统中的本地数据库可先确定待同步数据集,并针对每个接收数据库,创建该接收数据库对应的传输实例。之后,根据预设的该接收数据库的数据接收规则,从该待同步数据集中确定该传输实例对应的待传输数据包,并通过执行该接收数据库对应的传输实例,将该传输实例对应的待传输数据包以及该接收数据库的标识上传至发送服务器。然后,由该系统中的发送服务器,通过安全专线将各传输实例对应的待传输数据包及其对应的接收数据库的标识发送至该系统中的接收服务器。最后,该接收服务器可针对每个传输实例对应的待传输数据包,根据该传输实例对应的接收数据库的标识,将该待传输数据包写入对应的接收数据库。通过确定对应于各接收数据库的传输实例,并将各传输实例对应的待传输数据包分别写入各传输实例对应的接收数据库中,无需各接收数据库轮询获取数据,数据传输的时效性较强。同时避免了各接收数据库获取到并非自身所需的数据,提高了数据同步的效率。

基于图2所示的数据同步方法,本说明书实施例还对应提供一种数据同步装置的结构示意图,如图7所示。

图7为本说明书实施例提供的一种数据同步装置的结构示意图,所述装置包括:

第一确定模块400,通过本地数据库确定待同步数据集;

创建模块402,针对每个接收数据库,创建该接收数据库对应的传输实例,所述传输实例携带有该接收数据库的标识;

第二确定模块404,根据预设的该接收数据库的数据接收规则,从所述待同步数据集中确定所述传输实例对应的待传输数据包;

执行及写入模块406,执行该接收数据库对应的传输实例,将所述传输实例对应的待传输数据包以及该接收数据库的标识,上传至发送服务器,使所述发送服务器通过安全专线将所述待传输数据包以及该接收数据库的标识发送至接收服务器,并由所述接收服务器根据该接收数据库的标识,将所述待传输数据包写入该接收数据库。

可选地,所述创建模块402具体用于,根据所述待同步数据集,确定传输任务,针对每个接收数据库,创建所述传输任务包含的该接收数据库对应的传输实例,所述传输实例属于所述传输任务。

可选地,所述第二确定模块404具体用于,根据存储的各接收数据库与各数据接收规则的对应关系,确定该接收数据库的数据接收规则,判断所述待同步数据集中是否存在与该接收数据库的数据接收规则匹配的数据,若是,则将匹配的数据作为所述传输实例对应的待传输数据包,若否,则确定该接收数据库的传输实例执行完毕。

可选地,所述执行及写入模块406具体用于,当确定出所述传输任务中各传输实例对应的待传输数据包时,根据预设的并行实例数量,将各传输实例进行分组,通过空闲线程依次执行各分组的传输实例,分别将各分组的传输实例对应的待传输数据包以及对应的接收数据库的标识,上传至发送服务器,直至各组传输实例执行完毕后,确定所述传输任务执行完毕。

可选地,所述执行及写入模块406具体用于,针对每个接收数据库,确定在所述发送服务器中预设的该接收数据库的存储路径,将所述传输实例对应的待传输数据包以及该接收数据库的标识发送至所述存储路径中存储,使所述发送服务器在监测到所述存储路径中数据变化时,将所述传输实例对应的待传输数据包以及该接收数据库的标识发送至所述接收服务器。

基于图3所示的数据同步方法,本说明书实施例还对应提供一种数据同步装置的结构示意图,如图8所示。

图8为本说明书实施例提供的一种数据同步装置的结构示意图,所述装置包括:

接收模块500,通过接收服务器接收发送服务器通过安全专线发送的各传输实例的数据,所述传输实例的数据至少包含所述传输实例对应的待传输数据包以及所述传输实例对应的接收数据库的标识;

写入模块502,针对每个传输实例对应的待传输数据包,根据该传输实例对应的接收数据库的标识,将该待传输数据包写入对应的接收数据库,其中,所述传输实例的数据通过以下方式由本地数据库上传至所述发送服务器:所述本地数据库创建每个接收数据库对应的传输实例,以基于各接收数据库的数据接收规则,从待同步数据集中确定各传输实例对应的待传输数据包,再通过执行各传输实例,将各传输实例的数据分别上传至所述发送服务器。

可选地,所述写入模块502具体用于,根据该传输实例对应的接收数据库的标识,确定所述接收数据库的属性,所述属性至少包括:数据结构或者数据库结构中的一种,根据所述接收数据库的属性对所述待传输数据包进行格式转换,将转换后的数据包存储至所述接收数据库中,使所述接收数据库根据所述转换后的数据进行业务处理。

可选地,所述写入模块502还用于,根据所述待传输数据包中的数据文件名称,判断所述待传输数据包是否为业务处理所需数据,若是,则将所述待传输数据包写入对应的接收数据库,若否,则不存储所述待传输数据包。

本说明书还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可用于执行上述提供的数据同步方法。

基于上述提供的数据同步方法,本说明书实施例还提供了图9所示的电子设备的结构示意图。如图9,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述的数据同步方法。

当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1