CN115329007A - 数据库之间的数据同步方法、系统、电子设备及存储介质 - Google Patents

数据库之间的数据同步方法、系统、电子设备及存储介质 Download PDF

Info

Publication number
CN115329007A
CN115329007A CN202211065991.2A CN202211065991A CN115329007A CN 115329007 A CN115329007 A CN 115329007A CN 202211065991 A CN202211065991 A CN 202211065991A CN 115329007 A CN115329007 A CN 115329007A
Authority
CN
China
Prior art keywords
database
target
data
synchronous
synchronization
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211065991.2A
Other languages
English (en)
Inventor
王晓虎
邓春龙
彭杰
谭谈
舒润
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Geely Holding Group Co Ltd
Guangyu Mingdao Digital Technology Co Ltd
Original Assignee
Zhejiang Geely Holding Group Co Ltd
Guangyu Mingdao Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Geely Holding Group Co Ltd, Guangyu Mingdao Digital Technology Co Ltd filed Critical Zhejiang Geely Holding Group Co Ltd
Priority to CN202211065991.2A priority Critical patent/CN115329007A/zh
Publication of CN115329007A publication Critical patent/CN115329007A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及数据同步技术领域,公开了一种数据库之间的数据同步方法、系统、电子设备及存储介质,该方法通过获取原始数据库的同步订阅信息,根据同步订阅信息中的订阅目标标识确定各原始数据库的目标数据库,根据同步订阅信息中的同步数据粒度对目标数据库对应的二进制日志进行监听,进而获取目标数据库的增量数据,通过增量数据对原始数据库进行数据同步,基于系统数据库对应的同步订阅信息确定原始数据库及其对应的目标数据库,再根据二进制日志采集目标数据库的增量数据,不仅避免重新开发用于数据同步的数据库语句,并且节约了接口与每个原始数据库之间传输链路,从而降低了数据库之间的数据同步的成本。

Description

数据库之间的数据同步方法、系统、电子设备及存储介质
技术领域
本发明涉及数据同步技术领域,尤其涉及一种数据库之间的数据同步方法、系统、电子设备及存储介质。
背景技术
目前,企业将业务系统报表存放在不同的业务系统对应的数据库中,为了减少业务系统及其数据库之间的耦合性以及访问压力,每个数据库中都存放了通用的基础明细数据,以用于数据维度筛选和业务处理。
响应于每次基础明细数据的更新,每个数据库都需要对各自的基础明细数据进行相应同步,但是由于企业的不断发展,企业网络的拓扑复杂、数据库体量巨大,以接口的形式逐个对数据库提供数据同步服务,不仅需要额外的开发成本,还会加长数据传输链路,提高了数据库之间的数据同步成本。
发明内容
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
鉴于以上所述现有技术的缺点,本发明公开了一种数据库之间的数据同步方法、系统、电子设备及存储介质,以降低数据库之间的数据同步成本。
本发明公开了一种数据库之间的数据同步方法,包括:获取多个系统数据库,并获取至少一部分所述系统数据库对应的同步订阅信息,其中,所述同步订阅信息包括订阅目标标识、同步数据粒度和数据同步方式;将任一同步订阅信息确定为目标信息,将所述目标信息对应的系统数据库确定为原始数据库,根据所述目标信息的订阅目标标识对各所述系统数据库进行匹配,得到所述原始数据库对应的目标数据库;将所述目标信息的同步数据粒度确定为目标粒度,根据所述目标粒度对所述标数据库对应的二进制日志进行监听,若所述二进制日志中产生所述目标粒度对应的增量日志,则根据所述增量日志对所述目标数据库进行数据提取,得到增量数据;根据所述目标信息的数据同步方式将所述增量数据推送至所述原始数据库,使得所述原始数据库根据所述增量数据进行数据同步。
可选地,根据所述目标粒度对所述目标数据库对应的二进制日志进行监听,包括:所述系统数据库包括至少一个数据库表,所述同步数据粒度包括表数据或库数据;若所述目标粒度包括库数据,则建立所述目标数据库对应的第一监听接口,利用所述第一监听接口对所述目标数据库对应的二进制日志进行监听,并从所述目标数据库对应的二进制日志中确定所述目标数据库对应的增量日志;若所述目标粒度包括表数据,则获取所述目标粒度对应的范围标识,根据所述范围标识从所述目标数据库的数据库表中确定所述目标粒度对应的目标表,根据所述目标表建立所述目标数据库对应的第二监听接口,利用所述第二监听接口对所述目标数据库对应的二进制日志进行监听,并从所述目标数据库对应的二进制日志中确定所述目标表对应的增量日志。
可选地,根据所述目标信息的数据同步方式将所述增量数据推送至所述原始数据库,包括:若所述数据同步方式包括接口请求同步,则根据预设接口信息向所述原始数据库添加同步推送接口,其中,所述预设接口信息包括接口地址和请求方式;根据所述请求方式对所述增量数据进行编码,得到同步请求;通过所述接口地址将所述同步请求发送至所述原始数据库的同步推送接口。
可选地,根据所述目标信息的数据同步方式将所述增量数据推送至所述原始数据库,包括:若所述数据同步方式包括消息队列同步,则获取消息服务器;将所述增量数据发送至所述消息服务器,使得所述消息服务器在满足第一预设条件或第二预设条件时,将所述增量数据以消息队列的形式发送至所述原始数据库,其中,所述第一预设条件包括接收到所述增量数据,所述第二预设条件包括接收到所述原始数据库发送的同步请求。
可选地,根据所述目标信息的数据同步方式将所述增量数据推送至所述原始数据库,包括:若所述数据同步方式包括数据库同步,则获取所述原始数据库的数据库类型,并根据所述数据库类型从预设指令模板中匹配所述数据库类型对应的同步语句模板;将所述增量数据添加到所述同步语句模板,得到所述增量数据对应的数据同步语句;将所述数据同步语句推送至所述原始数据库,使得所述原始数据库执行所述数据同步语句。
可选地,根据所述目标信息的数据同步方式将所述增量数据推送至所述原始数据库之后,所述方法还包括:响应于所述原始数据库的同步失败结果,统计失败结果次数;若所述失败结果次数大于预设失败阈值,则重新根据所述目标信息的数据同步方式将所述增量数据推送至所述原始数据库。
可选地,根据所述目标信息的数据同步方式将所述增量数据推送至所述原始数据库之前,所述方法还包括:根据所述数据同步方式、所述述增量数据、所述原始数据库生成同步任务,并将所述同步任务加入预设的同步任务队列,其中,所述同步任务包括根据所述目标信息的数据同步方式将所述增量数据推送至所述原始数据库;监控所述同步任务队列;若所述同步任务队列存在所述原始数据库对应的同步任务,则生成所述原始数据库对应的任务执行线程,其中,所述任务执行线程用于按照加入时间依次执行所述原始数据库对应的同步任务;若所述同步任务队列不存在所述原始数据库对应的同步任务,则清除所述原始数据库对应的任务执行线程。
本发明公开了一种数据库之间的数据同步系统,包括:获取模块,用于获取多个系统数据库,并获取至少一部分所述系统数据库对应的同步订阅信息,其中,所述同步订阅信息包括订阅目标标识、同步数据粒度和数据同步方式;匹配模块,用于将任一同步订阅信息确定为目标信息,将所述目标信息对应的系统数据库确定为原始数据库,根据所述目标信息的订阅目标标识对各所述系统数据库进行匹配,得到所述原始数据库对应的目标数据库;提取模块,用于将所述目标信息的同步数据粒度确定为目标粒度,根据所述目标粒度对所述目标数据库对应的二进制日志进行监听,若所述二进制日志中产生所述目标粒度对应的增量日志,则根据所述增量日志对所述目标数据库进行数据提取,得到增量数据;同步模块,用于根据所述目标信息的数据同步方式将所述增量数据推送至所述原始数据库,使得所述原始数据库根据所述增量数据进行数据同步。
本发明公开了一种电子设备,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行上述的方法。
本发明公开了一种计算机可读存储介质,其上存储有计算机程序:所述计算机程序被处理器执行时实现上述的方法。
本发明的有益效果:
通过获取原始数据库的同步订阅信息,根据同步订阅信息中的订阅目标标识确定各原始数据库的目标数据库,根据同步订阅信息中的同步数据粒度对目标数据库对应的二进制日志进行监听,进而获取目标数据库的增量数据,通过增量数据对原始数据库进行数据同步。这样,基于系统数据库对应的同步订阅信息确定原始数据库及其对应的目标数据库,再根据二进制日志采集目标数据库的增量数据,不仅避免重新开发用于数据同步的数据库语句,并且节约了接口与每个原始数据库之间传输链路,从而降低了数据库之间的数据同步的成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明实施例中一个数据库之间的数据同步方法的流程示意图;
图2-a是本发明实施例中一个通过接口形式进行数据同步的方法的示意图;
图2-b是本发明实施例中一个通过订阅形式进行数据同步的方法的示意图;
图3是本发明实施例中一个实施数据同步方法的数据同步系统的结构示意图;
图4是本发明实施例中一个数据库之间的数据同步系统的结构示意图;
图5是本发明实施例中一个电子设备的结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的子样本可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
在下文描述中,探讨了大量细节,以提供对本发明实施例的更透彻的解释,然而,对本领域技术人员来说,可以在没有这些具体细节的情况下实施本发明的实施例是显而易见的,在其他实施例中,以方框图的形式而不是以细节的形式来示出公知的结构和设备,以避免使本发明的实施例难以理解。
本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
除非另有说明,术语“多个”表示两个或两个以上。
本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
结合图1所示,本公开实施例提供了一种数据库之间的数据同步方法,包括:
步骤S101,获取多个系统数据库,并获取至少一部分系统数据库对应的同步订阅信息;
其中,同步订阅信息包括订阅目标标识、同步数据粒度和数据同步方式;
步骤S102,将任一同步订阅信息确定为目标信息,将目标信息对应的系统数据库确定为原始数据库,根据目标信息的订阅目标标识对各系统数据库进行匹配,得到原始数据库对应的目标数据库;
步骤S103,将目标信息的同步数据粒度确定为目标粒度,根据目标粒度对目标数据库对应的二进制日志进行监听,若二进制日志中产生目标粒度对应的增量日志,则根据增量日志对目标数据库进行数据提取,得到增量数据;
步骤S104,根据目标信息的数据同步方式将增量数据推送至原始数据库,使得原始数据库根据增量数据进行数据同步。
采用本公开实施例提供的数据库之间的数据同步方法,通过获取原始数据库的同步订阅信息,根据同步订阅信息中的订阅目标标识确定各原始数据库的目标数据库,根据同步订阅信息中的同步数据粒度对目标数据库对应的二进制日志进行监听,进而获取目标数据库的增量数据,通过增量数据对原始数据库进行数据同步。这样,基于系统数据库对应的同步订阅信息确定原始数据库及其对应的目标数据库,再根据二进制日志采集目标数据库的增量数据,不仅避免重新开发用于数据同步的数据库语句,并且节约了接口与每个原始数据库之间传输链路,从而降低了数据库之间的数据同步的成本。
结合图2-a所示,本公开实施例提供了一种通过接口形式进行数据同步的方法,包括同步接口X和系统数据库,其中,系统数据库包括数据库A、数据库B、数据库C、数据库D和数据库E;将同步接口X分别与数据库A、数据库B、数据库C、数据库D和数据库E之间建立连接链路,并根据连接链路发送同步数据至数据库A、数据库B、数据库C、数据库D和数据库E,使得数据库A、数据库B、数据库C、数据库D和数据库E根据同步数据进行同步。
结合图2-b所示,本公开实施例提供了一种通过订阅形式进行数据同步的方法,包括系统数据库,其中,系统数据库包括数据库A、数据库B、数据库C、数据库D和数据库E;获取各系统数据库对应的同步订阅信息,并根据同步订阅信息确定数据库A为数据库B的目标数据库,数据库B是数据库C和数据库D的目标数据库,数据库D是数据库E的目标数据库;监听数据库A的二进制日志,从而得到数据库A的增量数据;将数据库A的增量数据发送至数据库B进行同步;监听数据库B的二进制文件,从而得到数据库B的增量数据;将数据库B的增量数据分别发送至数据库C和数据库D进行同步;监听数据库D的二进制文件,从而得到数据库D的增量数据;将数据库D的增量数据发送至数据库E进行同步。
这样,相较于通过接口形式进行数据同步,不需要接口与每个原始数据库之间建立连接链路,从而节约了接口与每个原始数据库之间传输链路,降低了数据库之间的数据同步的成本。
可选地,二进制日志包括binlog(binnary log)日志;binlog日志是一个二进制格式的文件,用于记录用户对数据库更新的SQL(Structured Query Language,结构化查询语言)语句信息,例如更改数据库表和更改内容的SQL语句都会就到binlog里,但对库表等内容的查询不会记录;默认情况下,binlog日志是二进制格式的,不能使用文本查看工具的命令查看(例如cat、vi等),而使用MySQL binlog解析查看。
可选地,根据目标粒度对目标数据库对应的二进制日志进行监听,包括:系统数据库包括至少一个数据库表,同步数据粒度包括表数据或库数据;若目标粒度包括库数据,则建立目标数据库对应的第一监听接口,利用第一监听接口对目标数据库对应的二进制日志进行监听,并从目标数据库对应的二进制日志中确定目标数据库对应的增量日志;若目标粒度包括表数据,则获取目标粒度对应的范围标识,根据范围标识从目标数据库的数据库表中确定目标粒度对应的目标表,根据目标表建立目标数据库对应的第二监听接口,利用第二监听接口对目标数据库对应的二进制日志进行监听,并从目标数据库对应的二进制日志中确定目标表对应的增量日志。
这样,通过不同的同步数据粒度监听目标数据库的二进制日志,满足用户对监听对象的需求,提高监听灵活性,并降低了监听算力成本。
在一些实施例中,业务系统根据自身业务需求,对原始数据库需要的目标数据库进行订阅,当目标数据库的表发生改变,查询订阅目标数据库的原始数据库以及数据同步方式;通过订阅目标标识配置原始服务器和对应的目标服务器,并配置目标服务器的数据库名称、表名称、binlog读取历史文件记录和偏移量记录文件;针对要同步的增量数据,根据用户需求的捕捉粒度级别,将同步数据粒度分为表数据或库数据;若监听到表级别粒度,只监控到数据连接下的指定数据库指定表的数据变化监听,对于该数据库下面的其他的表变化并不会被监听到;若监听具体的一个或者多个库,库里面的每张表数据发生变化都会被监听和处理。
可选地,数据同步方式包括接口请求同步、消息队列同步、数据库同步等中的一种或多种。
可选地,根据目标信息的数据同步方式将增量数据推送至原始数据库,包括:若数据同步方式包括接口请求同步,则根据预设接口信息向原始数据库添加同步推送接口,其中,预设接口信息包括接口地址和请求方式;根据请求方式对增量数据进行编码,得到同步请求;通过接口地址将同步请求发送至原始数据库的同步推送接口。
可选地,根据目标信息的数据同步方式将增量数据推送至原始数据库,包括:若数据同步方式包括消息队列同步,则获取消息服务器;将增量数据发送至消息服务器,使得消息服务器在满足第一预设条件或第二预设条件时,将增量数据以消息队列的形式发送至原始数据库,其中,第一预设条件包括接收到增量数据,第二预设条件包括接收到原始数据库发送的同步请求。
可选地,根据目标信息的数据同步方式将增量数据推送至原始数据库,包括:若数据同步方式包括数据库同步,则获取原始数据库的数据库类型,并根据数据库类型从预设指令模板中匹配数据库类型对应的同步语句模板;将增量数据添加到同步语句模板,得到增量数据对应的数据同步语句;将数据同步语句推送至原始数据库,使得原始数据库执行数据同步语句。
这样,设置多种数据同步方式,从而根据用户需求采用不同数据同步方式将增量数据推送到原始数据库,提高了数据同步的灵活性。
在一些实施例中,当获取到增量数据,则根据数据同步方式从预设的订阅配置表中提取数据同步方式对应的元数据;如果推送方式是http(Hyper Text TransferProtocol,超文本传输协议)接口请求方式,则从元数据中将接口地址、请求方式和数据进行构造请求,将数据推送至指定接口地址;如果解析出来推送方式是MQ(Message Queue,消息队列)方式,则从元数据中获取主题(即指定MQ服务器),将数据直接推送到MQ服务器,下游业务可以通过拉取或者推送给方式获取对应的变化数据消息;如果查询到消费方式是数据库入库,则元数据中解析出来对应的数据库连接和数据库信息,服务启动的时候便会将数据源加载到上下文中,根据这条变化数据是创建还是更新操作,拼接对应的SQL语句,最后执行该条语句将数据直接保存至目标数据库
可选地,根据目标信息的数据同步方式将增量数据推送至原始数据库之后,该方法还包括:响应于原始数据库的同步失败结果,统计失败结果次数;若失败结果次数大于预设失败阈值,则重新根据目标信息的数据同步方式将增量数据推送至原始数据库。
可选地,若失败结果次数大于预设警告阈值,则向客户端发送同步失败提醒,以通知相关人员进行处理。
这样,设置重试机制进行重新同步以及失败提醒,确保原始数据库成功同步增量数据,提高同步可靠性。
可选地,根据目标信息的数据同步方式将增量数据推送至原始数据库之前,该方法还包括:根据数据同步方式、述增量数据、原始数据库生成同步任务,并将同步任务加入预设的同步任务队列,其中,同步任务包括根据目标信息的数据同步方式将增量数据推送至原始数据库;监控同步任务队列;若同步任务队列存在原始数据库对应的同步任务,则生成原始数据库对应的任务执行线程,其中,任务执行线程用于按照加入时间依次执行原始数据库对应的同步任务;若同步任务队列不存在原始数据库对应的同步任务,则清除原始数据库对应的任务执行线程。
这样,为每个原始数据库配置对应的任务执行线程,依次执行原始数据库对应的同步任务,避免原始数据库因算力不够无法处理过多同步任务导致崩溃,并在所有同步任务完成后清除任务执行线程,从而节约算力成本。
结合图3所示,本公开实施例提供了一种实施上述数据同步方法的数据同步系统,包括目标数据库301、数据同步服务302、后台管理服务303、数据推送服务304、原始数据库305,其中,目标数据库301和原始数据库305通过以下方式确定,通过获取多个系统数据库,并获取至少一部分系统数据库对应的同步订阅信息,其中,同步订阅信息包括订阅目标标识、同步数据粒度和数据同步方式;将任一同步订阅信息确定为目标信息,将目标信息对应的系统数据库确定为原始数据库,根据目标信息的订阅目标标识对各系统数据库进行匹配,得到原始数据库对应的目标数据库;数据同步服务302用于将目标信息的同步数据粒度确定为目标粒度,根据目标粒度对目标数据库对应的二进制日志进行监听,若二进制日志中产生目标粒度对应的增量日志,则根据增量日志对目标数据库进行数据提取,得到增量数据;后台管理服务303用于响应于原始数据库的同步失败结果,统计失败结果次数;若失败结果次数大于预设失败阈值,则重新根据目标信息的数据同步方式将增量数据推送至原始数据库;数据推送服务304用于根据目标信息的数据同步方式将增量数据推送至原始数据库,使得原始数据库根据增量数据进行数据同步,其中,数据同步方式包括接口请求同步、消息队列同步、数据库同步等中的一种或多种。
采用本公开实施例提供的数据库之间的数据同步方法,通过获取原始数据库的同步订阅信息,根据同步订阅信息中的订阅目标标识确定各原始数据库的目标数据库,根据同步订阅信息中的同步数据粒度对目标数据库对应的二进制日志进行监听,进而获取目标数据库的增量数据,通过增量数据对原始数据库进行数据同步,具有以下优点:
第一、基于系统数据库对应的同步订阅信息确定原始数据库及其对应的目标数据库,再根据二进制日志采集目标数据库的增量数据,不仅避免重新开发用于数据同步的数据库语句,并且节约了接口与每个原始数据库之间传输链路,从而降低了数据库之间的数据同步的成本;
第二、相较于通过接口形式进行数据同步,不需要接口与每个原始数据库之间建立连接链路,从而节约了接口与每个原始数据库之间传输链路,降低了数据库之间的数据同步的成本;
第三、通过不同的同步数据粒度监听目标数据库的二进制日志,满足用户对监听对象的需求,提高监听灵活性,并降低了监听算力成本;
第四、设置多种数据同步方式,从而根据用户需求采用不同数据同步方式将增量数据推送到原始数据库,提高了数据同步的灵活性;
第五、设置重试机制进行重新同步以及失败提醒,确保原始数据库成功同步增量数据,提高同步可靠性;
第六、为每个原始数据库配置对应的任务执行线程,依次执行原始数据库对应的同步任务,避免原始数据库因算力不够无法处理过多同步任务导致崩溃,并在所有同步任务完成后清除任务执行线程,从而节约算力成本。
结合图4所示,本公开实施例提供了一种数据库之间的数据同步系统,包括获取模块401、匹配模块402、提取模块403和同步模块404。获取模块401用于获取多个系统数据库,并获取至少一部分系统数据库对应的同步订阅信息,其中,同步订阅信息包括订阅目标标识、同步数据粒度和数据同步方式;匹配模块402用于将任一同步订阅信息确定为目标信息,将目标信息对应的系统数据库确定为原始数据库,根据目标信息的订阅目标标识对各系统数据库进行匹配,得到原始数据库对应的目标数据库;提取模块403用于将目标信息的同步数据粒度确定为目标粒度,根据目标粒度对目标数据库对应的二进制日志进行监听,若二进制日志中产生目标粒度对应的增量日志,则根据增量日志对目标数据库进行数据提取,得到增量数据;同步模块404用于根据目标信息的数据同步方式将增量数据推送至原始数据库,使得原始数据库根据增量数据进行数据同步。
采用本公开实施例提供的数据库之间的数据同步系统,通过获取原始数据库的同步订阅信息,根据同步订阅信息中的订阅目标标识确定各原始数据库的目标数据库,根据同步订阅信息中的同步数据粒度对目标数据库对应的二进制日志进行监听,进而获取目标数据库的增量数据,通过增量数据对原始数据库进行数据同步。这样,基于系统数据库对应的同步订阅信息确定原始数据库及其对应的目标数据库,再根据二进制日志采集目标数据库的增量数据,不仅避免重新开发用于数据同步的数据库语句,并且节约了接口与每个原始数据库之间传输链路,从而降低了数据库之间的数据同步的成本。
图5示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。需要说明的是,图5示出的电子设备的计算机系统500仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(Central Processing Unit,CPU)501,其可以根据存储在只读存储器(Read-Only Memory,ROM)502中的程序或者从储存部分508加载到随机访问存储器(Random Access Memory,RAM)503中的程序而执行各种适当的动作和处理,例如执行上述实施例中的方法。在RAM 503中,还存储有系统操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(Input/Output,I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分507;包括硬盘等的储存部分508;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入储存部分508。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本实施例中的任一项方法。
本公开实施例中的计算机可读存储介质,本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例公开的电子设备,包括处理器、存储器、收发器和通信接口,存储器和通信接口与处理器和收发器连接并完成相互间的通信,存储器用于存储计算机程序,通信接口用于进行通信,处理器和收发器用于运行计算机程序,使电子设备执行如上方法的各个步骤。
在本实施例中,存储器可能包含随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、图形处理器(Graphics Processing Unit,简称GPU),网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选地,并且操作的顺序可以变化。一些实施例的部分和子样本可以被包括在或替换其他实施例的部分和子样本。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的子样本、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它子样本、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些子样本可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

Claims (10)

1.一种数据库之间的数据同步方法,其特征在于,包括:
获取多个系统数据库,并获取至少一部分所述系统数据库对应的同步订阅信息,其中,所述同步订阅信息包括订阅目标标识、同步数据粒度和数据同步方式;
将任一同步订阅信息确定为目标信息,将所述目标信息对应的系统数据库确定为原始数据库,根据所述目标信息的订阅目标标识对各所述系统数据库进行匹配,得到所述原始数据库对应的目标数据库;
将所述目标信息的同步数据粒度确定为目标粒度,根据所述目标粒度对所述目标数据库对应的二进制日志进行监听,若所述二进制日志中产生所述目标粒度对应的增量日志,则根据所述增量日志对所述目标数据库进行数据提取,得到增量数据;
根据所述目标信息的数据同步方式将所述增量数据推送至所述原始数据库,使得所述原始数据库根据所述增量数据进行数据同步。
2.根据权利要求1所述的方法,其特征在于,根据所述目标粒度对所述目标数据库对应的二进制日志进行监听,包括:
所述系统数据库包括至少一个数据库表,所述同步数据粒度包括表数据或库数据;
若所述目标粒度包括库数据,则建立所述目标数据库对应的第一监听接口,利用所述第一监听接口对所述目标数据库对应的二进制日志进行监听,并从所述目标数据库对应的二进制日志中确定所述目标数据库对应的增量日志;
若所述目标粒度包括表数据,则获取所述目标粒度对应的范围标识,根据所述范围标识从所述目标数据库的数据库表中确定所述目标粒度对应的目标表,根据所述目标表建立所述目标数据库对应的第二监听接口,利用所述第二监听接口对所述目标数据库对应的二进制日志进行监听,并从所述目标数据库对应的二进制日志中确定所述目标表对应的增量日志。
3.根据权利要求1所述的方法,其特征在于,根据所述目标信息的数据同步方式将所述增量数据推送至所述原始数据库,包括:
若所述数据同步方式包括接口请求同步,则根据预设接口信息向所述原始数据库添加同步推送接口,其中,所述预设接口信息包括接口地址和请求方式;
根据所述请求方式对所述增量数据进行编码,得到同步请求;
通过所述接口地址将所述同步请求发送至所述原始数据库的同步推送接口。
4.根据权利要求1所述的方法,其特征在于,根据所述目标信息的数据同步方式将所述增量数据推送至所述原始数据库,包括:
若所述数据同步方式包括消息队列同步,则获取消息服务器;
将所述增量数据发送至所述消息服务器,使得所述消息服务器在满足第一预设条件或第二预设条件时,将所述增量数据以消息队列的形式发送至所述原始数据库,其中,所述第一预设条件包括接收到所述增量数据,所述第二预设条件包括接收到所述原始数据库发送的同步请求。
5.根据权利要求1所述的方法,其特征在于,根据所述目标信息的数据同步方式将所述增量数据推送至所述原始数据库,包括:
若所述数据同步方式包括数据库同步,则获取所述原始数据库的数据库类型,并根据所述数据库类型从预设指令模板中匹配所述数据库类型对应的同步语句模板;
将所述增量数据添加到所述同步语句模板,得到所述增量数据对应的数据同步语句;
将所述数据同步语句推送至所述原始数据库,使得所述原始数据库执行所述数据同步语句。
6.根据权利要求1所述的方法,其特征在于,根据所述目标信息的数据同步方式将所述增量数据推送至所述原始数据库之后,所述方法还包括:
响应于所述原始数据库的同步失败结果,统计失败结果次数;
若所述失败结果次数大于预设失败阈值,则重新根据所述目标信息的数据同步方式将所述增量数据推送至所述原始数据库。
7.根据权利要求1至6任一项所述的方法,其特征在于,根据所述目标信息的数据同步方式将所述增量数据推送至所述原始数据库之前,所述方法还包括:
根据所述数据同步方式、所述述增量数据、所述原始数据库生成同步任务,并将所述同步任务加入预设的同步任务队列,其中,所述同步任务包括根据所述目标信息的数据同步方式将所述增量数据推送至所述原始数据库;
监控所述同步任务队列;
若所述同步任务队列存在所述原始数据库对应的同步任务,则生成所述原始数据库对应的任务执行线程,其中,所述任务执行线程用于按照加入时间依次执行所述原始数据库对应的同步任务;
若所述同步任务队列不存在所述原始数据库对应的同步任务,则清除所述原始数据库对应的任务执行线程。
8.一种数据库之间的数据同步系统,其特征在于,包括:
获取模块,用于获取多个系统数据库,并获取至少一部分所述系统数据库对应的同步订阅信息,其中,所述同步订阅信息包括订阅目标标识、同步数据粒度和数据同步方式;
匹配模块,用于将任一同步订阅信息确定为目标信息,将所述目标信息对应的系统数据库确定为原始数据库,根据所述目标信息的订阅目标标识对各所述系统数据库进行匹配,得到所述原始数据库对应的目标数据库;
提取模块,用于将所述目标信息的同步数据粒度确定为目标粒度,根据所述目标粒度对所述目标数据库对应的二进制日志进行监听,若所述二进制日志中产生所述目标粒度对应的增量日志,则根据所述增量日志对所述目标数据库进行数据提取,得到增量数据;
同步模块,用于根据所述目标信息的数据同步方式将所述增量数据推送至所述原始数据库,使得所述原始数据库根据所述增量数据进行数据同步。
9.一种电子设备,其特征在于,包括:处理器及存储器;
所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:
所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
CN202211065991.2A 2022-09-01 2022-09-01 数据库之间的数据同步方法、系统、电子设备及存储介质 Pending CN115329007A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211065991.2A CN115329007A (zh) 2022-09-01 2022-09-01 数据库之间的数据同步方法、系统、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211065991.2A CN115329007A (zh) 2022-09-01 2022-09-01 数据库之间的数据同步方法、系统、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115329007A true CN115329007A (zh) 2022-11-11

Family

ID=83929523

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211065991.2A Pending CN115329007A (zh) 2022-09-01 2022-09-01 数据库之间的数据同步方法、系统、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115329007A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115967754A (zh) * 2022-12-26 2023-04-14 杭州和利时自动化有限公司 一种工业数据获取方法、装置、设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115967754A (zh) * 2022-12-26 2023-04-14 杭州和利时自动化有限公司 一种工业数据获取方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN107506451B (zh) 用于数据交互的异常信息监控方法及装置
US10803016B2 (en) Predictive models of file access patterns by application and file type
CN109086409B (zh) 微服务数据处理方法、装置、电子设备及计算机可读介质
EP3259668B1 (en) System and method for generating an effective test data set for testing big data applications
CN110647579A (zh) 数据同步方法及装置、计算机设备与可读介质
US10248683B2 (en) Applications of automated discovery of template patterns based on received requests
WO2017087591A1 (en) An automated anomaly detection service on heterogeneous log streams
CN111666326A (zh) Etl调度方法及装置
CN112948486A (zh) 批量数据同步方法、系统及电子设备
CN115329007A (zh) 数据库之间的数据同步方法、系统、电子设备及存储介质
CN114461644A (zh) 一种数据采集方法、装置、电子设备及存储介质
CN115640300A (zh) 一种大数据管理方法、系统、电子设备和存储介质
US20220253453A1 (en) Method and system for persisting data
CN113468196B (zh) 用于处理数据的方法、装置、系统、服务器和介质
CN113190517B (zh) 数据集成方法、装置、电子设备和计算机可读介质
CN110955719B (zh) 一种数据存取处理设备、系统和方法
CN109284469B (zh) 网页开发框架
CN114461792A (zh) 告警事件关联方法、装置、电子设备、介质及程序产品
CN113220907A (zh) 业务知识图谱的构建方法及装置、介质、电子设备
CN107679096B (zh) 数据集市间指标共享的方法和装置
US20230161945A1 (en) Automatic two-way generation and synchronization of notebook and pipeline
US20220114483A1 (en) Unified machine learning feature data pipeline
CN114661918A (zh) 知识图谱构建方法、装置、存储介质及电子设备
US20230409595A1 (en) Synchronising datasets updates
CN109710673B (zh) 作品处理方法、装置、设备和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination