一种数据同步的装置及方法.pdf

上传人:111****11 文档编号:1750690 上传时间:2018-07-09 格式:PDF 页数:10 大小:621.30KB
返回 下载 相关 举报
摘要
申请专利号:

CN201510117095.X

申请日:

2015.03.17

公开号:

CN104679888A

公开日:

2015.06.03

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):G06F 17/30申请公布日:20150603|||实质审查的生效IPC(主分类):G06F 17/30申请日:20150317|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

浪潮集团有限公司

发明人:

刘传浩; 张幸

地址:

250100山东省济南市高新区浪潮路1036号

优先权:

专利代理机构:

济南信达专利事务所有限公司37100

代理人:

李世喆

PDF下载: PDF下载
内容摘要

本发明提供了一种数据同步的装置及方法,该装置包括:数据源与sqoop相连,所述sqoop与消息队列MQ相连,所述MQ与至少一个目标数据库相连;所述sqoop,用于获取所述数据源中的带有预设标签的待同步的数据,并对所述待同步的数据进行同步处理,将处理后的数据发送给所述MQ;所述MQ,用于接受所述目标数据库对用于标识数据的标签的订阅,根据所述预设标签,将所述sqoop发来的数据,发送给所述订阅所述预设标签的目标数据库。通过本发明提供的一种数据同步的装置及方法,能够提高数据同步的效率。

权利要求书

权利要求书
1.  一种数据同步的装置,其特征在于,包括:
数据源与sqoop相连,所述sqoop与消息队列MQ相连,所述MQ与至 少一个目标数据库相连;
所述sqoop,用于获取所述数据源中的带有预设标签的待同步的数据, 并对所述待同步的数据进行同步处理,将处理后的数据发送给所述MQ;
所述MQ,用于接受所述目标数据库对用于标识数据的标签的订阅,根 据所述预设标签,将所述sqoop发来的数据,发送给所述订阅所述预设标签 的目标数据库。

2.  根据权利要求1所述的装置,其特征在于,包括:
所述MQ,还用于接收所述目标数据库发来的接收数据失败的失败消息, 并当在发送所述sqoop发来的数据后的第一预设时间内接收到所述失败消息 时,向所述失败消息对应的目标数据库发送所述失败消息对应的数据。

3.  根据权利要求1所述的装置,其特征在于,包括:
所述sqoop,还用于获取所述数据源的数据库同步日志,将所述数据库 同步日志发送给所述MQ;
所述MQ,用于将所述数据库同步日志发送给所述目标数据库,并将所 述数据库同步日志保存第二预设时间。

4.  根据权利要求1所述的装置,其特征在于,
所述MQ,用于接收所述至少一个目标数据库发来的订阅的标签的信息, 根据所述订阅的标签的信息,建立标签与目标数据库的对应关系,根据所述 预设标签,将所述sqoop发来的数据,发送给所述预设标签对应的目标数据 库。

5.  根据权利要求1-4任一所述的装置,其特征在于,
所述MQ,用于将所述sqoop发来的数据进行数据分割得到分割后的子 数据,将得到的每个子数据进行数据封装,将封装后的子数据写入到MQ的 队列中,读取所述队列,将读取的队列中的数据进行包封装得到数据包,将 所述数据包发送给所述目标数据库。

6.  一种数据同步的方法,其特征在于,包括:
S1:sqoop获取所述数据源中的带有预设标签的待同步的数据,并对所 述待同步的数据进行同步处理,将处理后的数据发送给消息队列MQ;
S2:所述MQ接受所述目标数据库对用于标识数据的标签的订阅,根据 所述预设标签,将所述sqoop发来的数据,发送给所述订阅所述预设标签的 目标数据库。

7.  根据权利要求6所述的方法,其特征在于,还包括:
所述MQ接收所述目标数据库发来的接收数据失败的失败消息,并当在 发送所述sqoop发来的数据后的第一预设时间内接收到所述失败消息时,向 所述失败消息对应的目标数据库发送所述失败消息对应的数据。

8.  根据权利要求6所述的方法,其特征在于,还包括:
所述sqoop获取所述数据源的数据库同步日志,将所述数据库同步日志 发送给所述MQ;
所述MQ将所述数据库同步日志发送给所述目标数据库,并将所述数据 库同步日志保存第二预设时间。

9.  根据权利要求6所述的方法,其特征在于,在所述步骤S1之前还包 括:
所述MQ接收所述至少一个目标数据库发来的订阅的标签的信息;
所述MQ根据所述订阅的标签的信息,建立所述标签与目标数据库的对 应关系;
所述S2,包括:
所述MQ根据所述预设标签,将所述sqoop发来的数据,发送给所述预 设标签对应的目标数据库。

10.  根据权利要求6-9任一所述的方法,其特征在于,所述S2包括:
所述MQ将所述sqoop发来的数据进行数据分割得到分割后的子数据, 将得到的每个子数据进行数据封装,将封装后的子数据写入到MQ的队列中, 读取所述队列,将读取的队列中的数据进行包封装得到数据包,将所述数据 包发送给所述目标数据库。

说明书

说明书一种数据同步的装置及方法
技术领域
本发明涉及数据处理技术领域,特别涉及一种数据同步的装置及方法。
背景技术
Sqoop是一个数据相互转移的工具,可以将一个关系型数据库中的数据 导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
针对大数据平台中,利用sqoop针对关系型数据库与非关系型数据库间 进行数据同步过程中,当源数据库中的数据需要分别同步到多个目标数据库 中时,需要将sqoop分别与不同的目标数据库单独相连,实现数据同步。举 例来说,当源数据库中的数据需要分别同步到两个目标数据库中时,将源数 据库与sqoop相连,再将sqoop与第一个目标数据库相连,然后,将源数据 库中的数据通过sqoop同步到第一个目标数据库中,同步完成后,将sqoop 与第一个目标数据库断开,再将sqoop与第二个目标数据库相连,将源数据 库中的数据通过sqoop同步到第二个目标数据库中。
通过上述描述可见,现有技术中,将数据源中的数据通过sqoop同步到 多个目标数据库中时,数据同步的效率较低。
发明内容
有鉴于此,本发明提供了一种数据同步的装置及方法,能够提高数据同 步的效率。
一方面,本发明提供了一种数据同步的装置,包括:
数据源与sqoop相连,所述sqoop与消息队列MQ相连,所述MQ与至 少一个目标数据库相连;
所述sqoop,用于获取所述数据源中的带有预设标签的待同步的数据, 并对所述待同步的数据进行同步处理,将处理后的数据发送给所述MQ;
所述MQ,用于接受所述目标数据库对用于标识数据的标签的订阅,根 据所述预设标签,将所述sqoop发来的数据,发送给所述订阅所述预设标签 的目标数据库。
进一步地,所述MQ,还用于接收所述目标数据库发来的接收数据失败 的失败消息,并当在发送所述sqoop发来的数据后的第一预设时间内接收到 所述失败消息时,向所述失败消息对应的目标数据库发送所述失败消息对应 的数据。
进一步地,所述sqoop,还用于获取所述数据源的数据库同步日志,将 所述数据库同步日志发送给所述MQ;
所述MQ,用于将所述数据库同步日志发送给所述目标数据库,并将所 述数据库同步日志保存第二预设时间。
进一步地,所述MQ,用于接收所述至少一个目标数据库发来的订阅的 标签的信息,根据所述订阅的标签的信息,建立标签与目标数据库的对应关 系,根据所述预设标签,将所述sqoop发来的数据,发送给所述预设标签对 应的目标数据库。
进一步地,所述MQ,用于将所述sqoop发来的数据进行数据分割得到 分割后的子数据,将得到的每个子数据进行数据封装,将封装后的子数据写 入到MQ的队列中,读取所述队列,将读取的队列中的数据进行包封装得到 数据包,将所述数据包发送给所述目标数据库。
另一方面,本发明提供了一种数据同步的方法,包括:
S1:sqoop获取所述数据源中的带有预设标签的待同步的数据,并对所 述待同步的数据进行同步处理,将处理后的数据发送给消息队列MQ;
S2:所述MQ接受所述目标数据库对用于标识数据的标签的订阅,根据 所述预设标签,将所述sqoop发来的数据,发送给所述订阅所述预设标签的 目标数据库。
进一步地,还包括:
所述MQ接收所述目标数据库发来的接收数据失败的失败消息,并当在 发送所述sqoop发来的数据后的第一预设时间内接收到所述失败消息时,向 所述失败消息对应的目标数据库发送所述失败消息对应的数据。
进一步地,还包括:
所述sqoop获取所述数据源的数据库同步日志,将所述数据库同步日志 发送给所述MQ;
所述MQ将所述数据库同步日志发送给所述目标数据库,并将所述数据 库同步日志保存第二预设时间。
进一步地,在所述步骤S1之前还包括:
所述MQ接收所述至少一个目标数据库发来的订阅的标签的信息;
所述MQ根据所述订阅的标签的信息,建立所述标签与目标数据库的对 应关系;
所述S2,包括:
所述MQ根据所述预设标签,将所述sqoop发来的数据,发送给所述预 设标签对应的目标数据库。
进一步地,所述S2包括:
所述MQ将所述sqoop发来的数据进行数据分割得到分割后的子数据, 将得到的每个子数据进行数据封装,将封装后的子数据写入到MQ的队列中, 读取所述队列,将读取的队列中的数据进行包封装得到数据包,将所述数据 包发送给所述目标数据库。
本发明提供了一种数据同步的装置及方法,sqoop与MQ相连,MQ可 以与多个目标数据库相连,目标数据库可以在MQ上订阅标签,当MQ接收 到带有该标签的数据时就会发送给所有订阅该标签的目标数据库,这样就实 现了将数据源中的数据同时同步到多个目标数据库中,提高了数据同步的效 率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面 描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不 付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种数据同步的装置的示意图;
图2是本发明一实施例提供的一种数据同步的方法的流程图;
图3是本发明一实施例提供的另一种数据同步的方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发 明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述, 显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所 获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种数据同步的装置,该装置包括:
数据源与sqoop101相连,所述sqoop101与MQ(Message Queue,消息 队列)102相连,所述MQ102与至少一个目标数据库相连;
所述sqoop101,用于获取所述数据源中的带有预设标签的待同步的数 据,并对所述待同步的数据进行同步处理,将处理后的数据发送给所述 MQ102;
所述MQ102,用于接受所述目标数据库对用于标识数据的标签的订阅, 根据所述预设标签,将所述sqoop101发来的数据,发送给所述订阅所述预设 标签的目标数据库。
本发明实施例提供了一种数据同步的装置,sqoop与MQ相连,MQ可 以与多个目标数据库相连,目标数据库可以在MQ上订阅标签,当MQ接收 到带有该标签的数据时就会发送给所有订阅该标签的目标数据库,这样就实 现了将数据源中的数据同时同步到多个目标数据库中,提高了数据同步的效 率。
另外,通过本发明实施例提供的一种数据同步的装置,通过目标数据库 向MQ订阅标签,将数据同步的数据源与目标数据库进行有效解耦,动态扩 展数据同步需求。
对于因网络等原因造成的数据同步中断,进行数据重发处理,可以通过 MQ进行数据重发,提高了容错处理,当MQ连接目标数据库时,对于消费 数据失败时,MQ可以针对未被消费的数据进行自动重发,直到消费成功, 可以有效保障数据最终实现成功同步,而且整个重试过程均由MQ自动处理, 无需人工控制,可以进一步提高数据同步的自动化效率和可靠性。
该装置包括:所述MQ,还用于接收所述目标数据库发来的接收数据失 败的失败消息,并当在发送所述sqoop发来的数据后的第一预设时间内接收 到所述失败消息时,向所述失败消息对应的目标数据库发送所述失败消息对 应的数据。另外,当不在发送所述sqoop发来的数据后的第一预设时间内接 收到所述失败消息时,忽略该失败消息。
举例来说,MQ将数据A发送给目标数据库后,目标数据库接收失败, 向MQ发送了失败消息,MQ在发送数据A后的第一预设时间内接收到了该 失败消息,向目标数据库发送数据A。
在一种可能的实现方式中,该装置包括:
所述sqoop,还用于获取所述数据源的数据库同步日志,将所述数据库 同步日志发送给所述MQ;
所述MQ,用于将所述数据库同步日志发送给所述目标数据库,并将所 述数据库同步日志保存第二预设时间。
通过sqoop进行数据同步时,对于sqoop传送的数据库同步日志通过MQ 进行有效的持久化保存,方便数据追溯。在分布式系统中,消息从发送到接 收,环节非常多,没有任何一个环节是安全的,而任何环节出了问题,都会 导致丢消息。通过MQ实现消息持久化,保证在不是绝对安全的多环节里, 完成消息安全的传输。sqoop将数据传送给MQ,由MQ实现一段时间内的 持久化,可以是默认保留48小时,即第二预设时间为48小时,有利于实现 同步数据的回溯,提高数据同步的容错能力。
对MQ进行标签的订阅可以通过以下实现方式实现,所述MQ,用于接 收所述至少一个目标数据库发来的订阅的标签的信息,根据所述订阅的标签 的信息,建立标签与目标数据库的对应关系,根据所述预设标签,将所述 sqoop发来的数据,发送给所述预设标签对应的目标数据库。
在一种可能的实现方式中,所述MQ,用于将所述sqoop发来的数据进 行数据分割得到分割后的子数据,将得到的每个子数据进行数据封装,将封 装后的子数据写入到MQ的队列中,读取所述队列,将读取的队列中的数据 进行包封装得到数据包,将所述数据包发送给所述目标数据库。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明 方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此 处不再赘述。
参见图2,本发明实施例提供了一种数据同步的方法,该方法包括:
S1:sqoop获取所述数据源中的带有预设标签的待同步的数据,并对所 述待同步的数据进行同步处理,将处理后的数据发送给MQ;
S2:所述MQ接受所述目标数据库对用于标识数据的标签的订阅,根据 所述预设标签,将所述sqoop发来的数据,发送给所述订阅所述预设标签的 目标数据库。
本发明实施例提供了一种数据同步的方法,sqoop与MQ相连,MQ可 以与多个目标数据库相连,目标数据库可以在MQ上订阅标签,当MQ接收 到带有该标签的数据时就会发送给所有订阅该标签的目标数据库,这样就实 现了将数据源中的数据同时同步到多个目标数据库中,提高了数据同步的效 率。
在一种可能的实现方式中,该方法还包括:
所述MQ接收所述目标数据库发来的接收数据失败的失败消息,并当在 发送所述sqoop发来的数据后的第一预设时间内接收到所述失败消息时,向 所述失败消息对应的目标数据库发送所述失败消息对应的数据。
通过该实现方式,当目标数据库接收数据失败时,MQ可以进行数据重 发,提高了容错处理,可以有效保障数据最终实现成功同步,而且整个重试 过程均由MQ自动处理,无需人工控制,可以进一步提高数据同步的自动化 效率和可靠性。
Sqoop在传输数据库同步日志时可能会丢失,为了避免数据库同步日志 可以通过MQ转发给目标数据库,在一种可能的实现方式中,该方法还包括:
所述sqoop获取所述数据源的数据库同步日志,将所述数据库同步日志 发送给所述MQ;
所述MQ将所述数据库同步日志发送给所述目标数据库,并将所述数据 库同步日志保存第二预设时间。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实 施例对本发明作进一步地详细描述。
如图3所示,本发明实施例提供了一种数据同步的方法,该方法可以包 括以下步骤:
步骤301:所述MQ接收所述至少一个目标数据库发来的订阅的标签的 信息。
每个目标数据库可以向MQ订阅标签,只要有该标签对应的数据就发送 给对应的目标数据库。举例来说,MQ、数据源或第三方可以给目标数据库 提供可以订阅的标签。
步骤302:所述MQ根据所述订阅的标签的信息,建立所述标签与目标 数据库的对应关系。
步骤303:sqoop获取所述数据源中的带有预设标签的待同步的数据,并 对所述待同步的数据进行同步处理,将处理后的数据发送给MQ。
待同步的数据的预设标签为MQ中可订阅的标签中的一个,该标签可以 通过数据的标志位来实现。Sqoop可以实现关系型数据库与非关系型数据库 间进行数据同步,举例来说,上述的目标数据库、数据源可以分别是一类是 关系型数据库、一类是非关系型数据库。
步骤304:所述MQ根据所述预设标签,将所述sqoop发来的数据,发 送给所述预设标签对应的目标数据库。
举例来说,该步骤可以通过以下方式实现:
所述MQ将所述sqoop发来的数据进行数据分割得到分割后的子数据, 将得到的每个子数据进行数据封装,将封装后的子数据写入到MQ的队列中, 读取所述队列,将读取的队列中的数据进行包封装得到数据包,将所述数据 包发送给所述目标数据库。
通过本发明实施例提供的方法,将数据同步的数据源与目标数据库进行 有效解耦,动态扩展数据同步需求。例如:对于需要向Hbase,Storm及第 三方业务应用同步同一类数据时,可将Hbase,Storm及第三方业务应用与 MQ进行对接,MQ的另一端连接数据源,目标数据库向MQ进行标签的订 阅,实现各自的数据同步需求。
本发明实施例提供了一种数据同步的装置及方法,具有如下有益效果:
1、本发明实施例提供了一种数据同步的装置及方法,sqoop与MQ相连, MQ可以与多个目标数据库相连,目标数据库可以在MQ上订阅标签,当 MQ接收到带有该标签的数据时就会发送给所有订阅该标签的目标数据库, 这样就实现了将数据源中的数据同时同步到多个目标数据库中,提高了数据 同步的效率。
2、本发明实施例提供了一种数据同步的装置及方法,通过目标数据库向 MQ订阅标签,将数据同步的数据源与目标数据库进行有效解耦,动态扩展 数据同步需求。
3、本发明实施例提供了一种数据同步的装置及方法,可以通过MQ进 行数据重发,提高了容错处理,通过MQ实现数据的高吞吐。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将 一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这 些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、 “包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系 列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明 确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有 的要素。在没有更多限制的情况下,由语句“包括一个······”限定 的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另 外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤 可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取 的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述 的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介 质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本 发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原 则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

一种数据同步的装置及方法.pdf_第1页
第1页 / 共10页
一种数据同步的装置及方法.pdf_第2页
第2页 / 共10页
一种数据同步的装置及方法.pdf_第3页
第3页 / 共10页
点击查看更多>>
资源描述

《一种数据同步的装置及方法.pdf》由会员分享,可在线阅读,更多相关《一种数据同步的装置及方法.pdf(10页珍藏版)》请在专利查询网上搜索。

本发明提供了一种数据同步的装置及方法,该装置包括:数据源与sqoop相连,所述sqoop与消息队列MQ相连,所述MQ与至少一个目标数据库相连;所述sqoop,用于获取所述数据源中的带有预设标签的待同步的数据,并对所述待同步的数据进行同步处理,将处理后的数据发送给所述MQ;所述MQ,用于接受所述目标数据库对用于标识数据的标签的订阅,根据所述预设标签,将所述sqoop发来的数据,发送给所述订阅所述预设。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1