一种逻辑自定义的动态路由数据库数据存储方法技术

技术编号:36342883 阅读:12 留言:0更新日期:2023-01-14 17:56
本发明专利技术公开了一种逻辑自定义的动态路由数据库数据存储方法,运行在集群服务器,方法包括:获取广播至集群内的分库分表逻辑;获取待修改的分库分表数据;根据分库分表逻辑确定分库分表数据中执行水平分表的字段和执行垂直分表的字段,并对分库分表数据执行分表操作;根据分库分表逻辑确定新建表存储库逻辑,并根据新建表存储库逻辑生成路由表信息并创建库实体表;根据分库分表逻辑确定库表转储逻辑,并根据库表转储逻辑将历史表数据转储。本发明专利技术在无需借助第三方工具情况下,最大限度解决数据库性能瓶颈问题,实现集群服务器数据的动态路由存储以及查询,且可实现动态修改分库分表数据。分表数据。分表数据。

【技术实现步骤摘要】
一种逻辑自定义的动态路由数据库数据存储方法


[0001]本专利技术属于数据库存储
,具体涉及一种逻辑自定义的动态路由数据库数据存储方法。

技术介绍

[0002]软件系统的数据库中很多数据是随着时间的推移而不断增加的,这种数据统称为具有时间属性的数据。当系统持续运行时,其持久产生的大量数据很容易导致数据处理的能力下降,数据的增删改查操作的开销也会越来越大,最终导致数据库出现性能瓶颈。从硬件设备的角度来看,数据库性能瓶颈主要体现在CPU、内存、磁盘资源紧张,要解决数据库性能瓶颈,最简单粗暴的办法可以是提高设备的性能,通过这种操作可短时间内进行临时性解决,但从长远来看,这种解决办法并不能从根本上解决问题,因此最终还是需要通过分库分表动态路由存储以及数据归档进行解决。
[0003]分库分表是常见的解决数据库性能瓶颈主要手段,具体可以通过垂直切分或水平切分。垂直切分主要是基于表或字段划分,表结构不同,将单表拆分成多个表,再根据业务数据将多个表拆分到多个库。水平切分主要是基于数据划分,相同的表结构,数据不同,将数据按照某一特性拆分到多个表中。
[0004]现有较多的分库分表方案,例如:申请号为CN202210188567.0的中国专利文献,其公开了一种多租户场景下的应用系统分库分表方法及装置,又如申请号为CN202210506961.4的中国专利文献,其公开了一种分库分表路由方法及系统。现有分库分表方案主要是服务器通过第三方缓存服务器获取相关的分库分表逻辑,或者直接通过硬编码固定分库分表逻辑,将数据存储到多个表或者多个库之中,以达到将分库分表方案。显然,现有的分库分表方案存在以下缺陷:
[0005]1)需要借助第三方缓存服务器或者硬编码分库分表逻辑;
[0006]2)进行数据分表时未考率数据库的使用率或者空间剩余情况;
[0007]3)未考虑历史数据的归档问题;
[0008]4)未考虑到修改分库分表逻辑后,历史数据的查询问题。

技术实现思路

[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]若为用户字段,则水平分表的范围为按照用户ID每间隔预设范围;
[0034]若为时间字段,则水平分表的范围为按照时间每间隔预设小时;
[0035]若为地区字段,则水平分表的范围为地区取hash后除余所得。
[0036]作为优选,所述库实体表的表名称含有年、月、日和时信息。
[0037]本专利技术提供的一种逻辑自定义的动态路由数据库数据存储方法,通过数据库消息队列将路由数据缓存到集群内每一台服务中,解决三方缓存服务器,通过周期性任务创建路由表数据以及归档历史表数据,通过动态路由表存储按照字段水平分割以及垂直分割的
表库路由数据。
附图说明
[0038]图1为本专利技术的逻辑自定义的动态路由数据库数据存储方法的流程图;
[0039]图2为本专利技术用户通过可操作的配置界面生成分库分表逻辑的一种实施例流程图;
[0040]图3为本专利技术新建表流程图;
[0041]图4为本专利技术转储流程图。
具体实施方式
[0042]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0043]除非另有定义,本文所使用的所有的技术和科学术语与属于本专利技术的
的技术人员通常理解的含义相同。本文中在本专利技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是在于限制本专利技术。
[0044]为了克服现有技术中存在的分库分表缺陷,本实施例提供一种逻辑自定义的动态路由数据库数据存储方法,基于水平拆分以及垂直拆分的基础之上再根据数据库空间使用率按照时间属性进行数据动态均衡存储。
[0045]如图1所示,本实施例的逻辑自定义的动态路由数据库数据存储方法,包括以下步骤:
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种逻辑自定义的动态路由数据库数据存储方法,运行在集群服务器,其特征在于,所述逻辑自定义的动态路由数据库数据存储方法,包括:获取广播至集群内的分库分表逻辑;获取待修改的分库分表数据;根据所述分库分表逻辑确定分库分表数据中执行水平分表的字段和执行垂直分表的字段,并对分库分表数据执行分表操作;根据所述分库分表逻辑确定新建表存储库逻辑,并根据所述新建表存储库逻辑生成路由表信息并创建库实体表;根据所述分库分表逻辑确定库表转储逻辑,并根据所述库表转储逻辑将历史表数据转储。2.如权利要求1所述的逻辑自定义的动态路由数据库数据存储方法,其特征在于,所述新建表存储库逻辑包括按照数据库剩余率创建、按照数据库剩余空间创建和在指定数据库内创建。3.如权利要求1所述的逻辑自定义的动态路由数据库数据存储方法,其特征在于,所述库表转储逻辑包括按照数据库剩余率转储和按照表数据时间转储。4.如权利要求3所述的逻辑自定义的动态路由数据库数据存储方法,其特征在于,所述根据所述分库分表逻辑确定库表转储逻辑,并根据所述库表转储逻辑将历史表数据转储至文件形式,包括:周期性检查库表转储逻辑;若为按照数据库剩余率转储且到达剩余率阈值,则触发剩余率由远及近的历史表数据进行转储;若为按照表数据时间转储且到达时间范围内,则将该时间段内的历史表数据进行转储;根据所述分库分表逻辑将历史表数据转储成相应的文件或者转储到所配置的其他数据库。5.如权利...

【专利技术属性】
技术研发人员:武胜
申请(专利权)人:中国电子科技南湖研究院
类型:发明
国别省市:

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

1