一种数据处理方法、装置、设备以及存储介质与流程
未命名
10-19
阅读:133
评论:0
1.本发明涉及分布式数据库数据分区领域,尤其涉及一种数据处理方法、装置、设备以及存储介质。
背景技术:
2.分布式数据库是指数据在物理上分布而在逻辑上集中管理的数据库系统。分布式数据库具有透明性、数据冗余性和易扩展性。对于分布式数据库,分发键值分布不均会引起查询动作分布不均,导致某些节点的负载过重,分布式数据库系统性能下降,自动在线数据重分布对分布式数据库具有重要意义。
3.因此,如何全面准确的对分布式数据库各分片的数据进行监控,精准检测数据倾斜情况,及时进行数据重分布,为数据库运维提供有力支撑,是目前亟待解决的问题。
技术实现要素:
4.本发明提供了一种数据处理方法、装置、设备以及存储介质,可以全面准确的对分布式数据库各分片的数据进行监控,精准检测数据倾斜情况,及时进行数据重分布,为数据库运维提供有力支撑。
5.根据本发明的一方面,提供了一种数据处理方法,包括:
6.在对分布式数据库各分片监控的过程中,根据候选表在各分片上的记录数,初步确定是否存在数据倾斜;
7.若是,则从候选表中确定出满足预设监控条件的目标表,并向存储有目标表的候选分片发送对目标表的目标操作指令;
8.根据各候选分片的响应时间,确定监控分片,并根据对各监控分片的慢sql现象的监控结果,在最终确定存在数据倾斜的情况下,进行数据重分布。
9.根据本发明的另一方面,提供了一种数据处理装置,包括:
10.确定模块,用于在对分布式数据库各分片监控的过程中,根据候选表在各分片上的记录数,初步确定是否存在数据倾斜;
11.发送模块,用于若是,则从候选表中确定出满足预设监控条件的目标表,并向存储有目标表的候选分片发送对目标表的目标操作指令;
12.重分布模块,用于根据各候选分片的响应时间,确定监控分片,并根据对各监控分片的慢sql现象的监控结果,在最终确定存在数据倾斜的情况下,进行数据重分布。
13.根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
14.至少一个处理器;以及
15.与所述至少一个处理器通信连接的存储器;其中,
16.所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的数据处理方法。
17.根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的数据处理方法。
18.本发明实施例的技术方案,在对分布式数据库各分片监控的过程中,根据候选表在各分片上的记录数,初步确定是否存在数据倾斜;若是,则从候选表中确定出满足预设监控条件的目标表,并向存储有目标表的候选分片发送对目标表的目标操作指令;根据各候选分片的响应时间,确定监控分片,并根据对各监控分片的慢sql现象的监控结果,在最终确定存在数据倾斜的情况下,进行数据重分布。通过这样的方式,可以全面准确的对分布式数据库各分片的数据进行监控,精准检测数据倾斜情况,及时进行数据重分布,为数据库运维提供有力支撑。
19.应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
20.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1是本发明实施例一提供的一种数据处理方法的流程图;
22.图2a是本发明实施例二提供的分布式数据库自动重分布系统结构图;
23.图2b是本发明实施例二提供的自动重分布方法的流程示意图;
24.图3是本发明实施例三提供的一种数据处理装置的结构框图;
25.图4是本发明实施例四提供的电子设备的结构示意图。
具体实施方式
26.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
27.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“目标”、“候选”、“备选”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
28.需要说明的是,分布式数据库分发键值分布不均会引起查询动作分布不均,导致某些节点的负载过重,所以需要进行在线数据重分布,另外,若检测到分布式网络下的分片
服务器容量和性能达到瓶颈,则需要对分布式数据库进行扩容。本发明提出的基于分片记录数和慢sql耗时的自动数据重分布检测方案,可以在进行扩容(如增加分布式数据库的数据节点,以增加分布式数据库的处理能力)的过程中,结合多维度信息,监测数据的分布情况,若检测到数据分布不均,即确定发生数据存储倾斜,则触发分布式数据库的数据重分布功能,进行数据的搬迁移动,调整数据分布,实现在线数据重分布,具体实现过程将在后续实施例进行详细介绍。
29.实施例一
30.图1是本发明实施例一提供的一种数据处理方法的流程图;本实施例可应用于golden-db分布式数据库的自动化运维场景,可适用于对分布式数据库各分片数据进行监控,在检测到数据倾斜时进行数据重分布的情况,该方法可以由数据处理装置来执行,该数据处理装置可以采用硬件和/或软件的形式实现,该数据处理装置可配置于电子设备中,如分布式数据库中,由分布式数据库自动重分布系统执行。如图1所示,该数据处理方法包括:
31.s101、在对分布式数据库各分片监控的过程中,根据候选表在各分片上的记录数,初步确定是否存在数据倾斜。
32.其中,分片是指分布式数据库的各分片对应的分片服务器。每个分片上均存储有至少两个候选表,候选表用于对分布式数据库的数据进行存储。记录数是指候选表在分片上记录存储的数据的数量。数据倾斜是指不同分片上存储数据量的偏差较大。
33.可选的,可以开启分布式数据库的表空间监控和慢sql(structured query language,结构化查询语言)采集,实时地获取分布式数据库各分片上候选表的记录数。
34.可选的,初步确定是否存在数据倾斜,包括:在对分布式数据库各分片监控的过程中,统计确定候选表在各分片上的记录数;根据候选表在各分片上的记录数,若候选表中存在满足预设监控条件的目标表,则初步确定存在数据倾斜。
35.示例性的,统计确定候选表在各分片上的记录数之后,可以基于如下计算公式,确定各分片上的记录数的标准差占候选表总记录数的标准差百分比si:
[0036][0037]
其中,si为标准差占表总记录数的标准差百分比,n为分片个数,xn为第表i在第n个分片上总记录数,为第i个候选表在全部n个分片上总记录数的均值,为标准差,反映数据在各分片的离散程度,s
sum
为表的总行数。
[0038]
可选的,确定各分片上的记录数的标准差占候选表总记录数的标准差百分比之后,可以确定标准差百分比与预设百分比阈值范围的关系,若候选表的标准差百分比不处于预设百分比阈值范围内,则可以确定该候选表为目标表,即候选表中存在满足预设监控条件的目标表,此时可以初步确定存在数据倾斜。
[0039]
需要说明的是,当数据在各分片上的离散度持续偏大,则可能导致个别分片压力偏大,从而拉低分布式数据库的整体性能,通过标准差阈值初步输出存在数据倾斜的表,可以有效提高数据倾斜检测的效率。
[0040]
s102、若是,则从候选表中确定出满足预设监控条件的目标表,并向存储有目标表
的候选分片发送对目标表的目标操作指令。
[0041]
其中,预设监控条件可以是候选表的标准差百分比是否处于预设百分比阈值范围内。目标操作指令可以是指预设的对各目标表进行数据查询操作的指令。
[0042]
可选的,从候选表中确定满足预设监控条件的目标表,包括:在对分布式数据库各分片监控的过程中,周期性地获取候选表在各分片上记录数,并根据记录数,计算标准差百分比;将标准差百分比满足预设监控条件的候选表确定为目标表。
[0043]
可选的,可以按表查询各分片上最新的记录数,计算同一候选表在不同分片上记录数的标准差,以及该标准差占表总记录数的百分比,以确定标准差百分比。
[0044]
需要说明的是,在执行s101步骤初步确定存在数据倾斜之后,可以直接将执行s101步骤时判断确定的目标表作为满足预设监控条件的目标表,即从候选表中确定出满足预设监控条件的目标表。
[0045]
可选的,从候选表中确定出满足预设监控条件的目标表之后,还可以将目标表进行缓存记录,以便于后续针对该初步数据倾斜判断时认为有问题需要监控的目标表对应的分片进行慢sql现象的分析,进一步确定数据倾斜的情况。
[0046]
s103、根据各候选分片的响应时间,确定监控分片,并根据对各监控分片的慢sql现象的监控结果,在最终确定存在数据倾斜的情况下,进行数据重分布。
[0047]
其中,监控分片是指响应时间大于预设的时间阈值的候选分片。慢sql现象是指监控分片对目标操作指令响应过慢的现象,具体可以是监控分片的响应时间大于预设的时间阈值的现象。
[0048]
可选的,根据各候选分片的响应时间,确定监控分片,包括:根据各候选分片的响应时间,从候选分片中确定出存在慢sql现象的目标分片,并将目标分片上包含的目标表确定为监控表;将存储有该监控表的目标分片,确定为各监控表对应的监控分片。
[0049]
可选的,根据各候选分片的响应时间,从候选分片中确定出存在慢sql现象的目标分片,包括:若候选分片的响应时间大于预设的时间阈值,则确定该候选分片存在慢sql现象。
[0050]
需要说明的是,引起慢sql的原因很多,数据倾斜引发的慢sql有个明显的特征:不同分片上查询耗时存在显著差异,利用这个特征统计表在各分片上的查询耗时,同时只会统计初步数据倾斜判断时认为有问题需要监控的目标表,即缓存中有记录的表。
[0051]
可选的,在根据对各监控分片的慢sql现象的监控结果,在最终确定存在数据倾斜的情况下,进行数据重分布之前,还可以先对各监控分片的慢sql现象进行监控,生成各监控分片的慢sql现象的监控结果,相应的,生成对各监控分片的慢sql现象的监控结果,包括:基于预设的周期,向各监控分片发送对监控表的监控操作指令;根据各监控分片对监控操作指令的响应时间,分别确定监控分片是否存在慢sql现象;根据存在慢sql现象的监控分片的数量,生成对各监控分片的慢sql现象的监控结果。其中,监控操作指令是指对监控表的查询操作指令。
[0052]
可选的,根据对各监控分片的慢sql现象的监控结果,在最终确定存在数据倾斜的情况下,进行数据重分布,包括:根据各监控分片的慢sql现象的监控结果,若存在部分监控分片出现慢sql现象,则最终确定存在数据倾斜;触发分布式数据库的数据重分布功能,进行数据的搬迁移动,调整数据分布,实现在线数据重分布。
[0053]
需要说明的是,若所有监控分片都出现慢sql现象,则可以不执行进行数据重分布的操作。
[0054]
需要说明的是,鉴于分布式数据库数据分布状态动态变化的特性,基于分片记录数、慢sql耗时等信息,加入时间维度,避免突发异常情况的对判断结果的影响,以提高数据重分布检测结果的准确性。
[0055]
需要说明的是,执行步骤s101之后,会把目标表的表名和分片记录数标准差记录到缓存里,以便于步骤s103时从缓存里取出表名,结合慢sql信息,找出仅在部分分片上出现慢sql的表,且此现象持续一定时间长度,则可判定该表数据分布不均,需要进行数据重分布。
[0056]
可选的,开始表空间监控之后(也就是开始对分布式数据库各分片监控之后),可以周期性的采集各分片的记录数计算标准差百分比,若初步确定可能存在数据倾斜,则继续监测一段时间,看是否仍存在数据倾斜,若是,则即使没有慢sql信息,也控制分布式数据库进行数据重分布。这种现象的原因是在最近时间段内,各分片上的业务量偏小,当业务量增加那么数据分布不均的影响会愈加显示出来,所以更稳妥的办法提前把数据分布不均的问题解决,上述实施方式可以有效解决上述问题。
[0057]
本发明实施例的技术方案,在对分布式数据库各分片监控的过程中,根据候选表在各分片上的记录数,初步确定是否存在数据倾斜;若是,则从候选表中确定出满足预设监控条件的目标表,并向存储有目标表的候选分片发送对目标表的目标操作指令;根据各候选分片的响应时间,确定监控分片,并根据对各监控分片的慢sql现象的监控结果,在最终确定存在数据倾斜的情况下,进行数据重分布。通过这样的方式,可以全面准确的对分布式数据库各分片的数据进行监控,精准检测数据倾斜情况,及时进行数据重分布,为数据库运维提供有力支撑。
[0058]
实施例二
[0059]
图2a是本发明实施例二提供的分布式数据库自动重分布系统结构图;图2b是本发明实施例二提供的自动重分布方法的流程示意图;本实施例在上述实施例的基础上,提出了对分布式数据库的各分片进行监控以在数据倾斜时及时进行数据重分布的优选实例。
[0060]
如图2a所示,本发明提供的分布式数据库自动重分布系统可以包括:采集模块、分析模块、判别模块以及输出模块。
[0061]
其中,采集模块具体用于采集数据库的基本信息、表空间信息以及慢sql信息(即业务sql执行信息)。
[0062]
分析模块:负责分析源端数据库的基本信息、表空间信息和业务sql执行详情,统计表主键、唯一键、表对应每个分片总行数和查询sql耗时。
[0063]
判别模块:对分析模块的数据进行分析,找出各分片上总行数和耗时存在明显差异且持续规模时间的表,输出需要数据重分布的表。
[0064]
判别模块的执行步骤可以分以下4步:
[0065]
(1)统计各分片中各表中的总记录数。
[0066]
(2)统计各分片中出现的慢执行语句及对应耗时。
[0067]
(3)筛选出各分片记录总数和执行耗时存在明显差异的表。
[0068]
(4)持续统计步骤(3)中的信息,当持续时间超过上限,输出自动数据重分布告警
输出模块:根据多个维度信息统计,输出报告。
[0069]
如图2b所示,在采集模块获取基本信息、表空间信息以及慢sql信息之后,可以进一步计算分片记录数标准差,从而确定标准版百分比,进一步结合慢查询执行耗(即响应时间),在确定发生数据倾斜的情况下,进行数据重分布。
[0070]
具体的,本发明依赖指标采集功能对目标数据库的信息采集,两步前置工作:
[0071]
1)开启表空间监控和慢sql采集;
[0072]
2)分析数据库表、表空间和慢sql信息。以表维度统计表的主键、唯一键、外键信息和表空间以及慢sql数据,计算表各分片记录总数的标准差和慢sql响应时长的均值,当检测出方差超过阈值并持续指定时间长度触发数据重分布任务。具体如下:
[0073]
1、开启分布式数据库的表空间监控和慢sql采集。
[0074]
2、统计各分片上的记录数的标准差占表总记录数的百分比。
[0075]
其中,标准差的计算为:按表查询各分片上最新的记录数,计算同一表不同分片上记录数的标准差,和标准差占表总记录数的百分比。
[0076]
3、按表统计各分片上查询操作响应时间。
[0077]
需要说明的是,引起慢sql的原因很多,数据倾斜引发的慢sql有个明显的特征:不同分片上查询耗时存在显著差异,利用这个特征统计表在各分片上的查询耗时,同时只会统计初步数据倾斜判断时认为有问题需要监控的目标表,即缓存中有记录的表。
[0078]
4、综合分析步骤2的分片上记录数标准差和步骤3的查询操作响应时间,发起自动数据库重分布。
[0079]
其中,通过步骤2,会把表名和分片记录数标准差记录到缓存里,步骤3从步骤2的缓存里取出表名,结合慢sql信息,找出仅在部分分片上出现慢sql的表,且此现象持续一定时间长度,则可判定该表数据分布不均,推荐数据重分布。
[0080]
此外还有另一种情况:步骤2统计的各分片记录数标准差一直稳定持续一段时间,但步骤3没统计到任何慢sql信息,此时也可以存在数据倾斜风险,推荐数据重分布,可能原因在最近时间段内,各分片上的业务量偏小,当业务量增加那么数据分布不均的影响会愈加凸显出来,更稳妥的办法提前把数据分布不均的问题解决;
[0081]
也就是说,开始表空间监控之后,周期性的采集各分片的记录数计算百分比,若初步确定可能存在数据倾斜,则继续监测一段时间,看是否仍可能存在数据倾斜,若是,则即使没有慢sql信息,也控制分布式数据库进行数据重分布。
[0082]
5、当数据在各分片上的离散度持续偏大,则可能导致个别分片压力偏大,从而拉低分布式数据库的整体性能,通过标准差阈值初步输出存在数据倾斜的表。
[0083]
本发明的技术方案,有如下有益效果:及时性:根据指定的规则计算数据分布情况,同时会监控一定时间段内分布数据,较人为判断更加高效。准确性高:本发明全方面考虑了各分片记录数、慢sql耗时等信息,同时加上时间维度,更增加了判断稳定性,避免突发异常情况的对判断结果的影响,提高了检测的准确性。
[0084]
实施例三
[0085]
图3是本发明实施例三提供的一种数据处理装置的结构框图;本实施例可适用于对分布式数据库各分片数据进行监控,在检测到数据倾斜时进行数据重分布的情况,该数据处理装置可以采用硬件和/或软件的形式实现,并配置于具有数据处理功能的设备中,如
分布式数据库中,由分布式数据库自动重分布系统执行,如图3所示,该装置具体包括:
[0086]
确定模块301,用于在对分布式数据库各分片监控的过程中,根据候选表在各分片上的记录数,初步确定是否存在数据倾斜;
[0087]
发送模块302,用于若是,则从候选表中确定出满足预设监控条件的目标表,并向存储有目标表的候选分片发送对目标表的目标操作指令;
[0088]
重分布模块303,用于根据各候选分片的响应时间,确定监控分片,并根据对各监控分片的慢sql现象的监控结果,在最终确定存在数据倾斜的情况下,进行数据重分布。
[0089]
本发明实施例的技术方案,在对分布式数据库各分片监控的过程中,根据候选表在各分片上的记录数,初步确定是否存在数据倾斜;若是,则从候选表中确定出满足预设监控条件的目标表,并向存储有目标表的候选分片发送对目标表的目标操作指令;根据各候选分片的响应时间,确定监控分片,并根据对各监控分片的慢sql现象的监控结果,在最终确定存在数据倾斜的情况下,进行数据重分布。通过这样的方式,可以全面准确的对分布式数据库各分片的数据进行监控,精准检测数据倾斜情况,及时进行数据重分布,为数据库运维提供有力支撑。
[0090]
进一步的,确定模块301具体用于:
[0091]
在对分布式数据库各分片监控的过程中,统计确定候选表在各分片上的记录数;
[0092]
根据候选表在各分片上的记录数,若候选表中存在满足预设监控条件的目标表,则初步确定存在数据倾斜。
[0093]
进一步的,发送模块302具体用于:
[0094]
在对分布式数据库各分片监控的过程中,周期性地获取候选表在各分片上记录数,并根据记录数,计算标准差百分比;
[0095]
将标准差百分比满足预设监控条件的候选表确定为目标表。
[0096]
进一步的,重分布模块303可以包括:
[0097]
第一确定单元,用于根据各候选分片的响应时间,从候选分片中确定出存在慢sql现象的目标分片,并将目标分片上包含的目标表确定为监控表;
[0098]
第二确定单元,用于将存储有该监控表的目标分片,确定为各监控表对应的监控分片。
[0099]
进一步的,第一确定单元具体用于:
[0100]
若候选分片的响应时间大于预设的时间阈值,则确定该候选分片存在慢sql现象。
[0101]
进一步的,重分布模块303具体用于:
[0102]
基于预设的周期,向各监控分片发送对监控表的监控操作指令;
[0103]
根据各监控分片对监控操作指令的响应时间,分别确定监控分片是否存在慢sql现象;
[0104]
根据存在慢sql现象的监控分片的数量,生成对各监控分片的慢sql现象的监控结果。
[0105]
进一步的,重分布模块303还用于:
[0106]
根据各监控分片的慢sql现象的监控结果,若存在部分监控分片出现慢sql现象,则最终确定存在数据倾斜;
[0107]
触发分布式数据库的数据重分布功能,进行数据的搬迁移动,调整数据分布,实现
在线数据重分布。
[0108]
实施例四
[0109]
图4是本发明实施例四提供的电子设备的结构示意图。图4示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
[0110]
如图4所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(rom)12、随机访问存储器(ram)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(rom)12中的计算机程序或者从存储单元18加载到随机访问存储器(ram)13中的计算机程序,来执行各种适当的动作和处理。在ram 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、rom 12以及ram 13通过总线14彼此相连。输入/输出(i/o)接口15也连接至总线14。
[0111]
电子设备10中的多个部件连接至i/o接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0112]
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如数据处理方法。
[0113]
在一些实施例中,数据处理方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由rom 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到ram 13并由处理器11执行时,可以执行上文描述的数据处理方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据处理方法。
[0114]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0115]
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合
来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0116]
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0117]
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0118]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。
[0119]
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。
[0120]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
[0121]
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
技术特征:
1.一种数据处理方法,其特征在于,包括:在对分布式数据库各分片监控的过程中,根据候选表在各分片上的记录数,初步确定是否存在数据倾斜;若是,则从候选表中确定出满足预设监控条件的目标表,并向存储有目标表的候选分片发送对目标表的目标操作指令;根据各候选分片的响应时间,确定监控分片,并根据对各监控分片的慢sql现象的监控结果,在最终确定存在数据倾斜的情况下,进行数据重分布。2.根据权利要求1所述的方法,其特征在于,初步确定是否存在数据倾斜,包括:在对分布式数据库各分片监控的过程中,统计确定候选表在各分片上的记录数;根据候选表在各分片上的记录数,若候选表中存在满足预设监控条件的目标表,则初步确定存在数据倾斜。3.根据权利要求1所述的方法,其特征在于,从候选表中确定满足预设监控条件的目标表,包括:在对分布式数据库各分片监控的过程中,周期性地获取候选表在各分片上记录数,并根据记录数,计算标准差百分比;将标准差百分比满足预设监控条件的候选表确定为目标表。4.根据权利要求1所述的方法,其特征在于,根据各候选分片的响应时间,确定监控分片,包括:根据各候选分片的响应时间,从候选分片中确定出存在慢sql现象的目标分片,并将目标分片上包含的目标表确定为监控表;将存储有该监控表的目标分片,确定为各监控表对应的监控分片。5.根据权利要求4所述的方法,其特征在于,根据各候选分片的响应时间,从候选分片中确定出存在慢sql现象的目标分片,包括:若候选分片的响应时间大于预设的时间阈值,则确定该候选分片存在慢sql现象。6.根据权利要求1所述的方法,其特征在于,生成对各监控分片的慢sql现象的监控结果,包括:基于预设的周期,向各监控分片发送对监控表的监控操作指令;根据各监控分片对监控操作指令的响应时间,分别确定监控分片是否存在慢sql现象;根据存在慢sql现象的监控分片的数量,生成对各监控分片的慢sql现象的监控结果。7.根据权利要求1所述的方法,其特征在于,根据对各监控分片的慢sql现象的监控结果,在最终确定存在数据倾斜的情况下,进行数据重分布,包括:根据各监控分片的慢sql现象的监控结果,若存在部分监控分片出现慢sql现象,则最终确定存在数据倾斜;触发分布式数据库的数据重分布功能,进行数据的搬迁移动,调整数据分布,实现在线数据重分布。8.一种数据处理装置,其特征在于,包括:确定模块,用于在对分布式数据库各分片监控的过程中,根据候选表在各分片上的记录数,初步确定是否存在数据倾斜;发送模块,用于若是,则从候选表中确定出满足预设监控条件的目标表,并向存储有目
标表的候选分片发送对目标表的目标操作指令;重分布模块,用于根据各候选分片的响应时间,确定监控分片,并根据对各监控分片的慢sql现象的监控结果,在最终确定存在数据倾斜的情况下,进行数据重分布。9.一种电子设备,其特征在于,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的数据处理方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的数据处理方法。
技术总结
本发明公开了一种数据处理方法、装置、设备以及存储介质。该方法包括:在对分布式数据库各分片监控的过程中,根据候选表在各分片上的记录数,初步确定是否存在数据倾斜;若是,则从候选表中确定出满足预设监控条件的目标表,并向存储有目标表的候选分片发送对目标表的目标操作指令;根据各候选分片的响应时间,确定监控分片,并根据对各监控分片的慢SQL现象的监控结果,在最终确定存在数据倾斜的情况下,进行数据重分布。本发明的技术方案,可以全面准确的对分布式数据库各分片的数据进行监控,精准检测数据倾斜情况,及时进行数据重分布,为数据库运维提供有力支撑。为数据库运维提供有力支撑。为数据库运维提供有力支撑。
技术研发人员:陆文娟 黄健
受保护的技术使用者:金篆信科有限责任公司
技术研发日:2023.07.07
技术公布日:2023/10/15
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:无纺布毛毡防尘车衣的制作方法 下一篇:一种储能电站监控方法及系统与流程
