基于多写组件的数据库写入方法、装置、设备及存储介质制造方法及图纸

技术编号:35275400 阅读:23 留言:0更新日期:2022-10-19 10:54
本申请实施例属于数据处理技术领域,涉及一种基于多写组件的数据库写入方法,包括将构建的多写组件与业务系统进行连接;通过多写组件识别业务系统的待执行的数据库执行语句,将携带有目标数据库标签的数据库执行语句顺序放入链表;基于多写组件确定数据库执行指令触达调用末端,将链表封装成消息投递至消息队列;通过多写组件从消息队列中读取消息,并解析消息;通过多写组件执行链表中的数据库执行语句,将源数据库中的数据写入目标数据库。本申请还提供一种基于多写组件的数据库写入装置、设备及存储介质。此外,本申请还涉及区块链技术,链表可存储于区块链中。本申请能够实现业务无感知的情况下完成数据库切换,提高切换效率。效率。效率。

【技术实现步骤摘要】
基于多写组件的数据库写入方法、装置、设备及存储介质


[0001]本申请涉及数据处理
,尤其涉及一种基于多写组件的数据库写入方法、装置、设备及存储介质。

技术介绍

[0002]随着数据库类型的多样化,很多业务系统都面临着将业务数据由源数据库迁移到目标数据库的问题。为了解决业务数据在不同数据库之间迁移的问题,相关技术可以响应业务请求,将与业务请求相关的数据写入源数据库的同时,将写入源数据库的数据同步到目标数据库,实现数据库切换。在数据库切换过程中需要保证业务的稳定运行,故需要对切换前后的数据库(Database,DB)进行双写或多写。
[0003]随着数据库双写或多写的工作逐步开展,每碰到一处DB写操作,都要进行编码修改,以达到同一条数据同时写入多个数据库的目的,加上涉及的系统多,DB操作的功能基数大,需要处理的硬编码越来越多,带来大量的重复工作且过程繁琐,造成相应资源的浪费。同时,编码过程容易出错,最终可能造成系统运行异常,影响业务发展。

技术实现思路

[0004]本申请实施例的目的在于提出一种基于多写组件的数据库写入方法、装置、计算机设备及存储介质,以解决相关技术中数据库的双写或多写存在大量重复工作且过程繁琐,同时编码过程容易出错,造成系统运行异常,影响业务发展的技术问题。
[0005]为了解决上述技术问题,本申请实施例提供一种基于多写组件的数据库写入方法,采用了如下所述的技术方案:
[0006]构建多写组件,将所述多写组件与业务系统进行连接;
[0007]通过所述多写组件识别所述业务系统的待执行的数据库执行语句,将所述数据库执行语句顺序放入链表,其中,所述数据库执行语句携带有目标数据库标签;
[0008]基于所述多写组件确定数据库执行指令触达调用末端,将所述链表封装成消息投递至消息队列;
[0009]通过所述多写组件从所述消息队列中读取所述消息,并解析所述消息,得到源数据库、目标数据库以及对应的链表;
[0010]通过所述多写组件执行所述链表中的数据库执行语句,将所述源数据库中的数据写入目标数据库。
[0011]进一步的,所述将所述数据库执行语句顺序放入链表的步骤包括:
[0012]确定所述数据库执行语句所属事务;
[0013]将属于同一事务的所述数据库执行语句,按照执行顺序放入所属事务对应的链表中。
[0014]进一步的,所述基于所述多写组件确定数据库执行指令触达调用末端,将所述链表封装成消息投递至消息队列的步骤包括:
[0015]通过所述多写组件确定数据库执行指令当前所执行的数据库执行语句的语句层级;
[0016]当所述语句层级为预定值时,则确定所述数据库执行指令触达调用末端;
[0017]按照预设消息结构将所述链表封装成消息,并将所述消息投递至所述消息队列。
[0018]进一步的,在所述解析所述消息,得到源数据库、目标数据库以及对应的链表的步骤之后还包括:
[0019]通过所述多写组件确定是否开启数据库语法自动转换;
[0020]若为是,转换数据库语法,执行所述通过所述多写组件执行所述链表中的数据库执行语句的步骤;
[0021]若为否,直接执行所述通过所述多写组件执行所述链表中的数据库执行语句的步骤。
[0022]进一步的,在所述将所述源数据库中的数据写入目标数据库的步骤之后还包括:
[0023]确定数据写入是否异常;
[0024]在数据写入异常时,通过所述多写组件识别异常类型,并获取异常日志;
[0025]基于所述异常日志获取对应的异常执行的数据库执行语句,并存储至异常数据库中。
[0026]进一步的,在所述基于所述异常日志获取对应的异常执行的数据库执行语句,并存储至异常数据库中的步骤之后还包括:
[0027]确定所述多写组件识别的所述异常类型是否为已知异常;
[0028]在所述异常类型为已知异常时,从所述异常数据库中获取对应的所述异常执行的数据库执行语句;
[0029]对所述异常执行的数据库执行语句进行自动补偿。
[0030]进一步的,所述对所述异常执行的数据库执行语句进行自动补偿的步骤包括:
[0031]通过所述多写组件按照顺序重新执行所述异常执行的数据库执行语句;
[0032]每重新执行一次,补偿次数加一,直至达到预配置的补偿次数上限。
[0033]为了解决上述技术问题,本申请实施例还提供一种基于多写组件的数据库写入装置,采用了如下所述的技术方案:
[0034]构建模块,用于构建多写组件,将所述多写组件与业务系统进行连接;
[0035]识别模块,用于通过所述多写组件识别所述业务系统的待执行的数据库执行语句,将所述数据库执行语句顺序放入链表,其中,所述数据库执行语句携带有目标数据库标签;
[0036]投递模块,用于基于所述多写组件确定数据库执行指令触达调用末端,将所述链表封装成消息投递至消息队列;
[0037]解析模块,用于通过所述多写组件从所述消息队列中读取所述消息,并解析所述消息,得到源数据库、目标数据库以及对应的链表;
[0038]写入模块,用于通过所述多写组件执行所述链表中的数据库执行语句,将所述源数据库中的数据写入目标数据库。
[0039]为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
[0040]该计算机设备包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上所述的基于多写组件的数据库写入方法的步骤。
[0041]为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
[0042]所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上所述的基于多写组件的数据库写入方法的步骤。
[0043]与现有技术相比,本申请实施例主要有以下有益效果:
[0044]本申请通过构建多写组件,将多写组件与业务系统进行连接;通过多写组件识别业务系统的待执行的数据库执行语句,将数据库执行语句顺序放入链表,其中,数据库执行语句携带有目标数据库标签;基于多写组件确定数据库执行指令触达调用末端,将链表封装成消息投递至消息队列;通过多写组件从消息队列中读取消息,并解析消息,得到源数据库、目标数据库以及对应的链表;通过多写组件执行链表中的数据库执行语句,将源数据库中的数据写入目标数据库;本申请通过构建的多写组件,使系统业务在代码无侵入的情况下,完成需要切换的新老数据库的数据双/多写操作,以达到业务无感知的情况下完成数据库切换;同时,通过多写组件实现数据库切换,可以避免重复工作,提高切换效率,还可以降低数据库切换过程的出错率,保证系统业务正常工作。
附图说明
[0045]为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于多写组件的数据库写入方法,其特征在于,包括下述步骤:构建多写组件,将所述多写组件与业务系统进行连接;通过所述多写组件识别所述业务系统的待执行的数据库执行语句,将所述数据库执行语句顺序放入链表,其中,所述数据库执行语句携带有目标数据库标签;基于所述多写组件确定数据库执行指令触达调用末端,将所述链表封装成消息投递至消息队列;通过所述多写组件从所述消息队列中读取所述消息,并解析所述消息,得到源数据库、目标数据库以及对应的链表;通过所述多写组件执行所述链表中的数据库执行语句,将所述源数据库中的数据写入目标数据库。2.根据权利要求1所述的基于多写组件的数据库写入方法,其特征在于,所述将所述数据库执行语句顺序放入链表的步骤包括:确定所述数据库执行语句所属事务;将属于同一事务的所述数据库执行语句,按照执行顺序放入所属事务对应的链表中。3.根据权利要求1所述的基于多写组件的数据库写入方法,其特征在于,所述基于所述多写组件确定数据库执行指令触达调用末端,将所述链表封装成消息投递至消息队列的步骤包括:通过所述多写组件确定数据库执行指令当前所执行的数据库执行语句的语句层级;当所述语句层级为预定值时,则确定所述数据库执行指令触达调用末端;按照预设消息结构将所述链表封装成消息,并将所述消息投递至所述消息队列。4.根据权利要求1所述的基于多写组件的数据库写入方法,其特征在于,在所述解析所述消息,得到源数据库、目标数据库以及对应的链表的步骤之后还包括:通过所述多写组件确定是否开启数据库语法自动转换;若为是,转换数据库语法,执行所述通过所述多写组件执行所述链表中的数据库执行语句的步骤;若为否,直接执行所述通过所述多写组件执行所述链表中的数据库执行语句的步骤。5.根据权利要求1所述的基于多写组件的数据库写入方法,其特征在于,在所述将所述源数据库中的数据写入目标数据库的步骤之后还包括:确定数据写入是否异常;在数据写入异常时,通过所述多写组件识别异常类型,...

【专利技术属性】
技术研发人员:钱鑫
申请(专利权)人:平安健康保险股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1