基于数据库中间件的分区方法、分区装置和可读存储介质制造方法及图纸

技术编号:24497302 阅读:29 留言:0更新日期:2020-06-13 03:33
本发明专利技术提供了一种基于数据库中间件的分区方法、分区装置和可读存储介质,包括:接收到数据库路由指令,确认数据库中的至少一个数据库节点发生数据阈值倾斜;根据数据阈值的倾斜程度,新建数据库分片实例;根据预先设置的节点重分布规则,将发生数据阈值倾斜的数据库节点中的维度字段进行分配,以使维度字段分布在数据库分片实例中,根据数据库分片实例生成新增数据库节点。通过控制二维,甚至n维分片字段对数据库中的某些数据进行重分布,使数据库各节点负载达到均衡,可以有效的控制数据存储过程中的数据倾斜现象,提高大数据量场景下数据库的性能。

Partition method, partition device and readable storage medium based on Database Middleware

【技术实现步骤摘要】
基于数据库中间件的分区方法、分区装置和可读存储介质
本专利技术涉及数据库中间件
,具体而言,涉及一种基于数据库中间件的分区方法、一种基于数据库中间件的分区装置及一种计算机可读存储介质。
技术介绍
当前主流中间件分片算法主要以Hash(哈希算法)、Range(水平切分)等一维分片算法为主。一维数据划分方法只根据单个属性进行划分,数据划分范围受限制。由于数据库系统经过长时间运行之后,特别是经过大量的插入和删除操作,各节点的数据的分布将不再均衡,各节点的负载会严重失衡,即发生了数据倾斜,如果数据存储分布不合理,将会加大数据操作的响应时间,降低并行数据库的性能。
技术实现思路
本专利技术旨在至少解决现有技术中存在的技术问题之一。为此,本专利技术的第一方面提供了一种基于数据库中间件的分区方法。本专利技术的第二方面提供了一种基于数据库中间件的分区装置。本专利技术的第三方面提供了一种计算机可读存储介质。有鉴于此,根据本专利技术的第一方面,提供了一种基于数据库中间件的分区方法,包括:接收到数据库路由指令,确认数据库中的至少一个数据库节点发生数据阈值倾斜;根据数据阈值的倾斜程度,新建数据库分片实例;根据预先设置的节点重分布规则,将发生数据阈值倾斜的数据库节点中的维度字段进行分配,以使维度字段分布在数据库分片实例中;根据数据库分片实例生成新增数据库节点。本专利技术实施例提供的基于数据库中间件的分区方法,通过判断多个数据库节点负载中存储的数据阈值是否发生倾斜,根据数据阈值的倾斜程度,新建数据库分片实例,从而为需要进行重分布的数据库节点负载提供存放空间,进一步提高大数据量场景下数据库的性能;根据预先设置的节点重分布规则,对数据库节点中发生数据阈值倾斜的维度字段进行重新分配,使重新分配的维度字段分布在扩建后的数据库分片实例中,并根据重分布后的数据库分片实例,生成新增数据库节点,实现对超出均衡负载的数据阈值和对应的字段进行转移,从而使数据库各节点负载达到均衡,可以有效的控制数据存储过程中的数据倾斜现象,可以理解的是,分配后的数据库分片实例,能够生成多个新的数据库节点。本专利技术通过控制二维甚至n维分片字段对数据库中的某些数据进行重分布,使数据库各节点负载达到均衡,可以有效的控制数据存储过程中的数据倾斜现象,提高大数据量场景下数据库的性能。另外,根据本专利技术上述技术方案提供的基于数据库中间件多维分片的方法,还具有如下附加技术特征:在上述技术方案中,进一步地,根据预先设置的节点重分布规则,将发生数据阈值倾斜的数据库节点中的维度字段进行分配,具体包括:获取各个数据库节点中预存的维度字段;根据节点重分布规则中的维度遍历规则,提取维度字段中的维度值,并根据维度值对维度字段进行排序;提取维度字段中对应的数据阈值,确认数据阈值和目标临界数值的大小关系,调取排序后的维度字段;将调取的维度字段分配到新建后的任一数据库分片实例中。在该技术方案中,获取各个数据库节点负载预存的维度字段,根据节点负载重分布规则中的维度遍历规则,提取出维度字段中的维度值,从而便于区分出各个维度的字段和相对应的数据阈值;对维度值进行排序后并提取维度字段中对应的数据阈值,通过匹配数据阈值与目标阈值之间的数量关系,将调取后的维度字段重新分配到新建后的任一数据库分片实例中,进而通过控制多维度字段,对各个数据库节点负载的数据实现重分布,使数据库各节点负载达到均衡,可以有效的控制数据存储过程中的数据倾斜现象,提高大数据量场景下数据库的性能。在上述技术方案中,进一步地,提取维度字段中对应的数据阈值,确认数据阈值和目标临界数值的大小关系,调取排序后的维度字段,具体包括:确认数据阈值小于目标临界数值,根据目标临界数值与数据阈值的差值,从下一个排序后的维度字段对应的数据阈值中调取差值,根据节点重分布规则中的调用规则,调取与差值和数据阈值分别对应的维度字段;确认数据阈值大于等于目标临界数值,根据目标临界数值,从数据阈值中调取目标临界数值,根据节点重分布规则中的调用规则,调取与数据阈值对应的维度字段。在该技术方案中,通过确认数据阈值和目标临界数值之间的数量关系,进而确定调取排序后的维度字段的方法。当数据阈值小于目标临界数值时,说明调取的维度字段的数据阈值量过小,获取数据阈值与目标临界数值之间的差值,还需要从其他的维度字段中调取数据阈值,使该数据阈值与差值相等,从而补足需要分配的数据阈值的数量;根据节点重分布规则中的调用规则,分别对需要分配的数据阈值中的维度字段进行调取,能够理解的是,所调取的维度字段可以存在多个,从而保证调取的数据阈值与目标数据阈值相等,进一步使各个数据库节点负载达到均衡。并且当数据阈值大于等于目标临界数值时,说明调取的维度字段的数据阈值处于饱和状态,只需要从数据阈值中调取与目标临界数值相等的数据量即可;然后根据节点重分布规则中的调用规则,对需要分配的数据阈值中的维度字段进行调取,能够理解的是,所调取的维度字段可以存在一个,从而更进一步保证调取的数据阈值与目标数据阈值相等,使各个数据库节点负载达到均衡,进一步可以有效的控制数据存储过程中的数据倾斜现象,提高大数据量场景下数据库的性能。在上述技术方案中,进一步地,根据数据阈值的倾斜程度,新建数据库分片实例,具体包括:获取倾斜程度的各个比例值,控制数据库中间件内预设的创建规则,为发生数据阈值倾斜的至少一个数据库节点,新建数据库分片实例。在该技术方案中,由于比例值能够反映数据阈值的倾斜程度,通过获取各个数据库节点对应的数据阈值的倾斜程度,控制数据库中间件内预设的创建规则,统计各个发生数据阈值倾斜的数据库节点,根据倾斜程度,新建数据库分片实例,用于负载各个发生数据倾斜的数据库节点中对应的数据阈值,能够针对解决数据量较大需要进行数据库扩容的情景,从而扩展了数据库集群中的数据库分片节点实例。在上述技术方案中,进一步地,接收到数据库路由指令,确认数据库中的至少一个数据库节点发生数据阈值倾斜,具体包括:统计各个数据库节点内放置的维度字段和与维度字段对应的数据阈值;从数据阈值中筛选出最小的数据阈值,并确定为目标临界数据;根据目标临界数据,查找超过目标临界数据的至少一个数据库节点;对各个超过的数据库节点内存放的数据阈值分别进行计算,以得到对应的数据阈值的倾斜程度。在该技术方案中,通过统计维度字段和维度字段对应的数据阈值,从而准确获知各个数据库节点的实际阈值量;然后从数据阈值中筛选出最小的数据阈值,以此作为目标临界数据,从而能够作为均衡数据库节点负载的基准;根据目标临界数据,查找出超过目标临界数据的数据库节点,可以说明的是,查找出的数据库节点可以存在多个,然后对查找出的数据库节点上的数据阈值进行计算,进而通过计算结果得到各个发生数据倾斜的数据库节点对应的倾斜程度,从而可以有效的控制数据存储过程中的数据倾斜现象。在上述技术方案中,进一步地,获取倾斜程度的各个比例值,控制数据库中间件内预设的创建规则,具体包括:根据创建规则,统计各个比例值的数量;根据数量,确定数据库分片实例的扩建个数。本文档来自技高网...

【技术保护点】
1.一种基于数据库中间件的分区方法,其特征在于,包括:/n接收到数据库路由指令,确认数据库中的至少一个数据库节点发生数据阈值倾斜;/n根据数据阈值的倾斜程度,新建数据库分片实例;/n根据预先设置的节点重分布规则,将所述发生数据阈值倾斜的所述数据库节点中的维度字段进行分配,以使所述维度字段分布在所述数据库分片实例中;/n根据所述数据库分片实例生成新增数据库节点。/n

【技术特征摘要】
1.一种基于数据库中间件的分区方法,其特征在于,包括:
接收到数据库路由指令,确认数据库中的至少一个数据库节点发生数据阈值倾斜;
根据数据阈值的倾斜程度,新建数据库分片实例;
根据预先设置的节点重分布规则,将所述发生数据阈值倾斜的所述数据库节点中的维度字段进行分配,以使所述维度字段分布在所述数据库分片实例中;
根据所述数据库分片实例生成新增数据库节点。


2.根据权利要求1所述的基于数据库中间件的分区方法,其特征在于,所述根据预先设置的节点重分布规则,将所述发生数据阈值倾斜的所述数据库节点中的维度字段进行分配,具体包括:
获取各个所述数据库节点中预存的所述维度字段;
根据所述节点重分布规则中的维度遍历规则,提取所述维度字段中的维度值,并根据所述维度值对所述维度字段进行排序;
提取所述维度字段中对应的所述数据阈值,确认所述数据阈值和目标临界数值的大小关系,调取排序后的所述维度字段;
将所述调取的所述维度字段分配到新建后的任一所述数据库分片实例中。


3.根据权利要求2所述的基于数据库中间件的分区方法,其特征在于,所述提取所述维度字段中对应的所述数据阈值,确认所述数据阈值和目标临界数值的大小关系,调取排序后的所述维度字段,具体包括:
确认所述数据阈值小于所述目标临界数值,根据所述目标临界数值与所述数据阈值的差值,从下一个排序后的所述维度字段对应的所述数据阈值中调取所述差值,根据所述节点重分布规则中的调用规则,调取与所述差值和所述数据阈值分别对应的所述维度字段;
确认所述数据阈值大于等于所述目标临界数值,根据所述目标临界数值,从所述数据阈值中调取所述目标临界数值,根据所述节点重分布规则中的调用规则,调取与所述数据阈值对应的所述维度字段。


4.根据权利要求1至3中任一项所述的基于数据库中间件的分区方法,其特征在于,所述根据数据阈值的倾斜程度,新建数据库分片实例,具体包括:
获取所述倾斜程度的各个比例值,控制所述数据库中间件内预设的创建规则,为发生所述数据阈值倾斜的至少一个所述数据库节点,新建所述数据库分片实例。


5.根据...

【专利技术属性】
技术研发人员:冯光武
申请(专利权)人:北大方正集团有限公司北京北大方正电子有限公司
类型:发明
国别省市:北京;11

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

1