数据表的处理方法、设备及存储介质技术

技术编号:38898794 阅读:12 留言:0更新日期:2023-09-22 14:18
本公开实施例提供一种数据表的处理方法、设备及存储介质,通过采用哈希连接的方式对待连接的两个数据表中左表和右表进行等值连接,获取左表和右表之间关联的第一关联数据;根据预设非等值过滤条件对第一关联数据进行过滤,确定第一关联数据中满足预设非等值过滤条件的第二关联数据;根据所述两个数据表的目标连接类型在预设数据结构中标识第二关联数据在左表中对应的位置信息、和/或第二关联数据在右表对应的哈希表中对应的位置信息;根据两个数据表的目标连接类型以及预设数据结构,对左表和/或右表进行处理,生成目标连接表。基于预设数据结构的辅助,可以在哈希连接的基础上实现非等值连接,支持不同的目标连接类型,并且处理效率较高。处理效率较高。处理效率较高。

【技术实现步骤摘要】
数据表的处理方法、设备及存储介质


[0001]本公开实施例涉及计算机与网络通信
,尤其涉及一种数据表的处理方法、设备及存储介质。

技术介绍

[0002]数据表的连接(Join)操作是指将两张有一定关联关系的数据表合并成一张数据表的操作,而对于关联上和未关联上的数据会存在不同的处理方式,因此数据表的连接操作又会被细分为不同的连接类型,包括交叉连接、内连接、外连接、全连接、半连接、反连接等。
[0003]然而在现有技术中,对数据表基于等值条件的连接操作较容易实现,而非等值条件相对较为复杂,而等值条件和非等值条件结合的情况更为复杂,现有技术中无法支持不同的连接类型的等值条件和非等值条件结合的情况。

技术实现思路

[0004]本公开实施例提供一种数据表的处理方法、设备及存储介质,以提供一种新的数据表连接方式。
[0005]第一方面,本公开实施例提供一种数据表的处理方法,包括:
[0006]采用哈希连接的方式对待连接的两个数据表中的左表和右表进行等值连接,获取所述左表和所述右表之间关联的第一关联数据;
[0007]根据预设非等值过滤条件对所述第一关联数据进行过滤,确定所述第一关联数据中满足所述预设非等值过滤条件的第二关联数据;
[0008]根据所述两个数据表的目标连接类型在预设数据结构中标识所述第二关联数据在所述左表中对应的位置信息和/或所述第二关联数据在所述右表对应的哈希表中对应的位置信息;
[0009]根据所述两个数据表的目标连接类型以及所述预设数据结构,对所述左表和/或所述右表进行处理,生成目标连接表。
[0010]第二方面,本公开实施例提供一种数据表的处理设备,包括:
[0011]等值连接单元,用于采用哈希连接的方式对待连接的两个数据表中的左表和右表进行等值连接,获取所述左表和所述右表之间关联的第一关联数据;
[0012]非等值过滤单元,用于根据预设非等值过滤条件对所述第一关联数据进行过滤,确定所述第一关联数据中满足所述预设非等值过滤条件的第二关联数据;
[0013]标识单元,用于根据所述两个数据表的目标连接类型在预设数据结构中标识所述第二关联数据在所述左表中对应的位置信息和/或所述第二关联数据在所述右表对应的哈希表中对应的位置信息;
[0014]生成单元,用于根据所述两个数据表的目标连接类型以及所述预设数据结构,对所述左表和/或所述右表进行处理,生成目标连接表。
[0015]第三方面,本公开实施例提供一种电子设备,包括:至少一个处理器和存储器;
[0016]所述存储器存储计算机执行指令;
[0017]所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的数据表的处理方法。
[0018]第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的数据表的处理方法。
[0019]第五方面,本公开实施例提供一种计算机程序产品,包括计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的数据表的处理方法。
[0020]本公开实施例提供的数据表的处理方法、设备及存储介质,通过采用哈希连接的方式对待连接的两个数据表中的左表和右表进行等值连接,获取所述左表和所述右表之间关联的第一关联数据;根据预设非等值过滤条件对所述第一关联数据进行过滤,确定所述第一关联数据中满足所述预设非等值过滤条件的第二关联数据;根据所述两个数据表的目标连接类型在预设数据结构中标识所述第二关联数据在所述左表中对应的位置信息和/或所述第二关联数据在所述右表对应的哈希表中对应的位置信息;根据所述两个数据表的目标连接类型以及所述预设数据结构,对所述左表和/或所述右表进行处理,生成目标连接表。基于预设数据结构的辅助,可以在哈希连接的基础上实现非等值连接,支持不同的目标连接类型,并且处理效率较高。
附图说明
[0021]为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0022]图1为本公开一实施例提供的数据表的处理方法的场景示例图;
[0023]图2为本公开一实施例提供的数据表的处理方法流程示意图;
[0024]图3为本公开一实施例提供的数据表的处理设备的结构框图;
[0025]图4为本公开一实施例提供的电子设备的硬件结构示意图。
具体实施方式
[0026]为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0027]首先介绍数据表连接(join)的不同连接类型的定义。Join操作指的是将两张有一定关联关系的表合并成一张的操作,通常会有一个或多个关联条件,来表明两个表的关系,最终返回关联后的结果。对于关联上的和未关联上的数据的不同处理方式,Join操作又被细分为几种不同的类型:
[0028]1)交叉连接(Cross Join):两个表做笛卡尔积,之间没有关联关系。
[0029]2)内连接(Inner Join):最终只返回两数据表关联上的数据。
[0030]3)外连接(Outer Join):在Inner Join的基础上,对于其中一个数据表没有关联上的数据,返回时也会将数据补充进来,对另一个数据表补NULL处理。对右表补NULL被称作左外连接(Left Outer Join),对左表补充NULL被称为右外连接(Right Outer Join)。
[0031]4)全连接(Full Join):同Outer Join类似,对两张数据表没有关联的数据都会进行补充。
[0032]5)半连接(Semi Join):只返回一张数据表关联上的数据,并且对于一条数据关联多条数据的情况,也只返回一条结果。返回左表数据叫做左半连接(Left Semi Join),返回右表数据叫做右半连接(Right Anti Join)。
[0033]6)反连接(Anti Join):同Semi Join相反,只返回一张数据表没有关联上的数据。返回左表没有关联数据叫做左反连接(Left Anti Join),返回右表没有关联上的数据叫做右反连接(Right Anti Join)。
[0034]在现有技术中对于两个数据表Join的场景,常的做法是对于右表建立哈希表(Ha本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据表的处理方法,其特征在于,包括:采用哈希连接的方式对待连接的两个数据表中的左表和右表进行等值连接,获取所述左表和所述右表之间关联的第一关联数据;根据预设非等值过滤条件对所述第一关联数据进行过滤,确定所述第一关联数据中满足所述预设非等值过滤条件的第二关联数据;根据所述两个数据表的目标连接类型在预设数据结构中标识所述第二关联数据在所述左表中对应的位置信息和/或所述第二关联数据在所述右表对应的哈希表中对应的位置信息;根据所述两个数据表的目标连接类型以及所述预设数据结构,对所述左表和/或所述右表进行处理,生成目标连接表。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:构建所述哈希表对应的数据结构,用于记录所述哈希表各偏移位置中包括的各元素使用状态信息,其中所述哈希表任一偏移位置处包括至少一种元素,一个所述元素与所述右表中的一行数据对应;在预设数据结构中标识所述第二关联数据在所述右表对应的哈希表中对应的位置信息后,还包括:根据所述第二关联数据在所述哈希表中对应的位置信息,在所述哈希表对应的数据结构中修改所述第二关联数据对应元素的使用状态信息。3.根据权利要求2所述的方法,其特征在于,所述根据所述两个数据表的目标连接类型以及所述预设数据结构,对所述左表和/或所述右表进行处理,生成目标连接表,包括:若所述目标连接类型为全连接,则根据所述预设数据结构中所述第二关联数据在所述左表中对应的位置信息,将所述左表中除所述第二关联数据之外的数据确定为所述左表中的待补充数据;根据所述哈希表对应的数据结构,确定所述右表中的待补充数据;基于所述第二关联数据、所述左表中的待补充数据以及所述右表中的待补充数据,生成目标连接表。4.根据权利要求3所述的方法,其特征在于,所述左表包括至少两个数据块;相应的,所述根据所述预设数据结构中所述第二关联数据在所述左表中对应的位置信息,将所述左表中除所述第二关联数据之外的数据确定为所述左表中的待补充数据,包括:针对于对所述左表任一数据块完成等值连接和预设非等值过滤条件的过滤后得到的预设数据结构,根据所述预设数据结构中所述第二关联数据在所述左表中对应的位置信息,将该数据块中除所述第二关联数据之外的数据确定为所述左表中的待补充数据;所述根据所述哈希表对应的数据结构,确定所述右表中的待补充数据,包括:针对于对所述左表所有数据块完成等值连接和预设非等值过滤条件的过滤后得到的所述哈希表对应的数据结构,根据所述哈希表对应的数据结构确定所述右表中的待补充数据。5.根据权利要求1所述的方法,其特征在于,所述根据所述两个数据表的目标连接类型以及所述预设数据结构,对所述左表和/或所述右表进行处理,生成目标连接表,包括:若所述目标连接类型为左外连接,则根据所述预设数据结构中所述第二关联数据在所
述左表中对应的位置信息,将所述左表中除所述第二关联数据之外的数据确定为所述左表中的待补充数据;基于所述第二关联数据以及所述左表中的待补充数据,生成目标连接表;或者若所述目标连接类型为左反连接,则根据所述预设数据结构中所述第二关联数据在所述左表中对应的位置信息,确定所述左表中除所述第二关联数据之外的数据,根据所述左表中除所述第二关联数据之外的数据生成目标连接表;或者若所述目标连接类型为左半连接,则从所述预设数据结构中所述第二关联数据在所述左表中对应的位置信息中获取每一首次出现的位置信息,根据所述左表中与所述每一首次出现的位置信息对应的数据生成目标连接表。6.根据权利要求5所述的方法,其特征在于,所述左表包括至少两个数据块;相应的,若所述目标连接类型为左外连接、左反连接或左半连接,所述预设数据结构为针对于对所述左表任一数据块完成等值连接和预设非等值过滤条件的过滤后得到的预设数据结构。7.根据权利要求2所述的方法,其特征在于,所述根据所述两个数据表的目标连接类型以及所述预设数据结构,对所述左表和/或所述右表进行处理,生成目标连接表,包括:若所述目标连接类型为右外连接,则根据所述哈希表对应的数据结构,确定所述右表中的待补充数据;基于所述第二关联数据以及所述右表中的待补充数据,生成目标连接表;或者若所述目标连接类型为右反连接,则根据所述哈希表对应的数据结构,确定所述右表中除所述第二关联数据之外的数据,根据所述右表中除所述第二关联数据之外的数据生成目标连接表;或者若所述目标连接类型为右半连接,则确定所述哈希表对应的数据结构中首次修改使用状态信息的元素,根据所述右表中与所述首次修改...

【专利技术属性】
技术研发人员:杨晔萌陈恒师锐陈建军
申请(专利权)人:北京火山引擎科技有限公司
类型:发明
国别省市:

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

1