一种基于分库分表实现动态分库的方法及系统技术方案

技术编号:38004851 阅读:8 留言:0更新日期:2023-06-30 10:20
本发明专利技术揭示了一种基于分库分表实现动态分库的方法,包括如下步骤:S100、确认分库维度:根据来源订单的数据量及数据分库情况,确认分库维度;S200、确认分库对象:根据来源订单的数据分布情况确认需要分库的数据表;S300、确认分库策略:根据需分库的数据表的数据分布情况和分库维度为其分配相适应的分库策略并分库;S400、配置分库路由:计算获取对应分库数后将分库数进行路由。本发明专利技术还揭示了一种基于分库分表实现动态分库的系统。本发明专利技术实现了对多变化的业务场景进行多维度分库策略的动态设置,从而实现了数据均匀分布,保障了系统的读写性能。读写性能。读写性能。

【技术实现步骤摘要】
一种基于分库分表实现动态分库的方法及系统


[0001]本专利技术涉及大数据处理
,特别是涉及一种基于分库分表实现动态分库的方法及系统。

技术介绍

[0002]目前的大部分中大型中台项目中,一旦遇到数据量比较大,就需要对数据进行拆分,一般有垂直和水平两种。垂直拆分一般从业务角度出发将原单库拆分多个库;数据结构保持一致,数据根据不同的分库维度存储到不同的库中,水平拆分是将大数据拆分至多张表中,以缓解数据读写压力。
[0003]目前分库分表方案主要是基于垂直拆分的原理进行设计,常用的分库策略方案主要有:哈希(hash)取模、数值取模、枚举、时间区间的策略方案。哈希(hash)取模方案,就是对指定的字段key(如:ID)对设置特定的取模数进行hash取模,数据可以均匀分配并存放到多个库中;数值(hash)取模方案,就是对指定的字段key(如:ID)对设置特定的取模数进行数值取模,保障数据可以均匀分配并存放到多个库中;枚举取模方案,就是对指定的字段key(如:币种)进行枚举列表,设置固定值设置到固定的分库名中,保障数据可以均匀分配并存放到多个库中;时间区间方案,就是对指定的字段key(如:创建日期、订单日期)进行区间分组处理,将不同区间设置到固定的分库名中,保障数据可以均匀分配并存放到多个库中。
[0004]上述虽然提供了多种分库策略和方案,但是由于项目上的数据分布的多样性,和数据策略的不确定性,业务的不确定性,经常性会导致面临着分库不均,分库策略难选择的问题。

技术实现思路

[0005]本专利技术的目的在于,提供一种基于分库分表实现动态分库的方法及系统,以实现对多变化的业务场景进行多维度分库策略的动态设置,从而实现数据均匀分布,保障系统的读写性能。
[0006]为解决上述技术问题,本专利技术提供一种基于分库分表实现动态分库的方法,包括如下步骤:
[0007]S100、确认分库维度:根据来源订单的数据量及数据分库情况,确认分库维度;
[0008]S200、确认分库对象:根据来源订单的数据分布情况确认需要分库的数据表;
[0009]S300、确认分库策略:根据需分库的数据表的数据分布情况和分库维度为其分配相适应的分库策略并分库;
[0010]S400、配置分库路由:计算获取对应分库数后将分库数进行路由。
[0011]进一步的,在步骤S300中,所述分库策略至少包括取模、枚举和区间三种方式中的一种。
[0012]进一步的,在步骤S400中,所述计算获取分库数的具体操作步骤为:
[0013]S401、根据对分库字段的排列组合进行计算得到具体的分库值;
[0014]S402、将具体的分库值存储到具体分库结果字段上;
[0015]S403、将分库结果字段定位到具体的分库。
[0016]进一步的,在步骤S400中,所述分库数的路由具体步骤为:基于传统的分库分表中间件,将分库数路由至对应的物理库。
[0017]本专利技术还提供一种基于分库分表实现动态分库的系统,包括:
[0018]维度配置模块:用于进行分库维度的识别及整合配置;
[0019]对象识别模块:用于进行需分库数据表的确认;
[0020]策略配置模块:用于对需分库数据表进行分库策略的配置;
[0021]路由配置模块:用于进行分库数的计算及对分库数进行路由。
[0022]进一步的,所述维度配置模块包括维度识别单元以及维度整合单元,所述维度识别单元用于将数据表中的维度进行识别,所述维度整合单元用于将识别的维度进行组合扩展。
[0023]进一步的,所述策略配置模块包括取模单元、枚举单元以及区间单元,所述取模单元用于对需分库数据表进行取模策略的配置;所述枚举单元用于对需分库数据表进行枚举策略的配置,所述区间单元用于对需分库数据表进行区间策略返的配置。
[0024]进一步的,所述路由配置模块包括分库数计算单元以及分库数路由单元,所述分库数计算单元用于进行分库数的计算,所述分库数路由单元用于将分库数路由至对应的物理库。
[0025]相比于现有技术,本专利技术至少具有以下有益效果:
[0026]本专利技术提供的基于分库分表实现动态分库的方法及系统实现了对多变化的业务场景进行多维度组合分库策略的动态设置,从而实现了数据均匀分布,保障了系统的读写性能。
附图说明
[0027]图1为本专利技术基于分库分表实现动态分库的系统结构框图;
[0028]图2为本专利技术于基于分库分表实现动态分库的方法流程图。
具体实施方式
[0029]下面将结合示意图对本专利技术的基于分库分表实现动态分库的方法及系统进行更详细的描述,其中表示了本专利技术的优选实施例,应该理解本领域技术人员可以修改在此描述的本专利技术,而仍然实现本专利技术的有利效果。因此,下列描述应当被理解为对于本领域技术人员的广泛知道,而并不作为对本专利技术的限制。
[0030]在下列段落中参照附图以举例方式更具体地描述本专利技术。根据下面说明和权利要求书,本专利技术的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本专利技术实施例的目的。
[0031]如图1所示,本专利技术实施例提出了一种基于分库分表实现动态分库的系统,包括:
[0032]维度配置模块:用于进行分库维度的识别及整合配置;
[0033]对象识别模块:用于进行需分库数据表的确认;
[0034]策略配置模块:用于对需分库数据表进行分库策略的配置;
[0035]路由配置模块:用于进行分库数的计算及对分库数进行路由。
[0036]所述维度配置模块包括维度识别单元以及维度整合单元,所述维度识别单元用于将数据表中的维度进行识别,所述维度整合单元用于将识别的维度进行组合扩展。
[0037]所述策略配置模块包括取模单元、枚举单元以及区间单元,所述取模单元用于对需分库数据表进行取模策略的配置;所述枚举单元用于对需分库数据表进行枚举策略的配置,所述区间单元用于对需分库数据表进行区间策略返的配置。
[0038]所述路由配置模块包括分库数计算单元以及分库数路由单元,所述分库数计算单元用于进行分库数的计算,所述分库数路由单元用于将分库数路由至对应的物理库。
[0039]如图2所示,本专利技术实施例还提出了一种基于分库分表实现动态分库的方法,包括如下步骤:
[0040]S100、确认分库维度:根据来源订单的数据量及数据分库情况,确认分库维度;
[0041]具体的,维度识别模块接受来源订单,维度识别单元对来源订单的每个数据表进行识别,以确认每个数据表所包含的维度,如确认某一数据表的维度为公司、币种和期间三个维度,同时根据业务实际场景可通过维度识别单元识别的维度可利用维度整合单元进行维度的整合扩展,比如在一个业务场景下,按照币种进行枚举分库,发现用人名币的业务增长顺序,单个维护的枚举无法满足需求,这是就可以根据维度扩展的方式,将按照本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于分库分表实现动态分库的方法,其特征在于,包括如下步骤:S100、确认分库维度:根据来源订单的数据量及数据分库情况,确认分库维度;S200、确认分库对象:根据来源订单的数据分布情况确认需要分库的数据表;S300、确认分库策略:根据需分库的数据表的数据分布情况和分库维度为其分配相适应的分库策略并分库;S400、配置分库路由:计算获取对应分库数后将分库数进行路由。2.如权利要求1所述的基于分库分表实现动态分库的方法,其特征在于,在步骤S300中,所述分库策略至少包括取模、枚举和区间三种方式中的一种。3.如权利要求1所述的基于分库分表实现动态分库的方法,其特征在于,在步骤S400中,所述计算获取分库数的具体操作步骤为:S401、根据对分库字段的排列组合进行计算得到具体的分库值;S402、将具体的分库值存储到具体分库结果字段上;S403、将分库结果字段定位到具体的分库。4.如权利要求1所述的基于分库分表实现动态分库的方法,其特征在于,在步骤S400中,所述分库数的路由具体步骤为:基于传统的分库分表中间件,将分库数路由至对应的物理库。5....

【专利技术属性】
技术研发人员:田鑫
申请(专利权)人:上海汉得信息技术股份有限公司
类型:发明
国别省市:

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

1