一种数据关联查询方法及相关设备技术

技术编号:39490145 阅读:7 留言:0更新日期:2023-11-24 11:12
本说明书提供了一种数据关联查询方法及相关设备

【技术实现步骤摘要】
一种数据关联查询方法及相关设备


[0001]本说明书一个或多个实施例涉及数据查询
,尤其涉及一种数据关联查询方法及相关设备


技术介绍

[0002]在进行数据关联查询时,往往需要根据查询语句中的关联键,将关联查询涉及到的主表和被关联表中的数据重分发(
shuffle
)到参与数据关联查询处理的多个计算节点上,使得每个计算节点上存有与相同关联键值对应的数据,然后再进行数据关联查询处理

[0003]如上所述,数据重分发需要将海量的数据通过网络传输到对应的计算节点进行数据关联查询处理,从而带来极大的数据传输成本

除此之外,数据重分发还可能存在数据倾斜的潜在风险,当关联键的某个关联键值对应的数据记录的数量远远多于其他关联键值时,便会导致某个计算节点需要处理的数据量远远多于其他计算节点,进而严重影响数据关联查询的整体效率


技术实现思路

[0004]有鉴于此,本说明书一个或多个实施例提供一种数据关联查询方法及相关设备

[0005]第一方面,本说明书提供了一种数据关联查询方法,数据关联查询系统中包括多个第一计算节点和多个第二计算节点,所述多个第一计算节点分布式地存储了第一数据表,所述多个第二计算节点分布式地存储了第二数据表;所述方法应用于所述多个第一计算节点中的任一第一计算节点,所述方法包括:响应于针对所述第一数据表和所述第二数据表的数据关联查询,确定与所述数据关联查询相关的关联键,并从所述第一数据表中与所述关联键对应的关联键值中确定出至少一个热点键值;将所述至少一个热点键值发送至所述多个第二计算节点,以使所述多个第二计算节点基于所述至少一个热点键值,从分布式存储的所述第二数据表中拆分出热点数据表;其中,所述热点数据表包含了所述第二数据表中与所述热点键值对应的热点数据记录;接收所述多个第二计算节点发送的所述热点数据表,并在本地存储所述热点数据表;基于存储的所述第一数据表和所述热点数据表进行数据关联查询

[0006]第二方面,本说明书提供了一种数据关联查询方法,数据关联查询系统中包括多个第一计算节点和多个第二计算节点,所述多个第一计算节点分布式地存储了第一数据表,所述多个第二计算节点分布式地存储了第二数据表;所述方法应用于所述多个第二计算节点中的任一第二计算节点,所述方法包括:接收所述多个第一计算节点中的任一第一计算节点发送的至少一个热点键值;所述至少一个热点键值为任一第一计算节点响应于针对所述第一数据表和所述第二数据表的数据关联查询,确定与所述数据关联查询相关的关联键,并从所述第一数据表中与所述
关联键对应的关联键值中确定出的热点键值;基于所述至少一个热点键值,从分布式存储的所述第二数据表中拆分出热点数据表,并发送所述热点数据表至任一第一计算节点,以使任一第一计算节点在本地存储接收到的所述热点数据表,并基于存储的所述第一数据表和所述热点数据表进行数据关联查询;其中,所述热点数据表包含了所述第二数据表中与所述热点键值对应的热点数据记录

[0007]第三方面,本说明书提供了一种数据关联查询装置,数据关联查询系统中包括多个第一计算节点和多个第二计算节点,所述多个第一计算节点分布式地存储了第一数据表,所述多个第二计算节点分布式地存储了第二数据表;所述装置应用于所述多个第一计算节点中的任一第一计算节点,所述装置包括:热点键值确定单元,用于响应于针对所述第一数据表和所述第二数据表的数据关联查询,确定与所述数据关联查询相关的关联键,并从所述第一数据表中与所述关联键对应的关联键值中确定出至少一个热点键值;热点键值发送单元,用于将所述至少一个热点键值发送至所述多个第二计算节点,以使所述多个第二计算节点基于所述至少一个热点键值,从分布式存储的所述第二数据表中拆分出热点数据表;其中,所述热点数据表包含了所述第二数据表中与所述热点键值对应的热点数据记录;数据表存储单元,用于接收所述多个第二计算节点发送的所述热点数据表,并在本地存储所述热点数据表;第一查询单元,用于基于存储的所述第一数据表和所述热点数据表进行数据关联查询

[0008]第四方面,本说明书提供了一种数据关联查询装置,数据关联查询系统中包括多个第一计算节点和多个第二计算节点,所述多个第一计算节点分布式地存储了第一数据表,所述多个第二计算节点分布式地存储了第二数据表;所述装置应用于所述多个第二计算节点中的任一第二计算节点,所述装置包括:热点键值接收单元,用于接收多个第一计算节点中的任一第一计算节点发送的至少一个热点键值;所述至少一个热点键值为任一第一计算节点响应于针对所述第一数据表和所述第二数据表的数据关联查询,确定与所述数据关联查询相关的关联键,并从所述第一数据表中与所述关联键对应的关联键值中确定出的热点键值;数据表拆分单元,用于基于所述至少一个热点键值,从分布式存储的所述第二数据表中拆分出热点数据表,并发送所述热点数据表至任一第一计算节点,以使任一第一计算节点在本地存储接收到的所述热点数据表,并基于存储的所述第一数据表和所述热点数据表进行数据关联查询;其中,所述热点数据表包含了所述第二数据表中与所述热点键值对应的热点数据记录

[0009]第五方面,本说明书提供了一种数据关联查询系统,包括多个第一计算节点和多个第二计算节点,所述多个第一计算节点分布式地存储了第一数据表,所述多个第二计算节点分布式地存储了第二数据表;其中,所述多个第一计算节点中的任一第一计算节点,用于响应于针对所述第一数据表和所述第二数据表的数据关联查询,确定与所述数据关联查询相关的关联键,并从所述第一数据表中与所述关联键对应的关联键值中确定出至少一个热点键值,以及进一步将所述
至少一个热点键值发送至所述多个第二计算节点;所述多个第二计算节点中的任一第二计算节点,用于接收所述至少一个热点键值,并基于所述至少一个热点键值,从分布式存储的所述第二数据表中拆分出热点数据表,以及进一步将所述热点数据表发送至所述多个第一计算节;其中,所述热点数据表包含了所述第二数据表中与所述热点键值对应的热点数据记录;所述第一计算节点,还用于在本地存储接收到的所述热点数据表,并基于存储的所述第一数据表和所述热点数据表进行数据关联查询

[0010]相应地,本说明书还提供了一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由所述处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行上述第一方面或者第二方面所述的数据关联查询方法

[0011]相应地,本说明书还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行如上述第一方面或者第二方面所述的数据关联查询方法

[0012]综上所述,数据关联查询系统中可以包括分布式存储了第一数据表的多个第一计算节点,以及分布式存储了第二数据表的多个第二计算节点

该多个第一计算节点中的任一第一计算节点可以响应于针对第一数据表和本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种数据关联查询方法,其特征在于,数据关联查询系统中包括多个第一计算节点和多个第二计算节点,所述多个第一计算节点分布式地存储了第一数据表,所述多个第二计算节点分布式地存储了第二数据表;所述方法应用于所述多个第一计算节点中的任一第一计算节点,所述方法包括:响应于针对所述第一数据表和所述第二数据表的数据关联查询,确定与所述数据关联查询相关的关联键,并从所述第一数据表中与所述关联键对应的关联键值中确定出至少一个热点键值;将所述至少一个热点键值发送至所述多个第二计算节点,以使所述多个第二计算节点基于所述至少一个热点键值,从分布式存储的所述第二数据表中拆分出热点数据表;其中,所述热点数据表包含了所述第二数据表中与所述热点键值对应的热点数据记录;接收所述多个第二计算节点发送的所述热点数据表,并在本地存储所述热点数据表;基于存储的所述第一数据表和所述热点数据表进行数据关联查询
。2.
根据权利要求1所述的方法,其特征在于,所述第一数据表为关系型数据表;从所述第一数据表中与所述关联键对应的关联键值中确定出至少一个热点键值,包括:从所述第一数据表中与所述关联键对应的目标数据列包含的多个关联键值中确定出至少一个热点键值
。3.
根据权利要求2所述的方法,其特征在于,从所述第一数据表中与所述关联键对应的目标数据列包含的多个关联键值中确定出至少一个热点键值,包括:将所述目标数据列包含的多个关联键值中重复次数大于预设阈值的关联键值确定为热点键值;或者,将所述目标数据列包含的多个关联键值中重复次数最多的预设数量个的关联键值确定为热点键值
。4.
根据权利要求1所述的方法,其特征在于,所述第一计算节点在内存中构建了热点
hash
表;在本地存储所述热点数据表,包括:计算所述热点数据表中的任一热点数据记录中的热点键值的
hash
值;基于所述
hash
值确定该热点数据记录在所述热点
hash
表中的存储位置,并将该热点数据记录存储至所述热点
hash
表中的所述存储位置上
。5.
根据权利要求4所述的方法,其特征在于,所述数据关联查询系统中还包括多个非热点数据存储节点,所述多个非热点数据存储节点分布式地存储了所述多个第二计算节点发送的非热点数据表;其中,所述非热点数据表为由所述多个第二计算节点基于所述至少一个热点键值,从分布式存储的所述第二数据表中拆分出的非热点数据表;所述非热点数据表包含了所述第二数据表中与非热点键值对应的非热点数据记录
。6.
根据权利要求5所述的方法,其特征在于,所述多个非热点数据存储节点在内存中构建了非热点
hash
表;所述非热点数据表中的任一非热点数据记录存储在所述非热点
hash
表中与该非热点数据记录中的非热点键值的
hash
值对应的存储位置上
。7.
根据权利要求6所述的方法,其特征在于,所述基于存储的所述第一数据表和所述热点数据表进行数据关联查询,包括:从所述第一数据表中读取目标数据记录,并确定读取到的所述目标数据记录中与所述关联键对应的目标键值是否为所述热点键值;
如果是,计算所述目标键值的
hash
值,并在其存储的所述热点
hash
表中与所述
hash
值对应的存储位置上查询与所述目标键值对应的热点数据记录
。8.
根据权利要求7所述的方法,其特征在于,所述第一计算节点中存储了所述多个第二计算节点发送的所述多个非热点数据存储节点与所述多个非热点键值的对应关系;所述方法还包括:如果读取到的所述目标数据记录中与所述关联键对应的目标键值不是所述热点键值,基于存储的所述对应关系,在所述多个非热点数据存储节点中查找与所述目标键值对应的目标计算节点;向所述目标计算节点发送所述目标键值,以使所述目标计算节点计算所述目标键值的
hash
值,并在其存储的所述非热点
hash
表中与所述
hash
值对应的存储位置上查询与所述目标键值对应的非热点数据记录;接收所述目标计算节点发送的与所述目标键值对应的非热点数据记录
。9.
根据权利要求1‑8任意一项所述的方法,其特征在于,所述响应于针对所述第一数据表和所述第二数据表的数据关联查询,确定与所述数据关联查询相关的关联键,包括:响应于针对所述第一数据表和所述第二数据表的数据关联查询语句,对所述数据关联查询语句进行解析,并...

【专利技术属性】
技术研发人员:张庭阮宏博黄超傑
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

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

1