异构数据源实时数据传输方法及系统、存储介质及终端
文献发布时间:2023-06-19 11:29:13
技术领域
本发明涉及数据传输的技术领域,特别是涉及一种异构数据源实时数据传输方法及系统、存储介质及终端。
背景技术
随着互联网技术的飞速发展,微服务架构的普及,一项业务由多个服务应用来支撑。其中,每个服务都有自身独立的数据源。伴随着数据规模的不断扩大,传统的关系型数据库不在能够满足所有的存储需求,各种分布式数据库解决方案不断涌现。
异构数据库系统是相关的多个数据库系统的集合,可以实现数据的共享和透明访问。几个数据库系统在加入异构数据库系统之前本身就已经存在,拥有自己的数据库管理系统。异构数据库的各个组成部分具有自身的自治性,实现数据共享的同时,每个数据库系统仍有自己的应用特性、完整性控制和安全性控制。在实际使用中,数据库管理员(Database Administrator,DBA)在日常的数据维护过程中存在不同的关系型数据库之间相关数据迁移的场景。为了满足大数据量的实时搜索,将MySQL等关系型数据库中的数据实时同步到Elasticsearch等搜索引擎中。同时,在异地双活应用中,需要解决多数据中心的数据源之间的数据同步问题。因此,异构数据源之间的实时数据传输成为当前研究的热点课题。
现有技术中,为了实现异构数据源之间的数据传输,一般是通过SQL或中间文件的导入导出来完成。具体地,通过数据导出工具将一个数据源的数据导出为SQL或中间文件,然后通过相对应导入数据源提供的导入工具将数据导入。
然而,上述方法在使用上存在以下缺陷:
(1)无法满足业务的零停机迁移需求;
(2)导入导出任务都是单机执行,在面对大数据量同步任务时,性能表现很差,耗时很长;
(3)无法支持断点续传,如果同步过程中出现网络抖动,同步任务将无法继续进行。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种异构数据源实时数据传输方法及系统、存储介质及终端,通过采用全量和增量数据同步结合的方式实现了不停机的数据迁移,且能够避免数据丢失与重复传输,极大地提高了数据传输效率。
为实现上述目的及其他相关目的,本发明提供一种异构数据源实时数据传输方法,包括以下步骤:配置源数据库和目标数据库之间的数据同步任务;抓取全量数据,并将所述全量数据写入消息队列;订阅增量数据日志,并将增量数据写入所述消息队列;将所述消息队列中的数据写入到所述目标数据库中。
于本发明一实施例中,所述同步任务的配置信息包括源数据库地址、同步数据、任务节点、消息队列和目标数据库地址。
于本发明一实施例中,抓取全量数据,并将所述全量数据写入消息队列包括以下步骤:
获取所述源数据库的数据结构,并记录所述源数据库的快照;
分配全量数据同步任务,并选择任务节点进行全量数据同步;
将所述全量数据进行实时压缩,并写入所述消息队列。
于本发明一实施例中,将所述全量数据转换为所述目标数据库对应的数据格式后再写入所述消息队列。
于本发明一实施例中,订阅增量数据日志,并将增量数据写入所述消息队列包括以下步骤:
订阅源数据库增量数据日志;
选择任务节点进行增量数据同步;
将所述增量数据进行实时压缩,并写入所述消息队列。
于本发明一实施例中,将所述增量数据转换为所述目标数据库对应的数据格式后再写入所述消息队列。
于本发明一实施例中,所述全量数据写入和所述增量数据写入同步进行。
对应地,本发明提供一种异构数据源实时数据传输系统,包括配置模块、全量数据同步模块、增量数据同步模块和写入模块;
所述配置模块用于配置源数据库和目标数据库之间的数据同步任务;
所述全量数据同步模块用于抓取全量数据,并将所述全量数据写入消息队列;
所述增量数据同步模块用于订阅增量数据日志,并将增量数据写入所述消息队列;
所述写入模块用于将所述消息队列中的数据写入到所述目标数据库中。
本发明提供一种存储介质,其上存储有计算机程序,该所述计算机程序被处理器执行时实现上述的异构数据源实时数据传输方法。
最后,本发明提供一种终端,包括:处理器及存储器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行上述的异构数据源实时数据传输方法。
如上所述,本发明的异构数据源实时数据传输方法及系统、存储介质及终端,具有以下有益效果:
(1)通过采用全量和增量数据同步结合的方式,分别同步全量数据和增量数据,从而能够在业务不停机的前提下进行数据迁移;
(2)通过同步状态记录、消息队列暂存等方式支持记录级的断点续传,避免了数据丢失与重复传输;
(3)支持导出数据压缩、同步任务自动化编排,极大地提高了数据传输效率。
附图说明
图1显示为本发明的异构数据源实时数据传输方法于一实施例中的流程图;
图2显示为本发明的异构数据源实时数据传输方法于一实施例中的框架示意图;
图3显示为本发明的异构数据源实时数据传输系统于一实施例中的结构示意图;
图4显示为本发明的终端于一实施例中的结构示意图。
元件标号说明
31 配置模块
32 全量数据同步模块
33 增量数据同步模块
34 写入模块
41 处理器
42 存储器
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明的异构数据源实时数据传输方法及系统、存储介质及终端将数据划分为全量数据和增量数据,通过采用全量数据和增量数据同步相结合的方式实现了不停机的数据迁移,有效避免了数据的丢失与重复传输,极大地提高了数据传输效率,满足不同场景下的异构数据源的数据实时传输。其中,所述全量数据就是表中所有的数据;所述增量数据是上次导出之后的新数据。
如图1和图2所示,于一实施例中,本发明的异构数据源实时数据传输方法包括以下步骤:
步骤S1、配置源数据库和目标数据库之间的数据同步任务。
具体地,在进行数据实时传输之前,首先进行数据同步任务的配置。于本发明一实施例中,所述同步任务的配置信息包括源数据库地址、同步数据、任务节点、消息队列和目标数据库地址。其中,所述源数据库地址和所述目标数据库地址可采所述源数据库的链接和所述目标数据库的链接。
步骤S2、抓取全量数据,并将所述全量数据写入消息队列。
具体地,在数据同步任务配置完成之后,开始数据同步任务,即同步开始抓取所述全量数据和订阅增量数据日志。
于本发明一实施例中,抓取全量数据,并将所述全量数据写入消息队列包括以下步骤:
21)获取所述源数据库的数据结构,并记录所述源数据库的快照。
22)分配全量数据同步任务,并选择任务节点进行全量数据同步。
23)将所述全量数据进行实时压缩,并写入所述消息队列。
优选地,将所述全量数据写入所述消息队列时,首先将所述全量数据转换为所述目标数据库对应的数据格式,然后再写入所述消息队列,从而保证数据的兼容,实现快速准确地数据同步。
步骤S3、订阅增量数据日志,并将增量数据写入所述消息队列。
于本发明一实施例中,订阅增量数据日志,并将增量数据写入所述消息队列包括以下步骤:
31)订阅源数据库增量数据日志。
具体地,订阅源数据库增量数据日志时,根据源数据类型选取特定的增量日志抓取Reader。例如,针对MySQL数据库,Reader模拟MySQL slave的交互协议,伪装自己为MySQLslave,向MySQL master发送dump协议,然后获取到对应的增量修改二进制数据日志。
32)选择任务节点进行增量数据同步。
具体地,对所述源数据库增量数据日志进行解析,并通过所选择的任务节点开始进行增量数据同步。
33)将所述增量数据进行实时压缩,并写入所述消息队列。
优选地,将所述增量数据写入所述消息队列时,首先将所述增量数据转换为所述目标数据库对应的数据格式,然后再写入所述消息队列,从而保证数据的兼容,实现快速准确地数据同步。
步骤S4、将所述消息队列中的数据写入到所述目标数据库中。
具体地,消费所述消息队列中的消息任务,将所述消息队列中的数据写入到目标数据源中。
如图3所示,于一实施例中,本发明的异构数据源实时数据传输系统包括配置模块31、全量数据同步模块32、增量数据同步模块33和写入模块34。
配置模块31用于配置源数据库和目标数据库之间的数据同步任务。
具体地,在进行数据实时传输之前,首先进行数据同步任务的配置。于本发明一实施例中,所述同步任务的配置信息包括源数据库地址、同步数据、任务节点、消息队列和目标数据库地址。其中,所述源数据库地址和所述目标数据库地址可采所述源数据库的链接和所述目标数据库的链接。
全量数据同步模块32与所述配置模块31相连,用于抓取全量数据,并将所述全量数据写入消息队列。
具体地,在数据同步任务配置完成之后,开始数据同步任务,即同步开始抓取所述全量数据和订阅增量数据日志。
于本发明一实施例中,抓取全量数据,并将所述全量数据写入消息队列包括以下步骤:
21)获取所述源数据库的数据结构,并记录所述源数据库的快照。
22)分配全量数据同步任务,并选择任务节点进行全量数据同步。
23)将所述全量数据进行实时压缩,并写入所述消息队列。
优选地,将所述全量数据写入所述消息队列时,首先将所述全量数据转换为所述目标数据库对应的数据格式,然后再写入所述消息队列,从而保证数据的兼容,实现快速准确地数据同步。
增量数据同步模块33与所述配置模块31相连,用于订阅增量数据日志,并将增量数据写入所述消息队列。
于本发明一实施例中,订阅增量数据日志,并将增量数据写入所述消息队列包括以下步骤:
31)订阅源数据库增量数据日志。
具体地,订阅源数据库增量数据日志时,根据源数据类型选取特定的增量日志抓取Reader。例如,针对MySQL数据库,Reader模拟MySQL slave的交互协议,伪装自己为MySQLslave,向MySQL master发送dump协议,然后获取到对应的增量修改二进制数据日志。
32)选择任务节点进行增量数据同步。
具体地,对所述源数据库增量数据日志进行解析,并通过所选择的任务节点开始进行增量数据同步。
33)将所述增量数据进行实时压缩,并写入所述消息队列。
优选地,将所述增量数据写入所述消息队列时,首先将所述增量数据转换为所述目标数据库对应的数据格式,然后再写入所述消息队列,从而保证数据的兼容,实现快速准确地数据同步。
写入模块34与所述全量数据同步模块32和所述增量数据同步模块33相连,用于将所述消息队列中的数据写入到所述目标数据库中。
具体地,消费所述消息队列中的消息任务,将所述消息队列中的数据写入到目标数据源中。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,x模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上x模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(Digital Singnal Processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(System On a Chip,简称SOC)的形式实现。
本发明的存储介质上存储有计算机程序,该所述计算机程序被处理器执行时实现上述的异构数据源实时数据传输方法。优选地,所述存储介质包括:ROM、RAM、磁碟、U盘、存储卡或者光盘等各种可以存储程序代码的介质。
如图4所示,于一实施例中,本发明的终端包括:处理器41及存储器42。
所述存储器42用于存储计算机程序。
所述存储器42包括:ROM、RAM、磁碟、U盘、存储卡或者光盘等各种可以存储程序代码的介质。
所述处理器41与所述存储器42相连,用于执行所述存储器42存储的计算机程序,以使所述终端执行上述的异构数据源实时数据传输方法。
优选地,所述处理器41可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
综上所述,本发明的异构数据源实时数据传输方法及系统、存储介质及终端通过采用全量和增量数据同步结合的方式,分别同步全量数据和增量数据,从而能够在业务不停机的前提下进行数据迁移;通过同步状态记录、消息队列暂存等方式支持记录级的断点续传,避免了数据丢失与重复传输;支持导出数据压缩、同步任务自动化编排,极大地提高了数据传输效率。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
- 异构数据源实时数据传输方法及系统、存储介质及终端
- 赛事实时数据展示方法、终端设备、视频系统及存储介质