数据同步的方法、装置和系统
技术领域
本申请涉及数据处理领域,更具体地涉及数据同步的方法、装置和系统。
背景技术
由于系统备份、升级、数据交换或者数据共享等需求,需要在不同计算机网络域的数据源之间进行数据同步,但目前的技术方案只能实现同一个计算机网络域的不同数据源之间的数据同步,无法实现不同计算机网络域的数据源之间的数据同步,不能满足用户的数据同步需求。
因此,需求一种数据同步的方法,来克服上述技术问题。
发明内容
本申请的目的在于提供一种数据同步的方法、装置和系统,能够获取一个计算机网络域的数据源中的数据,并将获取到的数据写入另一个计算机网络域的数据源中,实现了不同计算机网络域的数据源之间的数据同步,满足用户的数据同步需求。
为解决上述技术问题,本申请实施例是这样实现的:
第一方面,提供了一种数据同步的方法,包括:
获取数据同步任务,所述数据同步任务用于指示将第一计算机网络域中第一数据源的待同步数据同步到第二计算机网络域中的第二数据源;
获取所述待同步数据;
根据所述数据同步任务的指示,将所述待同步数据写入所述第二数据源中。
第二方面,提供了一种数据同步的方法,包括:
获取数据同步任务,所述数据同步任务用于指示将第一计算机网络域中第一数据源的待同步数据同步到第二计算机网络域中的第二数据源;
直接读取所述待同步数据;
根据所述数据同步任务的指示,在接收到所述第二计算机网络域中的代理计算机发送的数据拉取请求时,将所述待同步数据发送给所述第二计算机网络域中的代理计算机,所述数据拉取请求用于请求将所述待同步数据写入所述第二数据源中,所述第二计算机网络域中的代理计算机用于将所述待同步数据写入所述第二数据源。
第三方面,提供了一种数据同步的方法,包括:
获取数据同步任务,所述数据同步任务用于指示将第一计算机网络域中第一数据源的待同步数据同步到第二计算机网络域中的第二数据源;
接收所述第一计算机网络域中的代理计算机推送的所述待同步数据;
根据所述数据同步任务的指示,将所述待同步数据写入所述第二数据源中。
第四方面,提供了一种数据同步的方法,包括:
获取数据同步任务,所述数据同步任务用于指示将第一计算机网络域中第一数据源的待同步数据同步到第二计算机网络域中的第二数据源;
接收所述第一计算机网络域中的代理计算机推送的所述待同步数据;
在接收到所述第二计算机网络域中的代理计算机发送的数据拉取请求时,将所述待同步数据发送给所述第二计算机网络域中的代理计算机,所述数据拉取请求用于请求将所述待同步数据写入所述第二数据源中,所述第二计算机网络域中的代理计算机用于将所述待同步数据写入所述第二数据源中。
第五方面,提供了一种数据同步装置,包括:
任务获取单元,获取数据同步任务,所述数据同步任务用于指示将第一计算机网络域中第一数据源的待同步数据同步到第二计算机网络域中的第二数据源;
数据获取单元,直接读取所述待同步数据;
数据写入单元,根据所述数据同步任务的指示,在接收到所述第二计算机网络域中的代理计算机发送的数据拉取请求时,将所述待同步数据发送给所述第二计算机网络域中的代理计算机,所述数据拉取请求用于请求将所述待同步数据写入所述第二数据源中,所述第二计算机网络域中的代理计算机用于将所述待同步数据写入所述第二数据源。
第六方面,提供了一种数据同步装置,包括:
任务获取单元,获取数据同步任务,所述数据同步任务用于指示将第一计算机网络域中第一数据源的待同步数据同步到第二计算机网络域中的第二数据源;
数据获取单元,接收所述第一计算机网络域中的代理计算机推送的所述待同步数据;
数据写入单元,根据所述数据同步任务的指示,将所述待同步数据写入所述第二数据源中。
第七方面,提供了一种数据同步装置,包括:
任务获取单元,获取数据同步任务,所述数据同步任务用于指示将第一计算机网络域中第一数据源的待同步数据同步到第二计算机网络域中的第二数据源;
数据获取单元,接收所述第一计算机网络域中的代理计算机推送的所述待同步数据;
数据写入单元,根据所述数据同步任务的指示,在接收到所述第二计算机网络域中的代理计算机发送的数据拉取请求时,将所述待同步数据发送给所述第二计算机网络域中的代理计算机,所述数据拉取请求用于请求将所述待同步数据写入所述第二数据源中,所述第二计算机网络域中的代理计算机用于将所述待同步数据写入所述第二数据源中。
第八方面,提供了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使用所述处理器执行以下操作:
获取数据同步任务,所述数据同步任务用于指示将第一计算机网络域中第一数据源的待同步数据同步到第二计算机网络域中的第二数据源;
直接读取所述待同步数据;
根据所述数据同步任务的指示,在接收到所述第二计算机网络域中的代理计算机发送的数据拉取请求时,将所述待同步数据发送给所述第二计算机网络域中的代理计算机,所述数据拉取请求用于请求将所述待同步数据写入所述第二数据源中,所述第二计算机网络域中的代理计算机用于将所述待同步数据写入所述第二数据源。
第九方面,提供了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使用所述处理器执行以下操作:
获取数据同步任务,所述数据同步任务用于指示将第一计算机网络域中第一数据源的待同步数据同步到第二计算机网络域中的第二数据源;
接收所述第一计算机网络域中的代理计算机推送的所述待同步数据;
根据所述数据同步任务的指示,将所述待同步数据写入所述第二数据源中。
第十方面,提供了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使用所述处理器执行以下操作:
获取数据同步任务,所述数据同步任务用于指示将第一计算机网络域中第一数据源的待同步数据同步到第二计算机网络域中的第二数据源;
接收所述第一计算机网络域中的代理计算机推送的所述待同步数据;
根据所述数据同步任务的指示,在接收到所述第二计算机网络域中的代理计算机发送的数据拉取请求时,将所述待同步数据发送给所述第二计算机网络域中的代理计算机,所述数据拉取请求用于请求将所述待同步数据写入所述第二数据源中,所述第二计算机网络域中的代理计算机用于将所述待同步数据写入所述第二数据源中。
第十一方面,提供了一种计算机可读介质,所述计算机可读介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
获取数据同步任务,所述数据同步任务用于指示将第一计算机网络域中第一数据源的待同步数据同步到第二计算机网络域中的第二数据源;
直接读取所述待同步数据;
根据所述数据同步任务的指示,在接收到所述第二计算机网络域中的代理计算机发送的数据拉取请求时,将所述待同步数据发送给所述第二计算机网络域中的代理计算机,所述数据拉取请求用于请求将所述待同步数据写入所述第二数据源中,所述第二计算机网络域中的代理计算机用于将所述待同步数据写入所述第二数据源。
第十二方面,提供了一种计算机可读介质,所述计算机可读介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
获取数据同步任务,所述数据同步任务用于指示将第一计算机网络域中第一数据源的待同步数据同步到第二计算机网络域中的第二数据源;
接收所述第一计算机网络域中的代理计算机推送的所述待同步数据;
根据所述数据同步任务的指示,将所述待同步数据写入所述第二数据源中。
第十三方面,提供了一种计算机可读介质,所述计算机可读介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
获取数据同步任务,所述数据同步任务用于指示将第一计算机网络域中第一数据源的待同步数据同步到第二计算机网络域中的第二数据源;
接收所述第一计算机网络域中的代理计算机推送的所述待同步数据;
根据所述数据同步任务的指示,在接收到所述第二计算机网络域中的代理计算机发送的数据拉取请求时,将所述待同步数据发送给所述第二计算机网络域中的代理计算机,所述数据拉取请求用于请求将所述待同步数据写入所述第二数据源中,所述第二计算机网络域中的代理计算机用于将所述待同步数据写入所述第二数据源中。
第十四方面,提供了一种数据同步系统,包括第八方面的电子设备、第九方面的电子设备和第十方面的电子设备。
由以上本申请实施例提供的技术方案可见,本申请实施例在获取到第一计算机网络域内第一数据源中的待同步数据之后,根据数据同步任务指示将待同步数据写入第二计算机网络域的第二数据源中,实现了不同计算机网络域的数据源之间的数据同步,满足用户的数据同步需求。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请的一个实施例的数据同步的方法的流程图。
图2是根据本申请的另一个实施例的数据同步的方法的流程图。
图3是根据本申请的再一个实施例的数据同步的方法的流程图。
图4是根据本申请再一个实施例的数据同步的方法的流程图。
图5是根据本申请的一个实施例的系统框架的示意图。
图6是根据本申请另一个实施例的系统框架的示意图。
图7是根据本申请再一个实施例的系统框架的示意图。
图8是根据本申请的一个实施例的电子设备的结构示意图。
图9是根据本申请的一个实施例的数据同步装置的结构示意图。
图10是根据本申请的另一个实施例的电子设备的结构示意图。
图11是根据本申请的另一个实施例的数据同步装置的结构示意图。
图12是根据本申请的再一个实施例的电子设备的结构示意图。
图13是根据本申请的再一个实施例的数据同步装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
为了方便理解本申请,在此首先介绍本申请实施例描述中将涉及到的几个重要术语:
一是计算机网络域。在本申请实施例中,计算机网络域中的计算机已经建立信任关系,域内的一台计算机访问该域内的其他计算机,不再需要被访问计算机的许可。这些计算机构成了具有安全边界的计算机集合。在实际应用过程中,一个计算机网络域可以是多个局域网的集合,也可以是多个局域网与一定范围的公网部分的集合,还可以是一个局域网内的部分具有安全信任关系的计算机之间组成的集合。总之,计算机网络域的延展范围、包含的计算机数量之多少、物理位置之分布状态、涉及的计算机系统之结构繁复与否等事项,与应用者以安全为维度所圈定/指定的“域”范围有关。
二是数据源。通常,数据源是多个数据集合的实体,该数据源内部的数据可以具有相同的数据形式,也可以具有不同的数据形式。此外,数据源本身还可以具有多种类型,本申请实施例中的数据源的类型包括但不限于:Mysql、Oracle、SqlServer、DB2、Hbase和Oss。
三是DataX架构。该架构是一种数据同步框架,其能够实现同一个计算机网络域中多种数据源之间高效的数据同步功能。因此,理论上DataX框架可以支持同一计算机网络域中任意数据源类型的数据同步工作。
在介绍上述术语后,下面结合附图对本申请的各个实施例进行描述。参见图1,该图示出了本申请的一个实施例的数据同步的方法100。该方法可以由数据同步装置执行。如图1所示出的,在S102处,获取数据同步任务,所述数据同步任务用于指示将第一计算机网络域中第一数据源的待同步数据同步到第二计算机网络域中的第二数据源。
可选地,在一些实施例中,获取数据同步任务具体为接收控制器分发的数据同步任务。在这种情况下,控制器获取用户通过应用程序交互界面创建的数据同步任务,并根据网络中能够执行数据同步任务的计算机的负载情况,确定执行数据同步任务的计算机,将数据同步任务分发到确定的计算机上。
在S104处,获取待同步数据。
在S106处,根据所述同步任务的指示,将待同步数据写入第二数据源中。
需要说明的是,虽然上述实施例为了表述的方便,将步骤S104置于步骤S102之后,但是,根据实际情况,这两个步骤的执行顺序可以调换,即先获取需要同步的数据,然后再收到数据同步任务,从而根据数据同步任务的要求确定当前需要同步的待同步数据,进而按照数据同步任务的指示完成对该待同步数据的同步任务。
可选地,作为一个实施例,在S104处,待同步数据为加密后的数据。相对应地,在S106处,将解密待同步数据后得到的数据写入第二数据源中。由此,能够提高数据的安全性。
可选地,作为一个实施例,在S104处,待同步数据时压缩后的数据。相对应地,在S106处,将解压缩待同步数据后得到的数据写入第二数据源中。由此,能够提高数据的安全性。
下面结合更具体的实施例,进一步描述根据本申请实施例的数据同步的方法。
实施例一:
执行方法100的数据同步装置可以为第一计算机网络域中的代理计算机,如图2所示出的,在S104处,获取待同步数据具体可以是:直接读取待同步数据。相对应地,在S106处,根据数据同步任务的指示,将待同步数据写入第二数据源中具体可以是:根据所述数据同步任务的指示,在接收到第二计算机网络域中的代理计算机发送的数据拉取请求时,向第二计算机网络域中的代理计算机发送待同步数据,所述数据拉取请求用于请求将所述待同步数据写入所述第二数据源中,所述第二计算机网络域中的代理计算机用于将所述待同步数据写入所述第二数据源,以使得第二计算机网络域中的待同步数据接收到待同步数据之后将待同步数据写入第二数据源中。由此,能够实现在本计算机网络域的数据源中读取待同步数据,并将待同步数据跨域写入另一个计算机网络域的数据源中。
可选地,作为一个例子,用户在确定创建的数据同步任务被分配给第一计算机网络域中的代理计算机时,配置第二计算机网络域中的代理计算机向第一计算机网络域中的代理计算机发送数据拉取请求。或者第二计算机网络域中的代理计算机周期性或非周期性的向第一计算机网络域中的代理计算机发送数据拉取请求,当第一计算机网络域中的代理计算机获取到同步任务之后,向第二计算机网络域中的代理计算机发送待同步数据。
可选地,作为一个例子,在接收到第二计算机网络域中的代理计算机发送的数据拉取请求时,将待同步数据进行加密和/或压缩,并向第二计算机网络域中的代理计算机发送加密后和/或压缩后的待同步数据。相对应地,第二计算机网络域中的代理计算机在接收到加密和/或压缩后的待同步数据之后,先进行解密和/或解压缩操作得到解密后和/或解压缩后的待同步数据,之后将解密后和/或解压缩后的待同步数据写入第二数据源中。
可选地,作为再一个例子,用户创建的数据同步任务还用于指示第二数据源的类型。在这种情况下,如果确定第一数据源和第二数据源具有相同的类型,例如,第一数据源的类型为Mysql,第二数据源的类型也为Mysql,在接收到第二计算机网络域中的代理计算机发送的数据拉取请求之后,直接将待同步数据发送给第二计算机网络域中的代理计算机。如果确定第一数据源和第二数据源的类型不同,例如,第一数据源的类型为Oracle,第二数据源的类型为Mysql,则在将待同步数据转换为符合第二数据源的类型的数据,之后在接收到第二计算机网络域中的代理计算机发送的数据拉取请求之后,将转换成的数据发送给第二计算机网络域中的代理计算机。
可选地,作为再一个例子,用户可以通过应用程序交互界面创建配置信息,对第一数据源和第二数据源进行配置。配置信息中包括与第一数据源相关的信息以及与第二数据源相关的信息,其中,与第一数据源相关的信息包括下列信息中的至少一种:第一数据源的类型、第一数据源中的数据表和第一数据源中的字段信息,与第二数据源相关的信息包括下列信息中的至少一种:第二数据源的类型、第二数据源中的数据表和第二数据源中的字段信息。相对应地,可以根据配置信息判断第一数据源和第二数据源是否具有相同的类型。
可选地,在将待同步数据转换为符合第二数据源的类型的数据时,可以根据预先配置的数据转换规则进行,数据转换规则用于指定根据待同步数据生成满足第二数据源的类型的数据需要执行的操作,例如,将待同步数据与某个预先设定的常量C相乘,从而得到满足第二数据源的类型的数据。
举例来说,以第一数据源的类型为Oracle,第二数据源的类型为Mysql为例,在将待同步数据转换为满足第二数据源的类型的数据时,将待同步数据中的二进制大对象(Binary Large Object,blob)类型的数据转换为Mysql的longlob类型的数据,将待同步数据中的binary_float类型的数据转换为Mysql的decimal类型的数据,将待同步数据中的binary_double类型的数据转换为Mysql的double类型的数据,将待同步数据中的varchar2类型的数据转换为Mysql的varchar类型的数据,将待同步数据中的nvarchar2类型的数据转换为Mysql的national varchar类型的数据。
实施例二:
执行方法100的数据同步装置可以为第二计算机网络域中的代理计算机,如图3所示出的,在S104处,获取待同步数据具体可以是:接收第一计算机网络域中的代理计算机推送的待同步数据。相对应的,在S106处,根据数据同步任务的指示,将待同步数据写入第二数据源中具体可以是:根据数据同步任务的指示,将接收到的第一计算机网络域中的代理计算机发送的待同步数据写入第二数据源中。由此,能够实现从一个计算机网络域的数据源中跨域读取待同步数据,并将待同步数据写入本计算机网络域的数据源中。
可选地,作为一个例子,用户在确定创建的数据同步任务被分配给第二计算机网络域中的代理计算机时,配置第一计算机网络域中的代理计算机向第二计算机网络域中的代理计算机推送待同步数据。或者第一计算机网络域中的代理计算机周期性或非周期性的向第二计算机网络域中的代理计算机推送待同步数据,当第二计算机网络域中的代理计算机获取到数据同步任务时,根据数据同步任务的指示将待同步数据写入第二数据源中。
可选地,作为一个例子,在S104处,接收到的待同步数据是经过加密和/或压缩的,在S106处,先对接收到的待同步数据进行解密和/或解压缩操作得到解密后和/或解压缩后的待同步数据,之后将解密后和/或解压缩后的待同步数据写入第二数据源中。
可选地,作为再一个例子,用户创建的数据同步任务还用于指示第一数据源的类型。在这种情况下,如果确定第一数据源和第二数据源具有相同的类型,在接收到待同步数据之后,直接将待同步数据写入第二数据源中。如果确定第一数据源和第二数据源的类型不同,先将待同步数据转换为符合第二数据源的类型的数据,再将转换成的数据写入第二数据源中。
可选地,作为再一个例子,用户可以配置第一计算机网络域中的代理计算机在第一数据源和第二数据源的类型不同时,将待同步数据转换成符合第二数据源的类型的数据之后,再向第二数据源中的代理计算机发送转换成的数据。
可选地,作为再一个例子,用户可以通过应用程序交互界面创建配置信息,对第一数据源和第二数据源进行配置。配置信息中包括与第一数据源相关的信息以及与第二数据源相关的信息,其中,与第一数据源相关的信息包括下列信息中的至少一种:第一数据源的类型、第一数据源中的数据表和第一数据源中的字段信息,与第二数据源相关的信息包括下列信息中的至少一种:第二数据源的类型、第二数据源中的数据表和第二数据源中的字段信息。相对应地,可以根据配置信息判断第一数据源和第二数据源是否具有相同的类型。
实施例三:
执行方法100的数据同步装置可以为网关设备,如图4所示出的,在S104处,获得待同步数据具体可以是:接收第一计算机网络域中的代理计算机推送的待同步数据。相对应地,在S106处,根据数据同步任务的指示,将待同步数据写入第二数据源中具体可以是:根据数据同步任务的指示,在接收到第二计算机网络域中的代理计算机发送的数据拉取请求时,向第二计算机网络域中的代理计算机发送待同步数据,所述数据拉取请求用于请求将所述待同步数据写入所述第二数据源中,所述第二计算机网络域中的代理计算机用于将所述待同步数据写入所述第二数据源。由此使得第二计算机网络域中的代理计算机在接收到待同步数据后,将待同步数据写入第二数据源中。由此,能够实现跨域读取一个计算机网络域的数据源中的待同步数据,并将待同步数据跨域写入另一个计算机网络域的数据源中。
可选地,作为一个例子,用户在确定创建的数据同步任务被分配给网关设备时,配置第一计算机网络域中的代理计算机向网关设备推送待同步数据,并配置第二计算机网络域中的代理计算机向网关设备发送数据拉取请求。或者第一计算机网络域中的代理计算机周期性或非周期性的向网关设备推送待同步数据,第二计算机网络域中的代理计算机周期或非周期的向网关设备发送数据拉取请求。
可选地,作为一个例子,第一计算机网络域中的代理计算机向网关设备推送待同步数据的周期与第二计算机网络域中的代理计算机向网关设备发送数据拉取请求的周期相同。
可选地,作为另一个例子,在S106处接收到的待同步数据为加密和/或压缩后的数据。也就是说,第一计算机网络域中的代理计算机先将待同步数据进行加密和/或压缩,再将加密和/或压缩后的待同步数据推送给网关设备。
可选地,作为再一个例子,用户在触发第一计算机网络域中的代理计算机向网关设备推送待同步数据时,为第一计算机网络域中的代理计算机配置第二数据源的类型。在这种情况下,如果第一计算机网络域中的代理计算机确定第一数据源和第二数据源的类型不同,第一计算机网络域中的代理计算机将待同步数据转换为符合第二数据源的类型的数据,之后将转换成的数据推送给网关设备。
可选地,作为再一个例子,用户创建的数据同步任务还用于指示第一数据源和第二数据源的类型。在这种情况下,如果网关设备确定第一数据源和第二数据源具有相同的类型,网关设备在接收到第二计算机网络域中的代理计算机发送的数据拉取请求之后,直接将待同步数据写入第二数据源中。如果网关设备确定第一数据源和第二数据源的类型不同,网关设备将待同步数据转换为符合第二数据源的类型的数据,在接收到第二计算机网络域中的代理计算机发送的数据拉取请求时,将转换成的数据发送给第二计算机网络域中的代理计算机。
可选地,在一些实施例中,用户可以通过应用程序交互界面创建配置信息,对第一数据源和第二数据源进行配置。配置信息中包括与第一数据源相关的信息以及与第二数据源相关的信息,其中,与第一数据源相关的信息包括下列信息中的至少一种:第一数据源的类型、第一数据源中的数据表和第一数据源中的字段信息,与第二数据源相关的信息包括下列信息中的至少一种:第二数据源的类型、第二数据源中的数据表和第二数据源中的字段信息。相对应地,第一计算机网络域中的代理计算机和/或网关设备可以根据配置信息判断第一数据源和第二数据源是否具有相同的类型。
至此描述了根据本申请实施例的数据同步的方法。为了便于理解本申请的构思,下面将结合图5描述根据本申请一个具体实施例的用于数据同步的方法的系统框架500,该系统框架500以DataX框架为基础。该系统框架500能够实现图2所示的方法100。
如图5所示,系统框架500包括:JSS接口510、控制器520、第一代理计算机530、第一数据源540、第二代理计算机550、第二数据源560,第一代理计算机530属于第一计算机网络域,第二代理计算机550属于第二计算机网络域。
其中,JSS接口510是一个网络安全服务的Java接口,为用户提供跨计算机网络域的数据同步的配置入口。用户可以通过JSS接口510配置与第一数据源540和第二数据源560相关的配置信息,用户还可以通过JSS接口510创建数据同步任务。
控制器520用于将从JSS接口510获取到的数据同步任务分发到代理计算机530。可选地,第一计算机网络域中有多个代理计算机,控制器520根据代理计算机的负载情况确定执行数据同步任务的代理计算机。需要指出的是,本文中所述的控制器520可以对应于一个独立的控制器,也可以对应于一个控制器集群。在本申请中,数据同步任务可以抽象理解为Java进程。
第一代理计算机530包括读(Reader)模块531和网络写(NetworkWriter)模块532。其中,Reader模块531用于读取第一数据源540中的待同步数据,并将待同步数据传输给NetworkWriter模块532,NetworkWriter模块532在接收到第二代理计算机550发送的数据拉取请求时,向第二代理计算机550发送待同步数据。可选地,NetworkWriter模块532将待同步数据压缩和/或加密之后发送给第二代理计算机550。
第二代理计算机550包括跨域读(ReginNetworkReader)模块551和写(Writer)模块552。其中,ReginNetworkReader模块551用于向第一代理计算机530发送数据拉取请求,并接收第一代理计算机通过NetworkWriter模块532发送的待同步数据,将接收到的待同步数据传输给Writer模块552,Writer模块552将接收到的待同步数据写入第二数据源560中。可选地,ReginNetwork Reader模块551接收到的待同步数据是加密和/或压缩过的数据,ReginNetwork Reader模块551对接收到的待同步数据进行解密和/或解压缩处理,并向Writer模块552传输解密和/或解压缩处理得到的待同步数据。
需要说明的是,系统框架500中的NetworkWriter模块532和ReginNetwork Reader模块551可以以DataX插件的形式集成进现有的DataX框架,并且上述模块之间的数据传输以Netty为实现方法,但实现上述模块之间的数据传输的方法并不限Netty。
下面将结合图6描述根据本申请一个具体实施例的用于数据同步的方法的系统框架600,该系统框架600以DataX框架为基础。该系统框架600能够实现图3所示的方法100。
如图6所示,系统框架600包括:JSS接口610、第一代理计算机620、第一数据源630、控制器640、第二代理计算机650、第二数据源660,第一代理计算机620属于第一计算机网络域,第二代理计算机650属于第二计算机网络域。
其中,JSS接口610与JSS接口510功能相同,控制器640与控制器520功能类似,在此不再赘述。
第一代理计算机620包括读(Reader)模块621和跨域写(ReginNetworkWriter)模块622。其中,Reader模块621用于读取第一数据源630中的待同步数据,并将待同步数据传输给ReginNetworkWriter模块622,ReginNetworkWriter模块622将同步数据推送给第二代理计算机650。可选地,ReginNetworkWriter模块622将待同步数据压缩和/或加密之后推送给第二代理计算机650。
第二代理计算机650包括网络读(NetworkReader)模块651和写(Writer)模块652。其中,NetworkReader模块651接收第一代理计算机620推送的待同步数据,将接收到的待同步数据传输给Writer模块652,Writer模块652将接收到的待同步数据写入第二数据源660中。可选地,NetworkReader模块651模块接收到的待同步数据是加密和/或压缩过的数据,NetworkReader模块651对接收到的待同步数据进行解密和/或解压缩处理,并向Writer模块652传输解密和/或解压缩处理得到的待同步数据。
需要说明的是,系统框架600中的ReginNetworkWriter模块622和Network Reader模块651可以以DataX插件的形式集成进现有的DataX框架,并且上述模块之间的数据传输以Netty为实现方法,但实现上述模块之间的数据传输的方法并不限Netty。
下面将结合图7描述根据本申请一个具体实施例的用于数据同步的方法的系统框架700,该系统框架700以DataX框架为基础。该系统框架700能够实现图4所示的方法100。
如图7所示,系统框架700包括:JSS接口710、网关设备720、控制器730、第一代理计算机740、第一数据源750、第二代理计算机760、第二数据源770,第一代理计算机740属于第一计算机网络域,第二代理计算机760属于第二计算机网络域。
其中,JSS接口710与JSS接口610功能相同,在此不再赘述。
网关设备720是执行数据同步任务的计算机,网关设备720包括网络读(NetworkReader)模块721和网络写(NetworkWriter)模块722,NetworkReader模块721接收第一代理计算机740推送的待同步数据,并将待同步数据传输到NetworkWriter模块722,NetworkWriter模块722用于接收第二代理计算机760发送的数据拉取请求,并将待同步数据发送给第二代理计算机760。可选地,在NetworkReader模块721和NetworkWriter模块722之间可以设置数据处理模块,数据处理模块用于根据数据转换规则对待同步数据进行转换。例如,数据处理模块可以在第一数据源750和第二数据源770具有不同的类型时,将待同步数据转换为符合第二数据源770的类型的数据。需要指出的是,本文中所述的网关设备可以对应于一个独立的网关设备,可以对应于一个网关设备集群。
控制器730用于将数据同步任务分发到网关设备720。可选地,网络中有多个网关设备,控制器730根据网关设备的负载情况确定执行数据同步任务的网关设备。需要指出的是,本文中所述的控制器可以对应于一个独立的控制器,也可以对应于一个控制器集群。在本申请中,数据同步任务可以抽象理解为Java进程。
第一代理计算机740包括读(Reader)模块741、跨域写(ReginNetwork Writer)模块742、元数据查询(MetaQueryer)模块743和网络守护进程(NetworkDaemon)模块744。其中,Reader模块741用于读取第一数据源750中的待同步数据,并将待同步数据传输给ReginNetworkWriter模块742,ReginNetworkWriter模块742向网关设备720中的NetworkReader模块721推送待同步数据。可选地,ReginNetworkWriter模块742将待同步数据压缩加密之后推送给NetworkReader模块721。MetaQueryer模块743用于获取与第一数据源750相关的元数据并提供给JSS接口,以便用户查询和了解与第一数据源750相关的信息,NetworkDaemon模块744用于封装底层网络接口(例如,跨域写模块742的接口和MetaQueryer模块743的接口)的差异向系统框架提供同一调用接口。
第二代理计算机760包括跨域读(ReginNetworkReader)模块761、写(Writer)模块762和NetworkDaemon模块763。其中,ReginNetworkReader模块761用于向网关设备720中的NetworkWriter模块722发送数据拉取请求,并接收NetworkWriter模块722发送的待同步数据,将接收到的待同步数据传输给Writer模块762,Writer模块762将接收到的数据写入第二数据源770中。可选地,ReginNetworkReader模块761接收到的待同步数据是加密和/或压缩过的数据,ReginNetworkReader模块761对接收到的待同步数据进行解密和/或解压缩处理,并向Writer模块762传输解密和/或解压缩处理得到的数据。NetworkDaemon模块763的作用和NetworkDaemon模块744的作用类似,在此不再赘述。
需要说明的是,系统框架700中的ReginNetworkWriter模块742、NetworkReader模块721、NetworkWriter模块722和ReginNetworkReader模块761可以以DataX插件的形式集成进现有的DataX框架。
由此,本申请实施例的系统框架克服了不同计算机网络域的数据隔离限制,提供了同步不同计算机网络域中的数据的能力。本申请实施例的系统框架还能够实现不同类型的数据源的数据之间的转换,从而实现不同计算机网络域中的不同类型的数据源的数据交换和同步。
需要说明的是,本申请实施例中的第一计算机网络域中的代理计算机和第二计算机网络域中的代理计算机可以认为是计算机网络域中的网关设备。
下面将结合图8详细描述根据本申请的一个实施例的电子设备。参考图8,在硬件层面,电子设备包括处理器,可选地,包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(ExtendedIndustry Standard Architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据同步装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
获取数据同步任务,所述数据同步任务用于指示将第一计算机网络域中第一数据源的待同步数据同步到第二计算机网络域中的第二数据源;
直接读取所述待同步数据;
根据所述数据同步任务的指示,在接收到所述第二计算机网络域中的代理计算机发送的数据拉取请求时,将所述待同步数据发送给所述第二计算机网络域中的代理计算机,所述数据拉取请求用于请求将所述待同步数据写入所述第二数据源中,所述第二计算机网络域中的代理计算机用于将所述待同步数据写入所述第二数据源。
上述如本申请图2所示实施例揭示的数据同步装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图2的方法,并实现数据同步装置在图2所示实施例的功能,本申请实施例在此不再赘述。
当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图2所示实施例的方法,并具体用于执行以下方法:
获取数据同步任务,所述数据同步任务用于指示将第一计算机网络域中第一数据源的待同步数据同步到第二计算机网络域中的第二数据源;
直接读取所述待同步数据;
根据所述数据同步任务的指示,在接收到所述第二计算机网络域中的代理计算机发送的数据拉取请求时,将所述待同步数据发送给所述第二计算机网络域中的代理计算机,所述数据拉取请求用于请求将所述待同步数据写入所述第二数据源中,所述第二计算机网络域中的代理计算机用于将所述待同步数据写入所述第二数据源。
图9是本申请的一个实施例的数据同步装置的结构示意图。请参考图9,在一种软件实施方式中,数据同步装置900可包括:任务获取单元901、数据获取单元902、数据写入单元903;其中,
任务获取单元901,获取数据同步任务,所述数据同步任务用于指示将第一计算机网络域中第一数据源的待同步数据同步到第二计算机网络域中的第二数据源;
数据获取单元902,直接读取所述待同步数据;
数据写入单元903,根据所述数据同步任务的指示,在接收到所述第二计算机网络域中的代理计算机发送的数据拉取请求时,将所述待同步数据发送给所述第二计算机网络域中的代理计算机,所述数据拉取请求用于请求将所述待同步数据写入所述第二数据源中,所述第二计算机网络域中的代理计算机用于将所述待同步数据写入所述第二数据源。
本申请实施例的数据同步装置在读取到所在的计算机网络域的数据源中的待同步数据之后,向另一个计算机网络域中的代理计算机或网关设备推送待同步数据,或者在接收到另一个计算机网络域中的代理计算机发送的数据拉取请求后向该代理计算机发送待同步数据,从而实现待同步数据从一个计算机网络域的数据源同步到另一个计算机网络域的数据源中。
数据同步装置900还可执行图2所示实施例的方法,本申请实施例在此不再赘述。
图10是根据本申请的另一个实施例的电子设备的结构示意图。参考图10,在硬件层面,电子设备包括处理器,可选地,包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上数据同步装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
获取数据同步任务,所述数据同步任务用于指示将第一计算机网络域中第一数据源的待同步数据同步到第二计算机网络域中的第二数据源;
接收所述第一计算机网络域中的代理计算机推送的所述待同步数据;
根据所述数据同步任务的指示,将所述待同步数据写入所述第二数据源中。
上述如本申请图3所示实施例揭示的数据同步装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括CPU、NP等;还可以是DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图3的方法,并实现数据同步装置在图3所示实施例的功能,本申请实施例在此不再赘述。
当然,除了软件实现方式之外,本申请的服务器并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图3所示实施例的方法,并具体用于执行以下方法:
获取数据同步任务,所述数据同步任务用于指示将第一计算机网络域中第一数据源的待同步数据同步到第二计算机网络域中的第二数据源;
接收所述第一计算机网络域中的代理计算机推送的所述待同步数据;
根据所述数据同步任务的指示,将所述待同步数据写入所述第二数据源中。
图11是本申请的一个实施例的数据同步装置结构示意图。请参考图11,在一种软件实施方式中,数据同步装置1100可包括:任务获取单元1101、数据获取单元1102和数据写入单元1103,其中,
任务获取单元1101,获取数据同步任务,所述数据同步任务用于指示将第一计算机网络域中第一数据源的待同步数据同步到第二计算机网络域中的第二数据源;
数据获取单元1102,接收所述第一计算机网络域中的代理计算机推送的所述待同步数据;
数据写入单元1103,根据所述数据同步任务的指示,将所述待同步数据写入所述第二数据源中。
根据本申请实施例的数据同步装置,接收一个计算机网络域中的代理计算机推送的一个数据源中的待同步数据或者接收网关设备发送的该数据源中的待同步数据,并根据接收到的数据同步任务的指示将接收到的待同步数据写入另一个数据源中,从而实现待同步数据从一个计算机网络域中的数据源同步到另一个计算机网络域的数据源中。
可选地,作为一个实施例,所述数据获取单元1102获取到的待同步数据是经过加密处理的,所述数据获取单元1102将所述待同步数据进行解密处理得到解密后的数据;所述数据写入单元1103,将所述解密后的数据写入所述第二数据源中。
可选地,作为一个实施例,所述数据获取单元1102获取到的待同步数据是经过压缩处理的,所述数据获取单元1102将所述待同步数据进行解压缩处理得到解压后的数据;所述数据写入单元1103,将所述解压后的数据写入所述第二数据源中。
数据同步装置1100还可执行图3所示实施例的方法,本申请实施例在此不再赘述。
图12是根据本申请的另一个实施例的电子设备的结构示意图。参考图12,在硬件层面,电子设备包括处理器,可选地,包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据同步装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
获取数据同步任务,所述数据同步任务用于指示将第一计算机网络域中第一数据源的待同步数据同步到第二计算机网络域中的第二数据源;
接收所述第一计算机网络域中的代理计算机推送的所述待同步数据;
根据所述数据同步任务的指示,在接收到所述第二计算机网络域中的代理计算机发送的数据拉取请求时,将所述待同步数据发送给所述第二计算机网络域中的代理计算机,所述数据拉取请求用于请求将所述待同步数据写入所述第二数据源中,所述第二计算机网络域中的代理计算机用于将所述待同步数据写入所述第二数据源中。
上述如本申请图4所示实施例揭示的数据同步装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括CPU、NP等;还可以是DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图4的方法,并实现数据同步装置在图4所示实施例的功能,本申请实施例在此不再赘述。
当然,除了软件实现方式之外,本申请的服务器并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图4所示实施例的方法,并具体用于执行以下方法:
获取数据同步任务,所述数据同步任务用于指示将第一计算机网络域中第一数据源的待同步数据同步到第二计算机网络域中的第二数据源;
接收所述第一计算机网络域中的代理计算机推送的所述待同步数据;
根据所述数据同步任务的指示,在接收到所述第二计算机网络域中的代理计算机发送的数据拉取请求时,将所述待同步数据发送给所述第二计算机网络域中的代理计算机,所述数据拉取请求用于请求将所述待同步数据写入所述第二数据源中,所述第二计算机网络域中的代理计算机用于将所述待同步数据写入所述第二数据源中。
图13是本申请的一个实施例的数据同步装置的结构示意图。请参考图13,在一种软件实施方式中,数据同步装置1300可包括:任务获取单元1301、数据获取单元1302、数据发送单元1303,其中,
任务获取单元1301,获取数据同步任务,所述数据同步任务用于指示将第一计算机网络域中第一数据源的待同步数据同步到第二计算机网络域中的第二数据源;
数据获取单元1302,接收所述第一计算机网络域中的代理计算机推送的所述待同步数据;
数据写入单元1303,根据所述数据同步任务的指示,在接收到所述第二计算机网络域中的代理计算机发送的数据拉取请求时,将所述待同步数据发送给所述第二计算机网络域中的代理计算机,所述数据拉取请求用于请求将所述待同步数据写入所述第二数据源中,所述第二计算机网络域中的代理计算机用于将所述待同步数据写入所述第二数据源中。
根据本申请实施例的数据同步装置,接收一个计算机网络域中的代理计算机推送的一个数据源中的待同步数据,并在接收到另一个计算机网络域中的代理计算机发送的数据拉取请求时,将待同步数据发送给该另一个计算机网络域中的代理计算机,从而实现待同步数据从一个计算机网络域中的数据源同步到另一个计算机网络域的数据源中。
可选地,作为一个实施例,所述待同步数据为加密处理后的数据。
可选地,作为一个实施例,所述待同步数据为压缩处理后的数据。
数据同步装置1300还可执行图4所示实施例的方法,本申请实施例在此不再赘述。
总之,以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。