数据源之间的数据传输方法和系统与流程

文档序号:14990701发布日期:2018-07-20 22:09阅读:205来源:国知局
本发明属于数据传输处理
技术领域
:,具体地说,尤其涉及一种数据源之间的数据传输方法和系统。
背景技术
::由于互联网开发日益增多,各平台均开始着力打造开放云架构,云服务也日益丰富,传统应用迁移到私有云的需求也日益增多,这就急需解决不同数据源之间的数据传输功能。现有技术中的产品只能提供固定的目标数据源,或者只能在自己的云服务平台进行数据传输,各个产品的传输服务只能提供片面的功能,这给传统应用的数据传输使用带来了技术困难。技术实现要素:为解决以上问题,本发明提供了一种数据源之间的数据传输方法和系统,用于实现不同数据源直接的数据传输。根据本发明的一个方面,提供了一种数据源之间的数据传输方法,包括:配置源数据库和目标数据库之间的任务信息;根据所述任务信息分配完成对应任务的调度节点和工作节点;根据所述任务信息,利用所述调度节点和所述工作节点对源数据库的数据处理后传输给所述目标数据库。根据本发明的一个实施例,根据所述任务信息,利用所述调度节点和所述工作节点对源数据库的数据处理后传输给所述目标数据库进一步包括:如所述任务信息为数据同步任务信息,则从所述数据同步任务信息中获取源数据库和目标数据库的连接信息、映射条件、过滤条件和数据同步方式;根据所述连接信息获取源数据库中的数据和模拟交换协议;根据所述模拟交换协议获取源数据库的二进制日志;解析所述二进制日志以获取源数据库中的数据中的增量数据;根据所述映射条件和所述过滤条件来对所述增量数据进行筛选;将筛选后的增量数据转化为对应目标数据库的数据库操作语句;按照所述数据同步方式,将所述数据库操作语句导入目标数据源。根据本发明的一个实施例,根据所述任务信息,利用所述调度节点和所述工作节点对源数据库的数据处理后传输给所述目标数据库进一步包括:如所述任务信息为数据订阅任务信息,则从所述数据订阅任务信息中获取源数据库和目标数据库的连接信息、映射条件和过滤条件;根据所述连接信息获取源数据库中的数据和模拟交换协议;根据所述模拟交换协议获取源数据库中的数据中的二进制日志;解析所述二进制日志以获取源数据库的增量数据;根据所述映射条件和所述过滤条件来对所述增量数据进行筛选;将筛选后的增量数据通过分布式发布订阅消息系统发送到目标数据源的消息队列中;解析消息队列里的增量数据来实现目标数据源的数据订阅。根据本发明的一个实施例,根据所述任务信息,利用所述调度节点和所述工作节点对源数据库的数据处理后传输给所述目标数据库进一步包括:如所述任务信息为数据迁移任务,则从所述数据迁移任务的配置任务信息中获取源数据库和目标数据库的连接信息、映射条件、过滤条件和数据迁移方式;根据所述连接信息编写多个匹配源数据源的读插件和多个匹配目标数据源的写插件;选取匹配源数据库的读插件来读取源数据库中的数据中的数据;根据所述映射条件和所述过滤条件来对源数据库中的数据进行筛选;按照数据迁移方式,对筛选的数据选择匹配目标数据源的写插件,以将筛选后的数据迁移入目标数据源。根据本发明的一个实施例,根据所述任务信息分配完成对应任务的调度节点和工作节点进一步包括:当任务信息生成时,根据任务信息确认完成该任务所需的工作节点数量;基于预定算法选择管理调度的调度节点;通知调度节点根据预定调度算法选择完成该任务的工作节点。根据本发明的另一个方面,还提供了一种数据源之间的数据传输系统,包括:任务信息配置模块,其配置为配置源数据库和目标数据库之间的任务信息;节点配置模块,其配置为根据所述任务信息分配完成对应任务的调度节点和工作节点;数据处理模块,其配置为根据所述任务信息,利用所述调度节点和所述工作节点对源数据库的数据处理后传输给所述目标数据库。根据本发明的一个实施例,所述数据处理模块进一步包括数据同步任务处理单元,其中,所述数据同步任务处理单元配置为:如所述任务信息为数据同步任务信息,则从所述数据同步任务信息中获取源数据库和目标数据库的连接信息、映射条件、过滤条件和数据同步方式;根据所述连接信息获取源数据库中的数据和模拟交换协议;根据所述模拟交换协议获取源数据库的二进制日志;解析所述二进制日志以获取源数据库中的数据中的增量数据;根据所述映射条件和所述过滤条件来对所述增量数据进行筛选;将筛选后的增量数据转化为对应目标数据库的数据库操作语句;按照所述数据同步方式,将所述数据库操作语句导入目标数据源。根据本发明的一个实施例,所述数据处理模块进一步包括数据订阅任务处理单元,其中,所述数据订阅任务处理单元配置为:如所述任务信息为数据订阅任务信息,则从所述数据订阅任务信息中获取源数据库和目标数据库的连接信息、映射条件和过滤条件;根据所述连接信息获取源数据库中的数据和模拟交换协议;根据所述模拟交换协议获取源数据库的二进制日志;解析所述二进制日志以获取源数据库中的数据中的增量数据;根据所述映射条件和所述过滤条件来对所述增量数据进行筛选;将筛选后的增量数据通过分布式发布订阅消息系统发送到目标数据源的消息队列中;解析消息队列里的增量数据来实现目标数据源的数据订阅。根据本发明的一个实施例,所述数据处理模块进一步包括数据迁移任务处理单元,其中,所述数据迁移任务处理单元配置为:如所述任务信息为数据迁移任务,则从所述数据迁移任务的配置任务信息中获取源数据库和目标数据库的连接信息、映射条件、过滤条件和数据迁移方式;根据所述连接信息编写多个匹配源数据源的读插件和多个匹配目标数据源的写插件;选取匹配源数据库的读插件来读取源数据库的数据;根据所述映射条件和所述过滤条件来对源数据库中的数据进行筛选;按照数据迁移方式,对筛选的数据选择匹配目标数据源的写插件,以将筛选后的数据迁移入目标数据源。根据本发明的一个实施例,所述节点配置模块进一步配置为:当任务信息生成时,根据任务信息确认完成该任务所需的工作节点数量;基于预定算法选择管理调度的调度节点;通知调度节点根据预定调度算法选择完成该任务的工作节点。本发明的有益效果:本发明可在任意环境下实现多个数据源(同构数据源或异构数据源)之间的数据同步、迁移、订阅等功能,解决了现有技术中固定的目标数据源或有限的数据源之间的数据传输与多样性数据传输需求之间的矛盾,给应用的上云及应用代码的简化带来了极大的改革。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要的附图做简单的介绍:图1是根据本发明的一个实施例的数据源之间的数据传输方法流程图;图2是根据本发明的一个实施例的数据源之间的数据流示意图;图3是根据本发明的一个实施例的任务调度示意图;图4根据本发明的一个实施例的数据源之间的数据传输系统结构图。具体实施方式以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。同时,在以下说明中,出于解释的目的而阐述了许多具体细节,以提供对本发明实施例的彻底理解。然而,对本领域的技术人员来说显而易见的是,本发明可以不用这里的具体细节或者所描述的特定方式来实施。另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。第一实施例根据本发明的一个方面提供了一种数据源之间的数据传输方法,如图1所示为根据本发明的一个实施例的数据源之间的数据传输方法流程图,图2为根据本发明的一个实施例的数据源之间的数据流示意图,以下参考图1和图2来对本发明进行详细说明。首先,在步骤s110中,配置源数据库和目标数据库之间的任务信息。具体的,先通过典型架构管理界面来配置任务信息,任务信息包括数据同步任务、数据订阅任务和数据迁移任务等,并在分布式架构上开启数据处理任务。其中,任务信息包括数据库(源数据库和目标数据库)之间的连接信息、映射条件、过滤条件、数据同步方式、数据迁移方式等的配置信息,不同任务信息具有不同的任务配置信息。源数据库与目标数据库的连接信息包括源数据库与目标数据库数据库名、链接方式、密码、加密方式等信息,以便能够连接上对应的数据库。过滤条件用于对符合条件的数据进行筛选。映射条件是指数据表里字段的映射,配置了映射关系才会对该字段进行相应的任务处理。数据同步信息包括行同步或者列同步,反查线程数,并行度,同步一致性等一些根据情况自定义的配置。数据迁移信息包括具体的行/列的迁移方式等。如图2所示,在配置任务信息时,可以通过数据传输服务管控台(配置同步任务与迁移,订阅任务,可以在管控台管理数据源信息,配置同步、迁移、订阅任务并对这些任务进行监控)或管控api(可以对外部以接口的形式提供服务,直接调用代码接口也可以实现同步或者迁移任务的配置)进行配置。监控中心监控已经运行的同步、迁移任务的性能,单位时间的数据量,延迟量或者报警信息。然后,在步骤s120中,根据任务信息分配完成对应任务的调度节点和工作节点。具体的,当任务信息生成时,根据任务信息确认完成该任务所需的工作节点数量(根据任务量确认该同步任务的工作节点的数量,根据任务量确认该同步任务的工作节点的数量,比如我要用一个工作节点,通过调度节点的算法查询出使用率最低的工作节点,根据任务大小自动分配到使用率最低的工作节点上)。如图3所示,通过典型非嵌入式集成架构webmanager管理界面增加node工作节点,基于分布式应用程序协调服务来解决分布式架构之间多节点的协同工作来处理配置出的同步或迁移任务,当任务生成时,通过fastpaxos算法选出管理调度的调度节点,再根据random算法随机调用node工作节点来执行同步或迁移任务,实现分布式架构上处理数据同步或者迁移任务的负载均衡。fastpaxos是改进后的paxos算法,是一种基于消息传递模型的一致性算法。最后,在步骤s130中,根据任务信息,利用调度节点和工作节点对源数据库的数据处理后传输给目标数据库。此处以数据同步任务、数据迁移任务和数据订阅任务为例来进行说明。具体的,如任务信息为数据同步任务信息,首先从数据同步任务信息中获取源数据库和目标数据库的连接信息、映射条件、过滤条件和数据同步方式,这些信息是实现数据同步必须的配置信息。接着,根据连接信息获取源数据库中的数据信息和模拟交换协议。具体的,根据连接信息查询得到源数据库中的数据信息,然后模拟该源数据库的交换协议(例如mysql交互协议是mysqlslave交互协议,mysqlslave是mysql自带的主从复制协议,开启所监控的mysql数据源主从复制设置slaveid为1,伪装自己为mysqlslave的副节点向mysqlmaster发送dump协议,mysql主节点收到dump请求,开始推送binarylog给slave(也就是推送dts))。接着,根据模拟交换协议获取源数据库的二进制日志。接着,解析二进制日志以获取源数据库的增量数据,增量数据的同步过程基于数据仓库的etl模型来实现。etl是英文extract-transform-load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。接着,根据映射条件和过滤条件来对增量数据进行筛选。接着,将筛选后的增量数据转化为对应目标数据库的数据库操作语句。转化的意思是将这些数据以适合目标数据库的操作语句对目标数据库进行操作,比如插入mysql与hbase用到的插入语句不一样,会根据目标数据源进行转换。例如获取了源数据库的一条数据a,根据a的数据结构与目标数据库的类型来转换成一条sql:insertintotablea,这个sql即数据库操作语句,执行这个sql我就会插入数据a到对应的位置。最后,按照数据同步方式,将数据库操作语句导入目标数据源。如任务信息为数据订阅任务信息,则从数据订阅任务信息中获取源数据库和目标数据库的连接信息、映射条件和过滤条件。根据所述连接信息获取源数据库中的数据信息和模拟交换协议。根据所述模拟交换协议获取源数据库的二进制日志。解析二进制日志以获取源数据库的增量数据。根据映射条件和过滤条件来对所述增量数据进行筛选。将筛选后的增量数据通过分布式发布订阅消息系统发送到目标数据源的消息队列中。解析消息队列里的增量数据来实现目标数据源的数据订阅。如任务信息为数据迁移任务,则从数据迁移任务的配置任务信息中获取源数据库和目标数据库的连接信息、映射条件、过滤条件和数据迁移方式。根据连接信息编写多个匹配源数据源的读插件和多个匹配目标数据源的写插件。选取匹配源数据库的读插件来读取源数据库的数据。根据映射条件和过滤条件来对源数据库中的数据进行筛选。按照数据迁移方式,对筛选的数据选择匹配目标数据源的写插件,以将筛选后的数据迁移入目标数据源。本发明可在任意环境下实现多个数据源(同构数据源或异构数据源)之间的数据同步、迁移、订阅等功能,解决了现有技术中固定的目标数据源或有限的数据源之间的数据传输与多样性数据传输需求之间的矛盾,给应用的上云及应用代码的简化带来了极大的改革。第二实施例根据本发明的另一个方面,还提供了一种数据源之间的数据传输系统,如图4所示,该系统包括任务信息配置模块、节点配置模块和数据处理模块。其中,任务信息配置模块配置为配置源数据库和目标数据库之间的任务信息。具体的,可以通过典型架构管理界面来配置任务信息,任务信息包括数据同步任务、数据订阅任务和数据迁移任务等,并在分布式架构上开启数据处理任务。其中,任务信息包括数据库(源数据库和目标数据库)之间的连接信息、映射条件、过滤条件、数据同步方式、数据迁移方式等的配置信息,不同任务信息具有不同的任务配置信息。源数据库与目标数据库的连接信息包括源数据库与目标数据库数据库名、链接方式、密码、加密方式等信息,以便能够连接上对应的数据库。过滤条件用于对符合条件的数据进行筛选。映射条件是指数据表里字段的映射,配置了映射关系才会对该字段进行相应的任务处理。数据同步信息包括行同步或者列同步,反查线程数,并行度,同步一致性等一些根据情况自定义的配置。数据迁移信息包括具体的行/列的迁移方式等。如图2所示,在配置任务信息时,可以通过数据传输服务管控台(配置同步任务与迁移,订阅任务,可以在管控台管理数据源信息,配置同步、迁移、订阅任务并对这些任务进行监控)或管控api(可以对外部以接口的形式提供服务,直接调用代码接口也可以实现同步或者迁移任务的配置)进行配置。监控中心监控已经运行的同步、迁移任务的性能,单位时间的数据量,延迟量或者报警信息。节点配置模块配置为根据任务信息分配完成对应任务的调度节点和工作节点。具体的,当任务信息生成时,根据任务信息确认完成该任务所需的工作节点数量(根据任务量确认该同步任务的工作节点的数量,根据任务量确认该同步任务的工作节点的数量,比如我要用一个工作节点,通过调度节点的算法查询出使用率最低的工作节点,根据任务大小自动分配到使用率最低的工作节点上)。例如,通过典型非嵌入式集成架构webmanager管理界面增加node工作节点,基于分布式应用程序协调服务来解决分布式架构之间多节点的协同工作来处理配置出的同步或迁移任务,当任务生成时,通过fastpaxos算法选出管理调度的调度节点,再根据random算法随机调用node工作节点来执行同步或迁移任务,实现分布式架构上处理数据同步或者迁移任务的负载均衡。fastpaxos是改进后的paxos算法,是一种基于消息传递模型的一致性算法。数据处理模块配置为根据任务信息,利用调度节点和工作节点对源数据库的数据处理后传输给目标数据库。具体的,可以根据数据同步任务、数据订阅任务、数据迁移任务等任务来进行对应的处理。在本发明的一个实施例中,该数据处理模块进一步包括数据同步任务处理单元,其中,该数据同步任务处理单元配置为:如任务信息为数据同步任务信息,则从数据同步任务信息中获取源数据库和目标数据库的连接信息、映射条件、过滤条件和数据同步方式;根据连接信息获取源数据库中的数据和模拟交换协议;根据模拟交换协议获取源数据库的二进制日志;解析二进制日志以获取源数据库中的数据中的增量数据;根据映射条件和过滤条件来对增量数据进行筛选;将筛选后的增量数据转化为对应目标数据库的数据库操作语句;按照数据同步方式,将数据库操作语句导入目标数据源。在本发明的一个实施例中,数据处理模块进一步包括数据订阅任务处理单元,其中,数据订阅任务处理单元配置为:如任务信息为数据订阅任务信息,则从数据订阅任务信息中获取源数据库和目标数据库的连接信息、映射条件和过滤条件;根据连接信息获取源数据库中的数据和模拟交换协议;根据模拟交换协议获取源数据库的二进制日志;解析二进制日志以获取源数据库中的数据中的增量数据;根据映射条件和所述过滤条件来对所述增量数据进行筛选;将筛选后的增量数据通过分布式发布订阅消息系统发送到目标数据源的消息队列中;解析消息队列里的增量数据来实现目标数据源的数据订阅。在本发明的一个实施例中,数据处理模块进一步包括数据迁移任务处理单元,其中,数据迁移任务处理单元配置为:如任务信息为数据迁移任务,则从数据迁移任务的配置任务信息中获取源数据库和目标数据库的连接信息、映射条件、过滤条件和数据迁移方式;根据连接信息编写多个匹配源数据源的读插件和多个匹配目标数据源的写插件;选取匹配源数据库的读插件来读取源数据库的数据;根据映射条件和过滤条件来对源数据库中的数据进行筛选;按照数据迁移方式,对筛选的数据选择匹配目标数据源的写插件,以将筛选后的数据迁移入目标数据源。在本发明的一个实施例中,该节点配置模块进一步配置为:当任务信息生成时,根据任务信息确认完成该任务所需的工作节点数量;基于预定算法选择管理调度的调度节点;通过调度节点根据预定调度算法选择完成该任务的工作节点。应该理解的是,本发明所公开的实施例不限于这里所公开的处理步骤,而应当延伸到相关领域的普通技术人员所理解的这些特征的等同替代。还应当理解的是,在此使用的术语仅用于描述特定实施例的目的,而并不意味着限制。说明书中提到的“一个实施例”或“实施例”意指结合实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,说明书通篇各个地方出现的短语“一个实施例”或“实施例”并不一定均指同一个实施例。虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属
技术领域
:内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1