分布式数据库中SQL语句的处理方法、装置及电子设备制造方法及图纸

技术编号:35013153 阅读:36 留言:0更新日期:2022-09-21 15:10
本申请提供了一种分布式数据库中SQL语句的处理方法、装置及电子设备,该方法应用于应用服务器,服务器中的数据库分片对应有属性标签;该方法包括:获取待执行的SQL语句;SQL语句携带有分片键和操作类型;根据分片键和当前分片数量,确定SQL语句对应的第一目标分片;根据第一目标分片的属性标签和SQL语句的操作类型,执行SQL语句。本申请在接收到待执行的SQL语句时,可以根据分片的不同属性标签和SQL语句的不同的操作类型,对SQL语句进行不同的操作,无论是在数据库增加分片扩容的情况,还是在出现分片故障导致数据库缩容的情况下,均不需要进行数据迁移和重新分片,能够保证数据处理的一致性,满足金融服务的需求。满足金融服务的需求。满足金融服务的需求。

【技术实现步骤摘要】
分布式数据库中SQL语句的处理方法、装置及电子设备


[0001]本申请涉及金融服务
,尤其是涉及一种分布式数据库中SQL语句的处理方法、装置及电子设备。

技术介绍

[0002]金融业在数字化转型中,业务数据急剧增长,在高并发业务和大用户量带来的系统压力下,对数据存储和管理提出更高要求,对如何实现数据库的自主可控,保证数据强一致性、高可用和水平扩展来保障客户资金安全,防范资金风险有着更强烈的需求,由此分布式数据库,作为一种新的数据库架构,经过近十余年的高速发展,已逐步成熟,并运用于金融行业。
[0003]在分布式数据库使用过程中,随着时间推移,各分片上数据量及访问量越来越大,服务器容量和性能达到瓶颈,这时就需要进行数据库的扩容为保障业务稳定,同时,单个分片或多个分片可能在运行使用过程中因网络或者存储等原因引发故障,这时就需要对该故障分片进行隔离降级处理即缩容来保障金融业务的高可用,目前大部分的分布式数据库解决方案中,都需要对数据进行迁移和重新分片,整个过程耗时长,且可能存在数据不一致等风险,无法满足金融业务的要求。

技术实现思路

[0004]本申请的目的在于提供一种分布式数据库中SQL语句的处理方法、装置及电子设备,在接收到待执行的SQL语句时,可以根据分片的不同属性标签和SQL的不同的操作类型,对SQL进行不同的操作,因此,无论是在数据库增加分片扩容的情况下,还是在出现分片故障导致数据库缩容的情况下,均不需要进行数据迁移和重新分片,能够保证数据处理的一致性,满足金融服务的需求。
[0005]第一方面,本申请实施例提供一种分布式数据库中SQL语句的处理方法,方法应用于应用服务器,服务器中的数据库分片对应有属性标签;属性标签包括:可用或不可用;方法包括:获取待执行的SQL语句;SQL语句携带有分片键和操作类型;操作类型包括:新增操作、更新操作或查询操作;根据分片键和当前分片数量,确定SQL语句对应的第一目标分片;根据第一目标分片的属性标签和SQL语句的操作类型,执行SQL语句。
[0006]在本申请较佳的实施方式中,上述SQL语句的操作类型为新增操作;根据第一目标分片的属性标签和SQL语句的操作类型,执行SQL语句的步骤,包括:如果第一目标分片的属性标签为可用,基于第一目标分片执行SQL语句;如果第一目标分片的属性标签为不可用,按照分片标识顺序查找下一个属性标签为可用的第二目标分片,基于第二目标分片执行SQL语句。
[0007]在本申请较佳的实施方式中,上述SQL语句的操作类型为查询操作或更新操作;根据第一目标分片的属性标签和SQL语句的操作类型,执行SQL语句的步骤,包括:如果第一目标分片的属性标签为可用,基于第一目标分片执行SQL语句,得到第一执行结果;如果第一
执行结果为空,根据数据库当前状态,确定SQL语句对应的执行策略;当前状态包括:扩容状态或因故障分片导致的缩容状态;如果第一目标分片的属性标签为不可用,将第一目标分片对应的下一个属性标签为可用的分片作为第三目标分片,基于第三目标分片执行SQL语句。
[0008]在本申请较佳的实施方式中,上述根据数据库当前状态,确定SQL语句对应的执行策略的步骤,包括:如果数据库当前状态为扩容状态,获取数据库扩容前的历史分片数量,根据SQL语句的分片键和历史分片数量,确定第四目标分片,基于第四目标分片执行SQL语句;如果数据库当前状态为缩容状态,将第一目标分片对应的下一个属性标签为可用的分片作为第五目标分片,基于第五目标分片执行SQL语句。
[0009]在本申请较佳的实施方式中,在上述基于第三目标分片执行SQL语句的步骤之后,还包括:获取基于第三目标分片执行SQL语句得到的第二执行结果;如果第二执行结果为空,根据SQL语句的操作类型执行对应的策略。
[0010]在本申请较佳的实施方式中,上述根据SQL语句的操作类型执行对应的策略的步骤,包括:如果SQL语句的操作类型为查询操作,返回第一指定错误码;如果SQL语句的操作类型为更新操作,返回第二指定错误码,并将SQL语句添加至故障表中。
[0011]在本申请较佳的实施方式中,上述方法还包括:在检测到第一目标分片的属性标签由不可用恢复为可用时,重新执行第一指定错误码对应的SQL语句,并基于第二指定错误码重新执行故障表中对应的SQL语句。
[0012]第二方面,本申请实施例还提供一种分布式数据库中SQL语句的处理装置,装置应用于应用服务器,服务器中的数据库分片对应有属性标签;属性标签包括:可用或不可用;装置包括:语句获取模块,用于获取待执行的SQL语句;SQL语句携带有分片键和操作类型;操作类型包括:新增操作、更新操作或查询操作;分片确定模块,用于根据分片键和当前分片数量,确定SQL语句对应的第一目标分片;语句执行模块,用于根据第一目标分片的属性标签和SQL语句的操作类型,执行SQL语句。
[0013]第三方面,本申请实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现上述第一方面所述的方法。
[0014]第四方面,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述第一方面所述的方法。
[0015]本申请实施例提供的一种分布式数据库中SQL语句的处理方法、装置及电子设备中,方法应用于应用服务器,服务器中的数据库分片对应有属性标签;属性标签包括:可用或不可用;本申请实施例在获取到待执行的SQL语句后,能够首先根据SQL语句携带有分片键和当前分片数量,确定SQL语句对应的第一目标分片;然后再根据第一目标分片的属性标签和SQL语句中携带的操作类型,执行SQL语句。即本申请实施例在接收到待执行的SQL语句时,可以根据分片的不同属性标签和SQL语句的不同的操作类型,对SQL语句进行不同的操作,因此,无论是在数据库增加分片扩容的情况下,还是在出现分片故障导致数据库缩容的情况下,均不需要进行数据迁移和重新分片,能够保证数据处理的一致性,满足金融服务的需求。
附图说明
[0016]为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0017]图1为本申请实施例提供的一种分布式数据库中SQL语句的处理方法的流程图;
[0018]图2为本申请实施例提供的另一种分布式数据库中SQL语句的处理方法的流程图;
[0019]图3为本申请实施例提供的一种扩容状态下的处理方法的示意图;
[0020]图4为本申请实施例提供的一种分布式数据库中SQL语句的处理装置的结构框图;
[0021]图5为本申请实施例提供的一种电子设备的结构示本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式数据库中SQL语句的处理方法,其特征在于,所述方法应用于应用服务器,所述服务器中的数据库分片对应有属性标签;所述属性标签包括:可用或不可用;所述方法包括:获取待执行的SQL语句;所述SQL语句携带有分片键和操作类型;所述操作类型包括:新增操作、更新操作或查询操作;根据所述分片键和当前分片数量,确定所述SQL语句对应的第一目标分片;根据所述第一目标分片的属性标签和所述SQL语句的操作类型,执行所述SQL语句。2.根据权利要求1所述的方法,其特征在于,所述SQL语句的操作类型为新增操作;根据所述第一目标分片的属性标签和所述SQL语句的操作类型,执行所述SQL语句的步骤,包括:如果所述第一目标分片的属性标签为可用,基于所述第一目标分片执行所述SQL语句;如果所述第一目标分片的属性标签为不可用,按照分片标识顺序查找下一个属性标签为可用的第二目标分片,基于所述第二目标分片执行所述SQL语句。3.根据权利要求1所述的方法,其特征在于,所述SQL语句的操作类型为查询操作或更新操作;根据所述第一目标分片的属性标签和所述SQL语句的操作类型,执行所述SQL语句的步骤,包括:如果所述第一目标分片的属性标签为可用,基于所述第一目标分片执行所述SQL语句,得到第一执行结果;如果所述第一执行结果为空,根据数据库当前状态,确定所述SQL语句对应的执行策略;所述当前状态包括:扩容状态或因故障分片导致的缩容状态;如果所述第一目标分片的属性标签为不可用,将所述第一目标分片对应的下一个属性标签为可用的分片作为第三目标分片,基于所述第三目标分片执行所述SQL语句。4.根据权利要求3所述的方法,其特征在于,根据数据库当前状态,确定所述SQL语句对应的执行策略的步骤,包括:如果所述数据库当前状态为扩容状态,获取数据库扩容前的历史分片数量,根据所述SQL语句的分片键和所述历史分片数量,确定第四目标分片,基于所述第四目标分片执行所述SQL语句;如果所述数据库当前状态为缩容状态,将所述第...

【专利技术属性】
技术研发人员:许凯
申请(专利权)人:平安银行股份有限公司
类型:发明
国别省市:

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

1