针对数据倾斜的数据处理的方法和装置制造方法及图纸

技术编号:36212798 阅读:21 留言:0更新日期:2023-01-04 12:09
本公开涉及一种针对数据倾斜的数据处理的方法和装置,上述方法包括:获取待处理的键

【技术实现步骤摘要】
针对数据倾斜的数据处理的方法和装置


[0001]本公开涉及分布式计算和数据处理
,尤其涉及一种针对数据倾斜的数据处理的方法和装置。

技术介绍

[0002]在很多数据处理的场景下,存在不同细粒度程度的数据,对于粗细粒度的数据,在计算时需要基于该粗细粒度数据下的更细化细粒度的明细数据进行计算。以物流场景作为示例,一件货物首先属于一个包裹,一个包裹属于一个运单,在一个路段内,运单会对应一个委托书,委托书会对应一个派车单,一个派车单属于一个派车任务。因为存在这样的所属关系,基于更细化细粒度的明细数据计算粗粒度下的聚合值,是物流场景下非常常见的聚合计算的特征,例如,基于多个运单明细体积来计算委托书明细体积。
[0003]然而,这些数据处理场景经常会面临数据倾斜的问题。数据倾斜是指在分布式系统处理数据过程中,数据从上游往下游分发时,发送到不同节点的数据量明显不均匀的情况,其中极少量的节点要处理大量数据,剩余节点要处理的数据量很小的情况。由此导致集群的资源利用率不高且部分节点处理时效性差的问题。

技术实现思路

[0004]为了解决上述技术问题或者至少部分地解决上述技术问题,本公开的实施例提供了一种针对数据倾斜的数据处理的方法和装置。
[0005]第一方面,本公开的实施例提供了一种针对数据倾斜的数据处理的方法。上述方法包括:获取待处理的键

值对形式的关联数据,上述关联数据的键为处理对象的标识,上述关联数据的值为上述处理对象的明细数据;预判上述关联数据对应的键是否为热点键,上述热点键用于表征上述关联数据的明细数据一次性计算需要消耗的计算资源超出设定阈值的状态;在预判上述关联数据对应的键为热点键的情况下,将上述关联数据进行初始分组,使得各组的数据处理量符合预设范围,并将划分后的各组关联数据分发至第一处理集群的资源槽中进行计算,得到中间处理结果;基于上述关联数据的键,对上述关联数据进行重新分组,并根据上述中间处理结果来对经重新分组后的关联数据进行计算,得到目标处理结果。
[0006]根据本公开的实施例,将上述关联数据进行初始分组,使得各组的数据处理量符合预设范围,包括:获取上述关联数据的描述字段信息,上述描述字段信息为上述关联数据中与上述键无关的额外描述信息或者与上述键有关且为上述键下属的细粒度更高的描述信息;根据上述关联数据的总个数和上述第一处理集群中资源槽的最大并行度进行平均分配计算,得到关联数据在平均分配状态下各组的数据量范围;当上述各组的数据量范围符合上述预设范围时,根据上述描述字段信息,将上述关联数据划分为多组数据,且各组的分组号的最大值不超过上述最大并行度。
[0007]根据本公开的实施例,上述方法还包括:当上述各组的数据量范围不符合上述预
设范围时,将上述关联数据划分为多个批次,使得每个批次的关联数据的总量在上述资源槽的数据处理量承接范围之内。
[0008]根据本公开的实施例,上述将划分后的各组关联数据分发至第一处理集群的资源槽中进行计算,得到中间处理结果,包括:将一个或多个批次的各组关联数据的分组号和对应的键进行拼接,得到拼接有分组号的分组标识键;对上述分组标识键进行哈希计算;根据上述分组标识键进行哈希计算后的结果,将上述一个或多个批次的各组关联数据分发至第一处理集群对应的资源槽进行计算,得到各组关联数据的计算结果,上述计算结果作为上述中间处理结果。
[0009]根据本公开的实施例,上述方法还包括:在预判上述关联数据对应的键不是热点键的情况下,将上述关联数据分发至第二处理集群的资源槽中进行计算,得到目标处理结果,上述第二处理集群与上述第一处理集群为不同的集群。
[0010]根据本公开的实施例,将上述关联数据分发至第二处理集群的资源槽中进行计算,得到目标处理结果,包括:对上述关联数据的键进行哈希计算;根据上述关联数据的键进行哈希计算后的结果,将上述关联数据分发至第二处理集群对应的资源槽进行计算,得到的计算结果作为上述目标处理结果。
[0011]根据本公开的实施例,上述关联数据中的明细数据均被分发至中间状态缓存中,上述中间状态缓存中的数据能被上述第一处理集群和上述第二处理集群共同访问。
[0012]根据本公开的实施例,上述预判上述关联数据对应的键是否为热点键,包括:读取热点键缓存列表中的列表数据;在上述热点键缓存列表中不存在列表数据的情况下,提取上述关联数据中处理对象的特征信息;将上述特征信息输入至预先训练好的逻辑回归模型中进行处理,输出上述特征信息对应的关联数据的键是否为热点键的结果,并将结果为热点键的关联数据的键信息作为列表数据存入至热点键缓存列表中。
[0013]根据本公开的实施例,上述逻辑回归模型用于确定上述特征信息对应的预测明细数据,并根据上述预测明细数据确定上述关联处理对象对应的预测明细数据是否导致数据倾斜状态;上述数据倾斜状态为上述预测明细数据一次性计算需要消耗的计算资源超出设定阈值的状态;在上述逻辑回归模型确定上述预测明细数据导致数据倾斜状态的情况下,输出上述关联数据对应的键为热点键的结果;在上述逻辑回归模型确定上述预测明细数据不导致数据倾斜状态的情况下,输出上述关联数据对应的键为非热点键的结果。
[0014]根据本公开的实施例,预判上述关联数据对应的键是否为热点键,还包括:在上述热点键缓存列表中存在列表数据的情况下,将上述热点键缓存列表中的列表数据与当前关联数据的键进行匹配;在匹配一致的情况下,预判上述当前关联数据对应的键为热点键;在匹配不一致的情况下,预判上述当前关联数据对应的键为非热点键。
[0015]根据本公开的实施例,上述方法还包括:在上述热点键缓存列表中存在列表数据且预判上述关联数据对应的键不是热点键的情况下,执行以下操作:将上述关联数据分发至第二处理集群的资源槽中进行计算,得到目标处理结果;提取上述关联数据中处理对象的特征信息,将上述特征信息输入至预先训练好的逻辑回归模型中进行处理,得到热点分析结果。
[0016]根据本公开的实施例,上述方法还包括:在上述第二处理集群对上述关联数据进行计算期间,接收到上述热点分析结果表征上述关联数据对应的键为热点键的情况下,执
行以下操作:将上述第二处理集群针对上述关联数据的已计算部分的历史计算结果保存至中间状态缓存中;上述中间状态缓存中的数据能被上述第一处理集群和上述第二处理集群共同访问;将上述关联数据的未计算部分进行初始分组,使得各组的数据处理量符合预设范围,并将划分后的各组未计算部分分发至上述第一处理集群的资源槽中进行计算,得到接续中间处理结果;上述第一处理集群基于上述关联数据的键,对上述未计算部分进行重新分组,并根据上述接续中间处理结果来对经重新分组后的未计算部分进行计算,得到接续处理结果;上述第一处理集群根据上述接续处理结果与从上述中间状态缓存读取的上述历史计算结果来进行计算,得到目标处理结果。
[0017]根据本公开的实施例,上述方法还包括:针对上述热点键缓存列表中的上述列表数据,获取与上述列表数据对应的处理对象的生本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对数据倾斜的数据处理的方法,其特征在于,包括:获取待处理的键

值对形式的关联数据,所述关联数据的键为处理对象的标识,所述关联数据的值为所述处理对象的明细数据;预判所述关联数据对应的键是否为热点键,所述热点键用于表征所述关联数据的明细数据一次性计算需要消耗的计算资源超出设定阈值的状态;在预判所述关联数据对应的键为热点键的情况下,将所述关联数据进行初始分组,使得各组的数据处理量符合预设范围,并将划分后的各组关联数据分发至第一处理集群的资源槽中进行计算,得到中间处理结果;基于所述关联数据的键,对所述关联数据进行重新分组,并根据所述中间处理结果来对经重新分组后的关联数据进行计算,得到目标处理结果。2.根据权利要求1所述的方法,其特征在于,将所述关联数据进行初始分组,使得各组的数据处理量符合预设范围,包括:获取所述关联数据的描述字段信息,所述描述字段信息为所述关联数据中与所述键无关的额外描述信息或者与所述键有关且为所述键下属的细粒度更高的描述信息;根据所述关联数据的总个数和所述第一处理集群中资源槽的最大并行度进行平均分配计算,得到关联数据在平均分配状态下各组的数据量范围;当所述各组的数据量范围符合所述预设范围时,根据所述描述字段信息,将所述关联数据划分为多组数据,且各组的分组号的最大值不超过所述最大并行度。3.根据权利要求2所述的方法,其特征在于,还包括:当所述各组的数据量范围不符合所述预设范围时,将所述关联数据划分为多个批次,使得每个批次的关联数据的总量在所述资源槽的数据处理量承接范围之内。4.根据权利要求3所述的方法,其特征在于,所述将划分后的各组关联数据分发至第一处理集群的资源槽中进行计算,得到中间处理结果,包括:将一个或多个批次的各组关联数据的分组号和对应的键进行拼接,得到拼接有分组号的分组标识键;对所述分组标识键进行哈希计算;根据所述分组标识键进行哈希计算后的结果,将所述一个或多个批次的各组关联数据分发至第一处理集群对应的资源槽进行计算,得到各组关联数据的计算结果,所述计算结果作为所述中间处理结果。5.根据权利要求1所述的方法,其特征在于,还包括:在预判所述关联数据对应的键不是热点键的情况下,将所述关联数据分发至第二处理集群的资源槽中进行计算,得到目标处理结果,所述第二处理集群与所述第一处理集群为不同的集群。6.根据权利要求5所述的方法,其特征在于,将所述关联数据分发至第二处理集群的资源槽中进行计算,得到目标处理结果,包括:对所述关联数据的键进行哈希计算;根据所述关联数据的键进行哈希计算后的结果,将所述关联数据分发至第二处理集群对应的资源槽进行计算,得到的计算结果作为所述目标处理结果。7.根据权利要求5所述的方法,其特征在于,所述关联数据中的明细数据均被分发至中
间状态缓存中,所述中间状态缓存中的数据能被所述第一处理集群和所述第二处理集群共同访问。8.根据权利要求1所述的方法,其特征在于,所述预判所述关联数据对应的键是否为热点键,包括:读取热点键缓存列表中的列表数据;在所述热点键缓存列表中不存在列表数据的情况下,提取所述关联数据中处理对象的特征信息;将所述特征信息输入至预先训练好的逻辑回归模型中进行处理,输出所述特征信息对应的关联数据的键是否为热点键的结果,并将结果为热点键的关联数据的键信息作为列表数据存入至热点键缓存列表中。9.根据权利要求8所述的方法,其特征在于,所述逻辑回归模型用于确定所述特征信息对应的预测明细数据,并根据所述预测明细数据确定所述关联处理对象对应的预测明细数据是否导致数据倾斜状态;所述数据倾斜状态为所述预测明细数据一次性计算需要消耗的计算资源超出设定阈值的状态;在所述逻辑回归模型确定所述预测明细数据导致数据倾斜状态的情况下,输出所述关联数据对应的键为热点键的结果;在所述逻辑回归模型确定所述预测明细数...

【专利技术属性】
技术研发人员:纪应龙陈健璋
申请(专利权)人:北京京东振世信息技术有限公司
类型:发明
国别省市:

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

1