CN115080581A - 基于二进制日志的数据同步方法、装置、设备及存储介质 - Google Patents

基于二进制日志的数据同步方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN115080581A
CN115080581A CN202210731446.6A CN202210731446A CN115080581A CN 115080581 A CN115080581 A CN 115080581A CN 202210731446 A CN202210731446 A CN 202210731446A CN 115080581 A CN115080581 A CN 115080581A
Authority
CN
China
Prior art keywords
data
synchronization
log
sql statement
target
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
CN202210731446.6A
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.)
Ping An Bank Co Ltd
Original Assignee
Ping An Bank 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 Ping An Bank Co Ltd filed Critical Ping An Bank Co Ltd
Priority to CN202210731446.6A priority Critical patent/CN115080581A/zh
Publication of CN115080581A publication Critical patent/CN115080581A/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/23Updating
    • G06F16/2358Change logging, detection, and notification
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication

Landscapes

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

Abstract

本申请实施例提供了一种基于二进制日志的数据同步方法、装置、设备及存储介质,该方法通过获取目标数据库的目标SQL语句,将目标SQL语句输入至已训练的神经网络模型,输出目标SQL语句对应的同步规则,若同步规则为第一同步规则,则将目标SQL语句写入二进制日志,生成第一日志数据,若同步规则为第二同步规则,则将目标SQL语句的执行结果写入二进制日志,生成第二日志数据,根据第一日志数据或第二日志数据对目标数据库进行同步,实现了自动化确定目标SQL语句写入二进制日志的适配方式,使得同步规则更加准确,提高了第一日志数据或第二日志数据生成效率,使得根据第一日志数据或第二日志数据对目标数据库进行同步,大大提高了数据同步效率和实时性。

Description

基于二进制日志的数据同步方法、装置、设备及存储介质
技术领域
本申请涉及网络数据库技术领域,具体涉及一种基于二进制日志的数据同步方法、装置、设备及存储介质。
背景技术
随着大数据的发展,大部分公司的系统都需要进行数据的同步操作,其常用的技术是针对线上数据库,采用主从同步配置,通过对binlog(或binary log,二进制日志)读写实现数据同步,即主数据库会将数据更新信息写入二进制日志,以便于从数据库利用二进制日志完成数据的同步,且数据更新信息通常会以两种形式写入二进制日志,一种是以SQL语句的形式存在,另一种是以更新后的数据的形式存在。
现有技术中,是通过专业人员根据自身经验设定好配置规则,确定数据更新信息写入二进制日志的方式,该方式人力成本高,配置繁琐,容易出现错误,影响数据同步效率。
申请内容
本申请实施例提供一种基于二进制日志的数据同步方法、装置、计算机设备及存储介质,以解决通过人工配置,确定数据更新信息写入二进制日志的方式导致的数据同步效率低的技术问题。
一方面,本申请提供一种基于二进制日志的数据同步方法,所述方法包括:
获取目标数据库的目标SQL语句;
将所述目标SQL语句输入至已训练的神经网络模型,输出所述目标SQL语句对应的同步规则,其中,所述神经网络模型是基于样本SQL语句及其标注的同步规则标签训练得到;
若所述同步规则为第一同步规则,则将所述目标SQL语句写入二进制日志,生成第一日志数据;
若所述同步规则为第二同步规则,则将所述目标SQL语句的执行结果写入二进制日志,生成第二日志数据;
根据所述第一日志数据或所述第二日志数据对所述目标数据库进行同步。
一方面,本申请提供一种基于二进制日志的数据同步装置,所述装置包括:
获取模块,用于获取目标数据库的目标SQL语句;
确定模块,用于将所述目标SQL语句输入至已训练的神经网络模型,输出所述目标SQL语句对应的同步规则,其中,所述神经网络模型是基于样本SQL语句及其标注的同步规则标签训练得到;
第一写入模块,用于若所述同步规则为第一同步规则,则将所述目标SQL语句写入二进制日志,生成第一日志数据;
第二写入模块,用于若所述同步规则为第二同步规则,则将所述目标SQL语句的执行结果写入二进制日志,生成第二日志数据;
同步模块,用于根据所述第一日志数据或所述第二日志数据对所述目标数据库进行同步。
一方面,本申请提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下基于二进制日志的数据同步方法中的步骤:
获取目标数据库的目标SQL语句;
将所述目标SQL语句输入至已训练的神经网络模型,输出所述目标SQL语句对应的同步规则,其中,所述神经网络模型是基于样本SQL语句及其标注的同步规则标签训练得到;
若所述同步规则为第一同步规则,则将所述目标SQL语句写入二进制日志,生成第一日志数据;
若所述同步规则为第二同步规则,则将所述目标SQL语句的执行结果写入二进制日志,生成第二日志数据;
根据所述第一日志数据或所述第二日志数据对所述目标数据库进行同步。
一方面,本申请提供一种计算机可读介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下基于二进制日志的数据同步方法中的步骤:
获取目标数据库的目标SQL语句;
将所述目标SQL语句输入至已训练的神经网络模型,输出所述目标SQL语句对应的同步规则,其中,所述神经网络模型是基于样本SQL语句及其标注的同步规则标签训练得到;
若所述同步规则为第一同步规则,则将所述目标SQL语句写入二进制日志,生成第一日志数据;
若所述同步规则为第二同步规则,则将所述目标SQL语句的执行结果写入二进制日志,生成第二日志数据;
根据所述第一日志数据或所述第二日志数据对所述目标数据库进行同步。
本申请实施例提供了一种基于二进制日志的数据同步方法,通过获取目标数据库的目标SQL语句,将目标SQL语句输入至已训练的神经网络模型,输出目标SQL语句对应的同步规则,若同步规则为第一同步规则,则将目标SQL语句写入二进制日志,生成第一日志数据,若同步规则为第二同步规则,则将目标SQL语句的执行结果写入二进制日志,生成第二日志数据,根据第一日志数据或第二日志数据对目标数据库进行同步,实现了自动化确定目标SQL语句写入二进制日志的适配方式,使得同步规则更加准确,进而提高了第一日志数据或第二日志数据生成效率,使得根据第一日志数据或第二日志数据对目标数据库进行同步,大大提高了数据同步效率和实时性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1为一个实施例中基于二进制日志的数据同步方法的应用场景示意图;
图2为一个实施例中基于二进制日志的数据同步方法的流程图;
图3为一个实施例中基于二进制日志的数据同步装置的结构框图;
图4为一个实施例中计算机设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提供的基于二进制日志的数据同步方法,可应用在如图1的应用环境中,其中,终端设备通过网络与服务器进行通信。其中,终端设备可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
系统框架100可以包括终端设备101、102、103、网络104和服务器105。网络用以在终端设备和服务器之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备通过网络与服务器交互,以接收或者发送消息等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture EpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureEperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本发明实施例所提供的基于二进制日志的数据同步方法由服务器执行,相应地,基于二进制日志的数据同步装置设置于服务器中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的,根据实现需要,可以具有任意数目的终端设备、网络和服务器,本发明实施例中的终端设备具体可以对应的是实际生产中的应用系统。
如图2所示,在一个实施例中,提供了一种基于二进制日志的数据同步方法,该基于二进制日志的数据同步方法既可以应用于终端,也可以应用于服务器,本实施例以应用于服务器举例说明。该基于二进制日志的数据同步方法具体包括以下步骤:
步骤201,获取目标数据库的目标SQL语句。
其中,目标数据库是指需要进行数据同步的数据库,该目标数据库可以是MYSQL数据库、Oracle数据库等。目标SQL语句是指目标数据库中用于进行数据的结构化查询语言的脚本信息,例如,“insert into t_student value(值1,值2,值3)”,其释义为向名称为“t_student”的数据表中插入值1,值2,值3。
具体地,可以通过实时监控源数据库中的发生数据变化的信息,确定目标数据库,并基于目标数据库对应的事务确定目标SQL语句。值得说明的是,还可以针对发生数据变化对应的数据,将这些数据保存到中间数据库,根据中间数据库中保存的信息确定目标数据库。可以理解地,本实施例中,通过获取目标SQL语句,以便后续直接基于目标SQL语句进行分析,避免对较多的数据库及数据表的繁琐配置和操作,提高数据同步效率。
步骤202,将目标SQL语句输入至已训练的神经网络模型,输出目标SQL语句对应的同步规则,其中,神经网络模型是基于样本SQL语句及其标注的同步规则标签训练得到。
其中,同步规则是指SQL语句写入二进制日志的方式,同步规则的标签包括第一同步规则和第二同步规则两类,神经网络模型是用于确定SQL语句对应的同步规则的机器学习模型,可通过样本学习具备分类能力的机器学习算法模型,本实施例的神经网络模型用于将不同的SQL语句划分到第一同步规则和第二同步规则中的一类。具体地,可以利用至少一个神经网络模型进行分类的分类器,其中的神经网络模型可以是如下的一个或者多个:卷积神经网络、BP神经网络、残差神经网络(ResNet)等。作为这样的神经网络模型的训练的部分,训练输入是各种SQL语句,建立SQL语句与同步规则的对应的关系分类器。使得该神经网络模型具备判断输入的SQL语句对应的同步规则是第一同步规则还是第二同步规则的能力。
本实施例中,该神经网络模型可以是二分类器,即得到两个分类结果,也即第一同步规则或者第二同步规则。可以理解地,通过神经网络模型的方式确定SQL语句对应的同步规则,实现了对SQL语句的自动化分析,避免人工对同步规则判断的耗时耗力,并且本实施例神经网络模型模型,通过全面考虑不同的SQL语句的逻辑分析,并且神经网络模型学习到了不同SQL语句类型和对应的同步规则之间的潜在关系,能够更加全面、精确地实现确定SQL的适配的同步规则,有利于提高后续数据的同步效率。
步骤203,若同步规则为第一同步规则,则将目标SQL语句写入二进制日志,生成第一日志数据。
其中,第一同步规则为直接将目标SQL语句写入二进制日志的写入方式,即每一条需要进行同步的SQL语句都会记录在二进制日志binlog中,第一日志数据也即为记录有目标SQL语句信息的日志数据。由于第一同步规则对应的写入方式不需要记录数据库中需要进行数据同步的每一行数据的变化,减少了binlog日志量,节约了IO,提高性能。
在一个示例中,对于包含有GRANT,REVOKE,SET PASSWORD等管理语句的目标SQL语句,采用第一同步规则,由于执行GRANT,REVOKE,SET PASSWORD命令修改权限后,目标数据库会自动将修改后的权限信息同步加载到系统内存,因此,能够减少日志,提升IO性能,进而提高第一日志数据的生成效率。
步骤204,若同步规则为第二同步规则,则将目标SQL语句的执行结果写入二进制日志,生成第二日志数据。
其中,第二同步规则为将目标SQL语句执行后的执行结果写入二进制日志的写入方式,即仅仅记录需要进行同步的SQL语句对应的一条记录被同步后的执行结果,第二日志数据也即为记录有目标SQL语句的执行结果的日志数据。由于第二同步规则对应的写入方式可以不记录执行的目标SQL语句的上下文相关的信息,仅需要记录与需要进行同步的SQL语句对应的一条记录被同步修改后的执行结果,从而使得第二日志数据能够清楚的记录每一行数据修改的细节,而且不会出现某些特定情况下的存储过程,或function,以及trigger的调用和触发无法被正确复制的问题。
在一个示例中,对于包含有INSERT,UPDATE,DELETE语句时锁更少,如“INSERT...SELECT”、“包含AUTO_INCREMENT字段的INSERT”、没有附带条件或者并没有修改很多记录的UPDATE或DELETE语句等SQL语句是,行锁更少,采用第二同步规则,从而可以提高复制的安全性和复制速度,因此,能够减少日志,提升IO性能,进而提高第二日志数据生成效率。
步骤205,根据第一日志数据或第二日志数据对目标数据库进行同步。
具体地,根据第一日志数据或者第二日志数据对目标数据库进行数据回滚操作,实现了目标数据库的数据同步,可以理解地,本实施例中通过自动化确定目标SQL语句写入二进制日志的适配方式,使得同步规则更加准确,进而提高了第一日志数据或第二日志数据生成效率,使得根据第一日志数据或第二日志数据对目标数据库进行同步,大大提高了数据同步效率和实时性。
上述基于二进制日志的数据同步方法,通过获取目标数据库的目标SQL语句,将目标SQL语句输入至已训练的神经网络模型,输出目标SQL语句对应的同步规则,若同步规则为第一同步规则,则将目标SQL语句写入二进制日志,生成第一日志数据,若同步规则为第二同步规则,则将目标SQL语句的执行结果写入二进制日志,生成第二日志数据,根据第一日志数据或第二日志数据对目标数据库进行同步,实现了自动化确定目标SQL语句写入二进制日志的适配方式,使得同步规则更加准确,进而提高了第一日志数据或第二日志数据生成效率,使得根据第一日志数据或第二日志数据对目标数据库进行同步,大大提高了数据同步效率和实时性。
在一个实施例中,获取目标数据库的目标SQL语句,包括:获取源数据库对应的接口参数;根据接口参数确定源数据库中发生数据变化的待同步事务;根据待同步事务确定目标数据库;对待同步事务进行转译处理,生成目标数据库对应的目标SQL语句,目标SQL语句记录了发生数据变化的待同步数据及对应的同步模式。
其中,接口参数是指源数据库的标准接口参数,通过获取源数据库对应的接口参数,从而确定源数据库中发生数据变化的待同步事务,获得对源数据库的操作信息,待同步事务是指对源数据库进行一次操作,如,增加操作、更新操作、删除操作等,因此,根据待同步事务即可确定发生变化的数据库,进而确定为目标数据库,对待同步事务进行转译处理,即对发生变化数据的相关信息进行转译,生成目标数据库对应的目标SQL语句,目标SQL语句记录了发生数据变化的待同步数据及对应的同步模式。
在一个实施例中,将目标SQL语句写入二进制日志,生成第一日志数据,包括:获取内存文件系统及对应的写入参数;按照写入参数,将目标SQL语句写入内存文件系统中;从内存文件系统中导出第一日志数据。
其中,内存文件系统对应的吸入参数包括二进制日志格式、文件循环写入方式中的至少一种。具体地,按照写入参数,将目标SQL语句写入内存文件系统中,由于以写内存的方式进行写入,比以写文件的方式进行写入的速率要高,因此,克服了直接写入二进制日志中导致的写入速度慢的问题,避免造成内存文件系统中的内存浪费,从内存文件系统中导出第一日志数据,从而提高了第一日志数据的导出速度。
在一个实施例中,同步模式包括删除操作、更新操作和插入操作中的一种;将目标SQL语句的执行结果写入二进制日志,生成第二日志数据,包括:若同步模式为更新操作,则从待同步数据中确定发生变化前的第一数据和发生变化后的第二数据;若同步模式为插入操作,判定第一数据为空,第二数据为新增数据;若同步模式为删除操作,判定第一数据为被删除数据,第二数据为空;基于第一数据、第二数据及同步模式,生成第二日志数据。
具体地,同步模式包括删除操作、更新操作和插入操作中的一种,对于更新操作,服务器从待同步数据中确定发生变化前的第一数据和发生变化后的第二数据,对于插入操作,判定第一数据为空,第二数据为新增数据,对于删除操作,判定第一数据为被删除数据,第二数据为空,接着,根据第一数据、第二数据及同步模式,即可确定第二日志数据。
在一个实施例中,根据第一日志数据或第二日志数据对目标数据库进行同步,包括:将第一日志数据或第二日志数据导入目标数据库。
具体地,将第一日志数据或第二日志数据导入目标数据库,即实现了对目标数据库中的二进制日志的写入,实现了对目标数据库的同步。
在一个实施例中,在将目标SQL语句输入至已训练的神经网络模型之前,方法还包括:获取多个样本SQL语句及其标注的同步规则标签;提取各个样本SQL语句的关键词和运算符;将关键词、运算符及对应的同步规则标签构建多个映射矩阵;将映射矩阵和对应的同步规则标签输入至神经网络模型进行训练,得到已训练的神经网络模型。
具体地,每个样本SQL语句均进行了同步规则标签的标准,样本SQL语句的关键词和运算符均能够较为准确全面的反映SQL语句及目标数据库待同步数据的相关信息,即待同步事务,因此,根据关键词、运算符及对应的同步规则标签构建多个映射矩阵,其中的映射矩阵的构建过程如下:将关键词、运算符及对应的同步规则标签构造为一个初始矩阵,将关键词、运算符及对应的同步规则标签转换为树形结构,将树形结构构造为转换矩阵,将初始矩阵和转换矩阵合并为映射矩阵。从而为待同步事务和相应的同步规则建立了准确全面的映射关系。
具体地,将映射矩阵和对应的同步规则标签作为神经网络模型的输入,进行训练,得到已训练的神经网络模型。
在一个实施例中,将映射矩阵和对应的同步规则标签输入至神经网络模型进行训练,得到已训练的神经网络模型,包括:按照预设比例,将多个映射矩阵进行随机组合,得到训练集和测试集;将训练集和测试集输入神经网络模型进行预测,得到已训练的神经网络模型。
具体地,通过重复上述实施例的步骤,即重复获取多个样本SQL语句及其标注的同步规则标签;提取各个样本SQL语句的关键词和运算符;将关键词、运算符及对应的同步规则标签构建多个映射矩阵;将映射矩阵和对应的同步规则标签输入至神经网络模型进行训练,得到已训练的神经网络模型的步骤,可获得大量多个映射矩阵,也即一个样本SQL语句中的关键词、运算符及对应的同步规则标签构建得到的映射矩阵,按照预设比例,随机选取训练集和测试集,并输入神经网络模型训练,得到已训练的神经网络模型。
如图3所示,在一个实施例中,提出了一种基于二进制日志的数据同步装置,包括:
获取模块301,用于获取目标数据库的目标SQL语句;
确定模块302,用于将所述目标SQL语句输入至已训练的神经网络模型,输出所述目标SQL语句对应的同步规则,其中,所述神经网络模型是基于样本SQL语句及其标注的同步规则标签训练得到;
第一写入模块303,用于若所述同步规则为第一同步规则,则将所述目标SQL语句写入二进制日志,生成第一日志数据;
第二写入模块304,用于若所述同步规则为第二同步规则,则将所述目标SQL语句的执行结果写入二进制日志,生成第二日志数据;
同步模块305,用于根据所述第一日志数据或所述第二日志数据对所述目标数据库进行同步。
在一个实施例中,获取模块301包括:
第一获取单元,用于获取源数据库对应的接口参数;
第一确定单元,用于根据所述接口参数确定所述源数据库中发生数据变化的待同步事务;
第二确定单元,用于根据所述待同步事务确定目标数据库;
转译单元,用于对所述待同步事务进行转译处理,生成所述目标数据库对应的所述目标SQL语句,所述目标SQL语句记录了所述发生数据变化的待同步数据及对应的同步模式。
在一个实施例中,第一写入模块303包括:
第二获取单元,用于获取内存文件系统及对应的写入参数;
第一写入单元,用于按照所述写入参数,将所述目标SQL语句写入所述内存文件系统中;
导出单元,用于从所述内存文件系统中导出所述第一日志数据。
在一个实施例中,所述同步模式包括删除操作、更新操作和插入操作中的一种;第二写入模块304包括:
第三确定单元,用于若所述同步模式为更新操作,则从所述待同步数据中确定发生变化前的第一数据和发生变化后的第二数据;
第一判定单元,用于若所述同步模式为插入操作,判定所述第一数据为空,所述第二数据为新增数据;
第二判定单元,用于若所述同步模式为删除操作,判定所述第一数据为被删除数据,所述第二数据为空;
生成单元,用于基于所述第一数据、第二数据及所述同步模式,生成所述第二日志数据。
在一个实施例中,同步模块305包括:导入单元,用于将所述第一日志数据或第二日志数据导入所述目标数据库。
在一个实施例中,该基于二进制日志的数据同步装置还包括:
第一获取模块,用于获取多个样本SQL语句及其标注的同步规则标签;
提取模块,用于提取各个样本SQL语句的关键词和运算符;
构建模块,用于将所述关键词、所述运算符及对应的所述同步规则标签构建多个映射矩阵;
训练模块,用于将所述映射矩阵和对应的所述同步规则标签输入至所述神经网络模型进行训练,得到已训练的神经网络模型。
在一个实施例中,训练模块包括:
第四确定单元,用于按照预设比例,将所述多个映射矩阵进行随机组合,得到训练集和测试集;
预测单元,用于将所述训练集和所述测试集输入所述神经网络模型进行预测,得到已训练的神经网络模型。
由上述技术方案可以得出,本申请通过获取目标数据库的目标SQL语句,将目标SQL语句输入至已训练的神经网络模型,输出目标SQL语句对应的同步规则,若同步规则为第一同步规则,则将目标SQL语句写入二进制日志,生成第一日志数据,若同步规则为第二同步规则,则将目标SQL语句的执行结果写入二进制日志,生成第二日志数据,根据第一日志数据或第二日志数据对目标数据库进行同步,实现了自动化确定目标SQL语句写入二进制日志的适配方式,使得同步规则更加准确,进而提高了第一日志数据或第二日志数据生成效率,使得根据第一日志数据或第二日志数据对目标数据库进行同步,大大提高了数据同步效率和实时性。
图4示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是服务器,所述服务器包括但不限于高性能计算机和高性能计算机集群。如图4所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现基于二进制日志的数据同步方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行基于二进制日志的数据同步方法。本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的基于二进制日志的数据同步方法可以实现为一种计算机程序的形式,计算机程序可在如图4所示的计算机设备上运行。计算机设备的存储器中可存储组成基于二进制日志的数据同步装置的各个程序模板。比如,获取模块301,确定模块302,第一写入模块303,第二写入模块304,同步模块305。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下基于二进制日志的数据同步方法中的步骤:
获取目标数据库的目标SQL语句;
将所述目标SQL语句输入至已训练的神经网络模型,输出所述目标SQL语句对应的同步规则,其中,所述神经网络模型是基于样本SQL语句及其标注的同步规则标签训练得到;
若所述同步规则为第一同步规则,则将所述目标SQL语句写入二进制日志,生成第一日志数据;
若所述同步规则为第二同步规则,则将所述目标SQL语句的执行结果写入二进制日志,生成第二日志数据;
根据所述第一日志数据或所述第二日志数据对所述目标数据库进行同步。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如下基于二进制日志的数据同步方法中的步骤:
获取目标数据库的目标SQL语句;
将所述目标SQL语句输入至已训练的神经网络模型,输出所述目标SQL语句对应的同步规则,其中,所述神经网络模型是基于样本SQL语句及其标注的同步规则标签训练得到;
若所述同步规则为第一同步规则,则将所述目标SQL语句写入二进制日志,生成第一日志数据;
若所述同步规则为第二同步规则,则将所述目标SQL语句的执行结果写入二进制日志,生成第二日志数据;
根据所述第一日志数据或所述第二日志数据对所述目标数据库进行同步。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于二进制日志的数据同步方法,其特征在于,所述方法包括:
获取目标数据库的目标SQL语句;
将所述目标SQL语句输入至已训练的神经网络模型,输出所述目标SQL语句对应的同步规则,其中,所述神经网络模型是基于样本SQL语句及其标注的同步规则标签训练得到;
若所述同步规则为第一同步规则,则将所述目标SQL语句写入二进制日志,生成第一日志数据;
若所述同步规则为第二同步规则,则将所述目标SQL语句的执行结果写入二进制日志,生成第二日志数据;
根据所述第一日志数据或所述第二日志数据对所述目标数据库进行同步。
2.如权利要求1所述的基于二进制日志的数据同步方法,其特征在于,所述获取目标数据库的目标SQL语句,包括:
获取源数据库对应的接口参数;
根据所述接口参数确定所述源数据库中发生数据变化的待同步事务;
根据所述待同步事务确定目标数据库;
对所述待同步事务进行转译处理,生成所述目标数据库对应的所述目标SQL语句,所述目标SQL语句记录了所述发生数据变化的待同步数据及对应的同步模式。
3.如权利要求2所述的基于二进制日志的数据同步方法,其特征在于,所述将所述目标SQL语句写入二进制日志,生成第一日志数据,包括:
获取内存文件系统及对应的写入参数;
按照所述写入参数,将所述目标SQL语句写入所述内存文件系统中;
从所述内存文件系统中导出所述第一日志数据。
4.如权利要求2所述的基于二进制日志的数据同步方法,其特征在于,所述同步模式包括删除操作、更新操作和插入操作中的一种;
所述将所述目标SQL语句的执行结果写入二进制日志,生成第二日志数据,包括:
若所述同步模式为更新操作,则从所述待同步数据中确定发生变化前的第一数据和发生变化后的第二数据;
若所述同步模式为插入操作,判定所述第一数据为空,所述第二数据为新增数据;
若所述同步模式为删除操作,判定所述第一数据为被删除数据,所述第二数据为空;
基于所述第一数据、第二数据及所述同步模式,生成所述第二日志数据。
5.如权利要求1所述的基于二进制日志的数据同步方法,其特征在于,所述根据所述第一日志数据或所述第二日志数据对所述目标数据库进行同步,包括:
将所述第一日志数据或第二日志数据导入所述目标数据库。
6.如权利要求1所述的基于二进制日志的数据同步方法,其特征在于,在所述将所述目标SQL语句输入至已训练的神经网络模型之前,所述方法还包括:
获取多个样本SQL语句及其标注的同步规则标签;
提取各个样本SQL语句的关键词和运算符;
将所述关键词、所述运算符及对应的所述同步规则标签构建多个映射矩阵;
将所述映射矩阵和对应的所述同步规则标签输入至所述神经网络模型进行训练,得到已训练的神经网络模型。
7.如权利要求6所述的基于二进制日志的数据同步方法,其特征在于,所述将所述映射矩阵和对应的所述同步规则标签输入至所述神经网络模型进行训练,得到已训练的神经网络模型,包括:
按照预设比例,将所述多个映射矩阵进行随机组合,得到训练集和测试集;
将所述训练集和所述测试集输入所述神经网络模型进行预测,得到已训练的神经网络模型。
8.一种基于二进制日志的数据同步装置,其特征在于,所述装置包括:
获取模块,用于获取目标数据库的目标SQL语句;
确定模块,用于将所述目标SQL语句输入至已训练的神经网络模型,输出所述目标SQL语句对应的同步规则,其中,所述神经网络模型是基于样本SQL语句及其标注的同步规则标签训练得到;
第一写入模块,用于若所述同步规则为第一同步规则,则将所述目标SQL语句写入二进制日志,生成第一日志数据;
第二写入模块,用于若所述同步规则为第二同步规则,则将所述目标SQL语句的执行结果写入二进制日志,生成第二日志数据;
同步模块,用于根据所述第一日志数据或所述第二日志数据对所述目标数据库进行同步。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述基于二进制日志的数据同步方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述基于二进制日志的数据同步方法的步骤。
CN202210731446.6A 2022-06-24 2022-06-24 基于二进制日志的数据同步方法、装置、设备及存储介质 Pending CN115080581A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210731446.6A CN115080581A (zh) 2022-06-24 2022-06-24 基于二进制日志的数据同步方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210731446.6A CN115080581A (zh) 2022-06-24 2022-06-24 基于二进制日志的数据同步方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN115080581A true CN115080581A (zh) 2022-09-20

Family

ID=83255848

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210731446.6A Pending CN115080581A (zh) 2022-06-24 2022-06-24 基于二进制日志的数据同步方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115080581A (zh)

Similar Documents

Publication Publication Date Title
WO2022126974A1 (zh) 基于Kafka的增量数据同步方法、装置、设备及介质
CN102087657B (zh) 一种用于核电站仿真平台的io对点方法和io对点装置
CN110795499A (zh) 基于大数据的集群数据同步方法、装置、设备及存储介质
CN102880683A (zh) 一种可行性研究报告的自动网络生成系统及其生成方法
CN112286934A (zh) 数据库表导入方法、装置、设备及介质
CN111651519A (zh) 数据同步方法、数据同步装置、电子设备及存储介质
CN113742338A (zh) 工程验收表单结构化存储系统
EP2904520B1 (en) Reference data segmentation from single to multiple tables
CN113468209A (zh) 一种电网监控系统高速内存数据库访问方法
CN112199374B (zh) 针对数据缺失的数据特征挖掘方法及其相关设备
CN117033249A (zh) 一种测试用例生成方法、装置、计算机设备及存储介质
CN117078181A (zh) 一种电力交易业务数据处理流程自动化方法与系统
CN115080581A (zh) 基于二进制日志的数据同步方法、装置、设备及存储介质
CN103809915A (zh) 一种磁盘文件的读写方法和装置
CN115544007A (zh) 标签预处理方法、装置、计算机设备和存储介质
CN113032495B (zh) 基于数据仓库的多层数据存储系统、处理方法、及服务器
CN113868138A (zh) 测试数据的获取方法、系统、设备及存储介质
CN114461606A (zh) 数据存储方法、装置、计算机设备及存储介质
CN113254455A (zh) 数据库的动态配置方法、装置、计算机设备及存储介质
CN113779215A (zh) 数据处理平台
CN114385722A (zh) 接口属性的一致性校验方法、装置、电子设备和存储介质
CN113127496A (zh) 数据库中变更数据的确定方法及装置、介质和设备
CN117785832A (zh) 日志处理方法、装置、计算机设备及存储介质
CN115344478A (zh) 基于生产流量的系统测试方法、装置、设备及存储介质
CN116662418A (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