一种数据库分布式方法及装置制造方法及图纸

技术编号:34510622 阅读:25 留言:0更新日期:2022-08-13 20:56
本申请提供一种数据库分布式方法及装置,其中,所述方法包括:获取待处理业务的业务数据;基于所述业务数据,形成带有分库标示的业务流水号;其中,所述带有分库标示的业务流水号包括存储标识,所述存储标识与待存储的数据库一一对应;执行所述业务流水号对应的所述操作指令,获取所述操作指令对应的数据信息,并将所述数据信息存储至所述存储标识对应的数据库。有效提升了数据库的操作性能,同时使得数据查询方便,热点分布均匀;针对一笔业务的所有关联数据都是存放在一个数据库里,保证单笔业务的事务一致性;通过查询库将数据进行汇聚,解决聚合查询需要到多个数据库或表里进行查询的问题,简化查询服务复杂度。简化查询服务复杂度。简化查询服务复杂度。

【技术实现步骤摘要】
一种数据库分布式方法及装置


[0001]本申请涉及数据切分
,尤其涉及一种数据库分布式方法及装置。

技术介绍

[0002]对于关系型数据库而言,在数据量和业务并发量达到一定程度,单数据库无法支撑的时候,有可能是单库已经写满了,也可能数据库读写比较频繁,单机存储容量、连接数、处理能力都有限。当单库的数据量达到一定数量之后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时数据库就会成为整个应用系统的瓶颈,就需要考虑对其进行切分,切分的目的在于减少数据库的负担,增加数据库的处理能力。
[0003]数据库分布式的核心内容就是数据切分(Sharding),以及切分后对数据的定位、整合。数据切分就是将数据分散存储到多个数据库中,使得单一数据库中的数据量变小,通过扩充主机的数量来缓解单一数据库的性能问题,从而达到提升数据库操作性能的目的。
[0004]现有数据切分的方法有很多,但是每一种方法都带来新的技术难题,以现有的分库分表方法来说,存在如下问题:事务一致性问题、应用改造大、查询条件中不带分库标示和数据分布在不同的数据库或表中,导致数据查询复杂、热点数据分布不均。

技术实现思路

[0005]有鉴于此,本申请的目的在于提出一种数据库分布式方法及装置。
[0006]基于上述目的,本申请第一方面提供了一种数据库分布式方法,包括:
[0007]获取待处理业务的业务数据;其中,所述业务数据包括业务流水号,所述业务流水号对应至少一个操作指令;
[0008]基于所述业务数据,形成带有分库标示的业务流水号;其中,所述带有分库标示的业务流水号包括存储标识,所述存储标识与待存储的数据库一一对应;
[0009]执行所述业务流水号对应的所述操作指令,获取所述操作指令对应的数据信息,并将所述数据信息存储至所述存储标识对应的数据库。
[0010]进一步地,所述执行所述业务流水号对应的所述操作指令,获取所述操作指令对应的数据信息,并将所述数据信息存储至所述存储标识对应的数据库,包括:
[0011]依据所述带有分库标示的业务流水号,在所有待存储的数据库中选择与所述存储标识对应的数据库,设定为当前数据库;
[0012]将所述操作指令对应的所述数据信息存储至所述当前数据库。
[0013]进一步地,所述依据所述带有分库标示的业务流水号,在所有待存储的数据库中选择与所述存储标识对应的数据库,设定为当前数据库,包括:
[0014]利用spring框架的Spring AOP面向切面,识别所述带有分库标示的业务流水号中的存储标识;
[0015]基于所述存储标识,在所有所述待存储的数据库中选择与所述存储标识对应的数据库,并将该数据库设定为当前数据库。
[0016]进一步地,所述业务数据还包括业务单证、业务时间、应用账户和/或业务机构。
[0017]进一步地,所述基于所述业务数据,形成带有分库标示的业务流水号,包括:
[0018]依据预设标示规则,将所述业务单证、业务时间、应用账户组合形成所述分库标示;
[0019]将所述分库标示与所述业务流水号组合,形成所述带有分库标示的业务流水号。
[0020]进一步地,在所述执行所述业务流水号对应的所述操作指令,获取所述操作指令对应的数据信息,并将所述数据信息存储至所述存储标识对应的数据库之后,还包括:
[0021]建立查询库,将所有所述当前数据库中的所有数据信息实时同步至所述查询库。
[0022]进一步地,所述建立查询库,将所有所述当前数据库中的所有数据信息实时同步至所述查询库,包括:
[0023]将所有当前数据库中的所有数据信息发送至数据流处理平台;
[0024]所述数据流处理平台对所有当前数据库中的所有数据信息进行合并处理,得到所述查询库。
[0025]进一步地,所述查询库设有多个,多个所述查询库实时同步进行数据信息的存储或修改。
[0026]基于同一专利技术构思,本申请第二方面提供了一种适于批量业务的数据库分布式方法,包括:
[0027]响应于确定获取的所述待处理业务为多个,将多个所述待处理业务依据预设存储规则进行分类,得到多个待处理业务群;
[0028]为每个所述待处理业务群标记存储标识;
[0029]针对每个所述待处理业务群中的每个待处理业务,基于权利要求1至8任一项所述的数据库分布式方法进行存储。
[0030]基于同一专利技术构思,本申请第三方面提供了一种数据库分布式装置,包括:
[0031]获取模块,被配置为:获取待处理业务的业务数据;其中,所述业务数据包括业务流水号,所述业务流水号对应至少一个操作指令;
[0032]标示形成模块,被配置为:基于所述业务数据,形成带有分库标示的业务流水号;其中,所述分库标示包括存储标识,所述存储标识与待存储的数据库一一对应;
[0033]存储模块,被配置为:执行所述业务流水号对应的所述操作指令,获取所述操作指令对应的数据信息,并将所述数据信息存储至所述存储标识对应的数据库。
[0034]从上面所述可以看出,本申请提供的数据库分布式方法及装置,有效提升了数据库的操作性能,同时使得数据查询方便,热点分布均匀;针对一笔业务的所有关联数据信息都是存放在一个数据库里,保证单笔业务的事务一致性;分库实现可以通过框架进行封装,不会侵入到逻辑方法处理里,应用逻辑改造风险较小;通过查询库将数据信息进行汇聚,解决聚合查询需要到多个数据库或表里进行查询的问题,简化查询服务复杂度;数据信息可以动态分配,将热点数据信息均衡分配到各个数据库上,提高应用并发支持能力;对数据库本身的特性依赖较少,适用于目前市场上大多数主流数据库。
附图说明
[0035]为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术
描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0036]图1为本申请实施例的数据库分布式方法的流程示意图;
[0037]图2为本申请实施例的建立查询库的逻辑架构示意图;
[0038]图3为本申请其中一个实施例的逻辑架构示意图;
[0039]图4为本申请实施例的批量处理业务的逻辑架构示意图;
[0040]图5为本申请实施例的数据库分布式装置的结构示意图。
具体实施方式
[0041]为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
[0042]需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库分布式方法,其特征在于,包括:获取待处理业务的业务数据;其中,所述业务数据包括业务流水号,所述业务流水号对应至少一个操作指令;基于所述业务数据,形成带有分库标示的业务流水号;其中,所述带有分库标示的业务流水号包括存储标识,所述存储标识与待存储的数据库一一对应;执行所述业务流水号对应的所述操作指令,获取所述操作指令对应的数据信息,并将所述数据信息存储至所述存储标识对应的数据库。2.根据权利要求1所述的数据库分布式方法,其特征在于,所述执行所述业务流水号对应的所述操作指令,获取所述操作指令对应的数据信息,并将所述数据信息存储至所述存储标识对应的数据库,包括:依据所述带有分库标示的业务流水号,在所有待存储的数据库中选择与所述存储标识对应的数据库,设定为当前数据库;将所述操作指令对应的所述数据信息存储至所述当前数据库。3.根据权利要求2所述的数据库分布式方法,其特征在于,所述依据所述带有分库标示的业务流水号,在所有待存储的数据库中选择与所述存储标识对应的数据库,设定为当前数据库,包括:利用spring框架的Spring AOP面向切面,识别所述带有分库标示的业务流水号中的存储标识;基于所述存储标识,在所有所述待存储的数据库中选择与所述存储标识对应的数据库,并将该数据库设定为当前数据库。4.根据权利要求1所述的数据库分布式方法,其特征在于,所述业务数据还包括业务单证、业务时间、应用账户和/或业务机构。5.根据权利要求4所述的数据库分布式方法,其特征在于,所述基于所述业务数据,形成带有分库标示的业务流水号,包括:依据预设标示规则,将所述业务单证、业务时间、应用账户组合形成所述分库标示;将所述分库标示与所述业务流水号组合,形成...

【专利技术属性】
技术研发人员:丁少正刘海青刘守园邵启洲
申请(专利权)人:中国人寿保险股份有限公司
类型:发明
国别省市:

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

1