CN116361289A - 大数据表的哈希连接硬件加速方法、装置、设备及介质 - Google Patents

大数据表的哈希连接硬件加速方法、装置、设备及介质 Download PDF

Info

Publication number
CN116361289A
CN116361289A CN202310320489.XA CN202310320489A CN116361289A CN 116361289 A CN116361289 A CN 116361289A CN 202310320489 A CN202310320489 A CN 202310320489A CN 116361289 A CN116361289 A CN 116361289A
Authority
CN
China
Prior art keywords
memory space
data
connection
current
hash
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310320489.XA
Other languages
English (en)
Inventor
王帅
薛海军
于帆
胡雷钧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Inspur Science Research Institute Co Ltd
Original Assignee
Shandong Inspur Science Research Institute Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Inspur Science Research Institute Co Ltd filed Critical Shandong Inspur Science Research Institute Co Ltd
Priority to CN202310320489.XA priority Critical patent/CN116361289A/zh
Publication of CN116361289A publication Critical patent/CN116361289A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种大数据表的哈希连接硬件加速方法、装置、设备及介质,涉及数据库异构加速领域,该方法应用于加速板卡,包括:接收连接操作类型指令;利用连接表大小指令分别申请第一待连接数据表的第一内存空间以及第二待连接数据表的第二内存空间,以便将所述第一待连接数据表的各个第一分片存储至所述第一内存空间,并将所述第二待连接数据表的各个第二分片存储至所述第二内存空间;根据所述连接操作类型指令以及预设并行处理行数,将所述第一内存空间中的各个所述第一分片和所述第二内存空间中的各个所述第二分片进行哈希连接计算,以得到对应的连接表行数据。通过上述方案,能够有效提高哈希连接硬件加速效果。

Description

大数据表的哈希连接硬件加速方法、装置、设备及介质
技术领域
本发明涉及数据库异构加速领域,特别涉及大数据表的哈希连接硬件加速方法、装置、设备及介质。
背景技术
随着摩尔定律终将失效论的发展,数据库加速领域引入了硬件加速。使用FPGA(Field Programmable Gate Array,即现场可编程逻辑门阵列)或GPU(图形处理器,即graphics processing unit)对数据库查询操作的连接算子进行硬件加速时,存在各种缓存不足的问题,如FPGA或GPU内的缓存模块无法同时加载大数据表的全部内容。现有哈希连接的硬件加速是针对哈希计算部分,加速效果还有待提高。
综上可见,如何提高哈希连接硬件加速效果是本领域有待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种大数据表的哈希连接硬件加速方法、装置、设备及介质,能够有效提高哈希连接硬件加速效果。其具体方案如下:
第一方面,本申请公开了一种大数据表的哈希连接硬件加速方法,应用于加速板卡,包括:
接收连接操作类型指令;
利用连接表大小指令分别申请第一待连接数据表的第一内存空间以及第二待连接数据表的第二内存空间,以便将所述第一待连接数据表的各个第一分片存储至所述第一内存空间,并将所述第二待连接数据表的各个第二分片存储至所述第二内存空间;
根据所述连接操作类型指令以及预设并行处理行数,将所述第一内存空间中的各个所述第一分片和所述第二内存空间中的各个所述第二分片进行哈希连接计算,以得到对应的连接表行数据。
可选的,所述根据所述连接操作类型指令以及预设并行处理行数,将所述第一内存空间中的各个所述第一分片和所述第二内存空间中的各个所述第二分片进行哈希连接计算,以得到对应的连接表行数据,包括:
若所述连接操作类型指令为内连接计算指令,则读取所述第一内存空间中所述第一待连接数据表的当前第一分片,并生成所述当前第一分片的哈希计算构建阶段的当前哈希表;
基于预设并行处理行数获取所述当前哈希表中所述当前第一分片的行数据,并利用所述当前第一分片的行数据与所述第二内存空间中的各个满足第一预设条件的第二分片的行数据生成与所述当前第一分片对应的内连接表行数据;
读取所述第一内存空间中所述第一待连接数据表的下一第一分片,将所述下一第一分片更新为所述当前第一分片,并重新跳转至所述生成所述当前第一分片的哈希计算构建阶段的当前哈希表的步骤,直至得到与各个所述第一分片分别对应的内连接表行数据。
可选的,所述利用所述当前第一分片的行数据与所述第二内存空间中的各个满足第一预设条件的第二分片的行数据生成与所述当前第一分片对应的内连接表行数据,包括:
读取所述第二内存空间中所述第二待连接数据表的当前第二分片,并生成所述当前第二分片的哈希计算探测阶段的当前哈希值;
基于预设并行处理行数获取所述当前哈希值中所述当前第二分片的行数据,并判断所述当前第二分片的行数据是否满足第一预设条件,若满足则利用所述当前第一分片的行数据与所述当前第二分片的行数据生成与所述当前第二分片对应的内连接表行数据;
读取所述第二内存空间中所述第二待连接数据表的下一第二分片,将所述下一第二分片更新为所述当前第二分片,并重新跳转至所述生成所述当前第二分片的哈希计算探测阶段的当前哈希值的步骤,直至得到与各个所述第二分片分别对应的内连接表行数据,以得到与所述当前第一分片对应的内连接表行数据。
可选的,所述根据所述连接操作类型指令以及预设并行处理行数,将所述第一内存空间中的各个所述第一分片和所述第二内存空间中的各个所述第二分片进行哈希连接计算,以得到对应的连接表行数据,包括:
若所述连接操作类型指令为右连接计算指令,则申请与所述第二内存空间对应的第二备用内存,以便基于预设并行处理行数将所述第一内存空间中的各个所述第一分片、所述第二内存空间中的各个所述第二分片以及所述第二备用内存所存储的数据进行右连接计算,以得到对应的右连接表行数据;
相应的,所述基于预设并行处理行数将所述第一内存空间中的各个所述第一分片、所述第二内存空间中的各个所述第二分片以及所述第二备用内存所存储的数据进行右连接计算,以得到对应的右连接表行数据,包括:
读取所述第一内存空间中所述第一待连接数据表的当前第一分片,并生成所述当前第一分片的哈希计算构建阶段的当前哈希表;
基于预设并行处理行数获取所述当前哈希表中所述当前第一分片的行数据,利用所述当前第一分片的行数据、所述第二内存空间中的各个满足第二预设条件的第二分片的行数据以及所述第二备用内存所存储的各个不满足所述第二预设条件的第二分片的行数据生成与所述当前第一分片对应的右连接表行数据;
读取所述第一内存空间中所述第一待连接数据表的下一第一分片,将所述下一第一分片更新为所述当前第一分片,并重新跳转至所述生成所述当前第一分片的哈希计算构建阶段的当前哈希表的步骤,直至得到与各个所述第一分片分别对应的右连接表行数据。
可选的,所述根据所述连接操作类型指令以及预设并行处理行数,将所述第一内存空间中的各个所述第一分片和所述第二内存空间中的各个所述第二分片进行哈希连接计算,以得到对应的连接表行数据,包括:
若所述连接操作类型指令为左连接计算指令,则申请与所述第一内存空间对应的第一备用内存,以便基于预设并行处理行数将所述第一内存空间中的各个所述第一分片、所述第二内存空间中的各个所述第二分片以及所述第一备用内存所存储的数据进行左连接计算,以得到左连接表行数据;
相应的,所述基于预设并行处理行数将所述第一内存空间中的各个所述第一分片、所述第二内存空间中的各个所述第二分片以及所述第一备用内存所存储的数据进行左连接计算,以得到左连接表行数据,包括:
基于左连接数据行的格式分别生成所述第一内存空间中所述第一分片的行数据以及所述第二内存空间中所述第二分片的行数据;
基于预设并行处理行数利用所述第一内存空间中满足第三预设条件的第一分片的行数据、所述第二内存空间中所述第二分片的行数据以及所述第一备用内存所存储的不满足所述第三预设条件的第一分片的行数据进行哈希连接计算,以得到左连接表行数据。
可选的,所述根据所述连接操作类型指令以及预设并行处理行数,将所述第一内存空间中的各个所述第一分片和所述第二内存空间中的各个所述第二分片进行哈希连接计算,以得到对应的连接表行数据,包括:
若所述连接操作类型指令为全连接计算指令,则申请与所述第一内存空间对应的所述第一备用内存以及与所述第二内存空间对应的所述第二备用内存;
基于预设并行处理行数将所述第一内存空间中的各个所述第一分片、所述第二内存空间中的各个所述第二分片以及所述第二备用内存所存储的数据进行右连接计算,以得到对应的右连接表行数据;
基于所述预设并行处理行数将所述第一内存空间中的各个所述第一分片、所述第二内存空间中的各个所述第二分片以及所述第一备用内存所存储的数据进行左连接计算,得到对应的左连接表行数据,并丢弃得到的左连接表行数据,以得到对应的全连接表行数据。
可选的,所述将所述第一待连接数据表的各个第一分片存储至所述第一内存空间,并将所述第二待连接数据表的各个第二分片存储至所述第二内存空间,包括:
分别对所述第一待连接数据表和所述第二待连接数据表进行切片处理,以得到所述第一待连接数据表的各个第一分片和所述第二待连接数据表的各个第二分片;
将所述第一待连接数据表的各个所述第一分片存储至所述第一内存空间,并将所述第二待连接数据表的各个所述第二分片存储至所述第二内存空间。
第二方面,本申请公开了一种大数据表的哈希连接硬件加速装置,应用于加速板卡,包括:
指令接收模块,用于接收连接操作类型指令;
分片存储模块,用于利用连接表大小指令分别申请第一待连接数据表的第一内存空间以及第二待连接数据表的第二内存空间,以便将所述第一待连接数据表的各个第一分片存储至所述第一内存空间,并将所述第二待连接数据表的各个第二分片存储至所述第二内存空间;
哈希连接模块,用于根据所述连接操作类型指令以及预设并行处理行数,将所述第一内存空间中的各个所述第一分片和所述第二内存空间中的各个所述第二分片进行哈希连接计算,以得到对应的连接表行数据。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的大数据表的哈希连接硬件加速方法的步骤。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的大数据表的哈希连接硬件加速方法的步骤。
本申请有益效果为:首先接收连接操作类型指令;利用连接表大小指令分别申请第一待连接数据表的第一内存空间以及第二待连接数据表的第二内存空间,以便将所述第一待连接数据表的各个第一分片存储至所述第一内存空间,并将所述第二待连接数据表的各个第二分片存储至所述第二内存空间;根据所述连接操作类型指令以及预设并行处理行数,将所述第一内存空间中的各个所述第一分片和所述第二内存空间中的各个所述第二分片进行哈希连接计算,以得到对应的连接表行数据。由此可见,本申请应用于加速板卡,在将第一待连接数据表的各个第一分片存储至第一内存空间,并将第二待连接数据表的各个第二分片存储至第二内存空间之后,可以根据连接操作类型指令将第一内存空间中的各个第一分片和第二内存空间中的各个第二分片进行哈希连接计算,以得到对应的连接表行数据,并且因为加速板卡可以并行处理多行数据的哈希连接,因此在将第一分片和第二分片进行哈希连接计算时,可以同时处理多行数据,加快哈希连接计算速度,也即能够有效提高哈希连接硬件加速效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种大数据表的哈希连接硬件加速装置方法流程图;
图2为本申请公开的一种具体的硬件加速结构示意图;
图3为本申请公开的一种具体的内连接计算流程图;
图4为本申请公开的一种具体的内连接计算示意图;
图5为本申请公开的一种具体的右连接计算流程图;
图6为本申请公开的一种具体的右连接计算示意图;
图7为本申请公开的一种具体的左连接计算流程图;
图8为本申请公开的一种具体的左连接计算示意图;
图9为本申请公开的一种具体的全连接计算流程图;
图10为本申请公开的一种大数据表的哈希连接硬件加速装置结构示意图;
图11为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着摩尔定律终将失效论的发展,数据库加速领域引入了硬件加速。使用FPGA或GPU对数据库查询操作的连接算子进行硬件加速时,存在各种缓存不足的问题,如FPGA或GPU内的缓存模块无法同时加载大数据表的全部内容。现有哈希连接的硬件加速是针对哈希计算部分,加速效果还有待提高。
为此本申请相应的提供了一种大数据表的哈希连接硬件加速方案,能够有效提高哈希连接硬件加速效果。
参见图1所示,本申请实施例公开了一种大数据表的哈希连接硬件加速方法,应用于加速板卡,包括:
步骤S11:接收连接操作类型指令。
本实施例中,例如图2所示的一种具体的硬件加速结构示意图,通过FPGA硬件加速单元的PCIE(peripheral component interconnect express)接口接收连接操作类型指令,接收的连接操作类型指令包含了将第一待连接数据表和第二待连接数据表哈希连接的类型,哈希连接类型例如为内连接、全连接、左连接、右连接。其中,加速板卡例如为现场可编程逻辑门阵列。
步骤S12:利用连接表大小指令分别申请第一待连接数据表的第一内存空间以及第二待连接数据表的第二内存空间,以便将所述第一待连接数据表的各个第一分片存储至所述第一内存空间,并将所述第二待连接数据表的各个第二分片存储至所述第二内存空间。
本实施例中,所述将所述第一待连接数据表的各个第一分片存储至所述第一内存空间,并将所述第二待连接数据表的各个第二分片存储至所述第二内存空间,包括:分别对所述第一待连接数据表和所述第二待连接数据表进行切片处理,以得到所述第一待连接数据表的各个第一分片和所述第二待连接数据表的各个第二分片;将所述第一待连接数据表的各个所述第一分片存储至所述第一内存空间,并将所述第二待连接数据表的各个所述第二分片存储至所述第二内存空间。可以理解的是,在将第一待连接数据表存储至第一内存空间、将第二待连接数据表存储至第二内存空间之前,需要判断第一待连接数据表和第二待连接数据表是否大于加速板卡的缓存,如果大于则须臾对第一待连接数据表和第二待连接数据表进行分片处理,得到的第一分片、第二分片的大小不会超过该缓存,然后再将各个第一分片存储至第一内存空间、将各个第二分片存储至第二内存空间。
步骤S13:根据所述连接操作类型指令以及预设并行处理行数,将所述第一内存空间中的各个所述第一分片和所述第二内存空间中的各个所述第二分片进行哈希连接计算,以得到对应的连接表行数据。
需要注意的是,根据连接操作类型的不同,申请备份缓存空间的情况也不同,例如当连接操作类型指令为内连接计算指令时,无需申请备份缓存空间、当连接操作类型指令为右连接计算指令时,需要申请与第二内存空间相同大小的第二备用内存、当连接操作类型指令为左连接计算指令时,需要申请与第一内存空间相同大小的第一备用内存、当连接操作类型指令为全连接计算指令时,需要申请与第一内存空间相同大小的第一备用内存以及与第二内存空间相同大小的第二备用内存,以便后续的哈希连接计算,得到对应的连接表行数据。
本申请有益效果为:首先接收连接操作类型指令;利用连接表大小指令分别申请第一待连接数据表的第一内存空间以及第二待连接数据表的第二内存空间,以便将所述第一待连接数据表的各个第一分片存储至所述第一内存空间,并将所述第二待连接数据表的各个第二分片存储至所述第二内存空间;根据所述连接操作类型指令以及预设并行处理行数,将所述第一内存空间中的各个所述第一分片和所述第二内存空间中的各个所述第二分片进行哈希连接计算,以得到对应的连接表行数据。由此可见,本申请应用于加速板卡,在将第一待连接数据表的各个第一分片存储至第一内存空间,并将第二待连接数据表的各个第二分片存储至第二内存空间之后,可以根据连接操作类型指令将第一内存空间中的各个第一分片和第二内存空间中的各个第二分片进行哈希连接计算,以得到对应的连接表行数据,并且因为加速板卡可以并行处理多行数据的哈希连接,因此在将第一分片和第二分片进行哈希连接计算时,可以同时处理多行数据,加快哈希连接计算速度,也即能够有效提高哈希连接硬件加速效果。
参见图3所示的一种具体的内连接计算流程图,本申请实施例公开了一种具体的大数据表的哈希连接硬件加速方法,应用于加速板卡,包括:
步骤S21:接收连接操作类型指令。
步骤S22:利用连接表大小指令分别申请第一待连接数据表的第一内存空间以及第二待连接数据表的第二内存空间,以便将所述第一待连接数据表的各个第一分片存储至所述第一内存空间,并将所述第二待连接数据表的各个第二分片存储至所述第二内存空间。
例如待连接的两个数据表分别为数据表A和数据表B,并为数据表A申请第一内存空间,为数据表B申请第二内存空间,然后对数据表A和数据表B进行分片处理,以得到数据表A的各个第一分片,数据表B的各个第二分片,以便将数据表A的各个第一分片写入至第一内存空间,将数据表B的各个第二分片写入至第二内存空间。
步骤S23:若所述连接操作类型指令为内连接计算指令,则读取所述第一内存空间中所述第一待连接数据表的当前第一分片,并生成所述当前第一分片的哈希计算构建阶段的当前哈希表。
本实施例中,DDR(Double Data Rate)控制器1读取第一内存空间缓存中的当前第一分片1-1数据,发送到哈希计算模块,生成哈希计算构建阶段的哈希表并缓存。
步骤S24:基于预设并行处理行数获取所述当前哈希表中所述当前第一分片的行数据,并利用所述当前第一分片的行数据与所述第二内存空间中的各个满足第一预设条件的第二分片的行数据生成与所述当前第一分片对应的内连接表行数据。
本实施例中,所述利用所述当前第一分片的行数据与所述第二内存空间中的各个满足第一预设条件的第二分片的行数据生成与所述当前第一分片对应的内连接表行数据,包括:读取所述第二内存空间中所述第二待连接数据表的当前第二分片,并生成所述当前第二分片的哈希计算探测阶段的当前哈希值;基于预设并行处理行数获取所述当前哈希值中所述当前第二分片的行数据,并判断所述当前第二分片的行数据是否满足第一预设条件,若满足则利用所述当前第一分片的行数据与所述当前第二分片的行数据生成与所述当前第二分片对应的内连接表行数据;读取所述第二内存空间中所述第二待连接数据表的下一第二分片,将所述下一第二分片更新为所述当前第二分片,并重新跳转至所述生成所述当前第二分片的哈希计算探测阶段的当前哈希值的步骤,直至得到与各个所述第二分片分别对应的内连接表行数据,以得到与所述当前第一分片对应的内连接表行数据。其中,满足第一预设条件即为当前第二分片和当前第一分片可以生成内连接表行数据,如果不能则被判定为不满足第一预设条件,并且丢弃无法生成内连接表行数据的当前第二分片2-1数据,如果满足第一预设条件,则将生成的内连接表行数据缓存至目标连接缓存模块,通过总线模块将目标连接缓存模块中的数据,发送到读数据DDR模块,完成当前第二分片2-1数据的哈希连接计算。
需要注意的是,在将当前第一分片和当前第二分片进行连接时,可以基于并行连接,以提高连接速度,例如确定预设并行处理行数为5,那么就可以同时对5行数据进行连接。
步骤S25:读取所述第一内存空间中所述第一待连接数据表的下一第一分片,将所述下一第一分片更新为所述当前第一分片,并重新跳转至所述生成所述当前第一分片的哈希计算构建阶段的当前哈希表的步骤,直至得到与各个所述第一分片分别对应的内连接表行数据。
可以理解的是,例如图4所示的一种具体的内连接计算示意图,需要将每一个第一分片与每一个第二分片进行内连接计算,以生成对应的内连接表行数据,并将其保存至目标连接缓存模块,以指令的形式,通过数据读写接口告知上位模块计算完成,以及哈希连接计算计算在读数据DDR模块中的存储地址,等待内连接表行数据被读出。
由此可见,本申请可以控制内连接的连接方式的输出数据缓存方式,以及数据分片计算的算法,可实现任意数据量大小的数据表连接加速,结构简单高效,通用性高。
参见图5所示的一种具体的右连接计算流程图,本申请实施例公开了一种具体的大数据表的哈希连接硬件加速方法,应用于加速板卡,包括:
步骤S31:接收连接操作类型指令。
步骤S32:利用连接表大小指令分别申请第一待连接数据表的第一内存空间以及第二待连接数据表的第二内存空间,以便将所述第一待连接数据表的各个第一分片存储至所述第一内存空间,并将所述第二待连接数据表的各个第二分片存储至所述第二内存空间。
步骤S33:若所述连接操作类型指令为右连接计算指令,则申请与所述第二内存空间对应的第二备用内存,以便基于预设并行处理行数将所述第一内存空间中的各个所述第一分片、所述第二内存空间中的各个所述第二分片以及所述第二备用内存所存储的数据进行右连接计算,以得到对应的右连接表行数据。
本实施例中,所述基于预设并行处理行数将所述第一内存空间中的各个所述第一分片、所述第二内存空间中的各个所述第二分片以及所述第二备用内存所存储的数据进行右连接计算,以得到对应的右连接表行数据,包括:读取所述第一内存空间中所述第一待连接数据表的当前第一分片,并生成所述当前第一分片的哈希计算构建阶段的当前哈希表;基于预设并行处理行数获取所述当前哈希表中所述当前第一分片的行数据,利用所述当前第一分片的行数据、所述第二内存空间中的各个满足第二预设条件的第二分片的行数据以及所述第二备用内存所存储的各个不满足所述第二预设条件的第二分片的行数据生成与所述当前第一分片对应的右连接表行数据;读取所述第一内存空间中所述第一待连接数据表的下一第一分片,将所述下一第一分片更新为所述当前第一分片,并重新跳转至所述生成所述当前第一分片的哈希计算构建阶段的当前哈希表的步骤,直至得到与各个所述第一分片分别对应的右连接表行数据。其中,满足第二预设条件即为当前第二分片可以进行右连接计算,例如图6所示的一种具体的右连接计算示意图,将所有的第一分片、相互之间第二分片进行右连接计算后,输出所有的右连接表行数据。
由此可见,本申请因为加速板卡可以并行处理多行数据的哈希连接,因此在将第一分片和第二分片进行哈希连接计算时,可以同时处理多行数据,加快哈希连接计算速度,也即能够有效提高哈希连接硬件加速效果
参见图7所示的一种具体的左连接计算流程图,本申请实施例公开了一种具体的大数据表的哈希连接硬件加速方法,应用于加速板卡,包括:
步骤S41:接收连接操作类型指令。
步骤S42:利用连接表大小指令分别申请第一待连接数据表的第一内存空间以及第二待连接数据表的第二内存空间,以便将所述第一待连接数据表的各个第一分片存储至所述第一内存空间,并将所述第二待连接数据表的各个第二分片存储至所述第二内存空间。
步骤S43:若所述连接操作类型指令为左连接计算指令,则申请与所述第一内存空间对应的第一备用内存,以便基于预设并行处理行数将所述第一内存空间中的各个所述第一分片、所述第二内存空间中的各个所述第二分片以及所述第一备用内存所存储的数据进行左连接计算,以得到左连接表行数据。
本实施例中,所述基于预设并行处理行数将所述第一内存空间中的各个所述第一分片、所述第二内存空间中的各个所述第二分片以及所述第一备用内存所存储的数据进行左连接计算,以得到左连接表行数据,包括:基于左连接数据行的格式分别生成所述第一内存空间中所述第一分片的行数据以及所述第二内存空间中所述第二分片的行数据;基于预设并行处理行数利用所述第一内存空间中满足第三预设条件的第一分片的行数据、所述第二内存空间中所述第二分片的行数据以及所述第一备用内存所存储的不满足所述第三预设条件的第一分片的行数据进行哈希连接计算,以得到左连接表行数据。其中,满足第三预设条件即为可以进行左连接计算,例如图8所示的一种具体的左连接计算示意图,将所有的第一分片、相互之间第二分片进行右连接计算后,输出所有的左连接表行数据。
由此可见,本申请在对第一待连接数据表和第二待连接数据表进行哈希连接时,根据加速板卡可以并行处理的特性,同时处理多行数据,即可实现任意数据量大小的数据表连接加速,速度显著提高。
参见图9所示的一种具体的全连接计算流程图,本申请实施例公开了一种具体的大数据表的哈希连接硬件加速方法,应用于加速板卡,包括:
步骤S51:接收连接操作类型指令。
步骤S52:利用连接表大小指令分别申请第一待连接数据表的第一内存空间以及第二待连接数据表的第二内存空间,以便将所述第一待连接数据表的各个第一分片存储至所述第一内存空间,并将所述第二待连接数据表的各个第二分片存储至所述第二内存空间。
步骤S53:若所述连接操作类型指令为全连接计算指令,则申请与所述第一内存空间对应的所述第一备用内存以及与所述第二内存空间对应的所述第二备用内存。
步骤S54:基于预设并行处理行数将所述第一内存空间中的各个所述第一分片、所述第二内存空间中的各个所述第二分片以及所述第二备用内存所存储的数据进行右连接计算,以得到对应的右连接表行数据。
本实施例中,若连接操作类型指令为全连接计算指令,则需要先进行右连接计算。对数据表A和数据表B的右连接计算,并在计算数据表A的最后一个第一分片数据时,将通过总线模块将探测表非目标连接行缓存模块数据,发送到读数据DDR模块和写数据DDR模块的第二备用内存中。
步骤S55:基于所述预设并行处理行数将所述第一内存空间中的各个所述第一分片、所述第二内存空间中的各个所述第二分片以及所述第一备用内存所存储的数据进行左连接计算,得到对应的左连接表行数据,并丢弃得到的左连接表行数据,以得到对应的全连接表行数据。
可以理解的是,当进行右连接计算后,需要再进行左连接计算。对数据表A和数据表B的左连接计算,同时读取第二内存空间中的第二分片2-N数据、第二备用内存中的第二分片3-N数据以及第一备用内存中的第一分片数据,发送到哈希计算模块,进行构建阶段的哈希计算,需要注意的是,需要丢弃左连接计算时,放入目标连接缓存模块中的所有数据,以完成全连接计算。
由此可见,本申请在完成全连接计算时,无需每次只处理一行数据,也就是说,在将第一分片和第二分片进行哈希连接计算时,可以同时处理多行数据,加快哈希连接计算速度,也即能够有效提高哈希连接硬件加速效果。
参见图10所示,本申请实施例公开了一种大数据表的哈希连接硬件加速装置,应用于加速板卡,包括:
指令接收模块11,用于接收连接操作类型指令;
分片存储模块12,用于利用连接表大小指令分别申请第一待连接数据表的第一内存空间以及第二待连接数据表的第二内存空间,以便将所述第一待连接数据表的各个第一分片存储至所述第一内存空间,并将所述第二待连接数据表的各个第二分片存储至所述第二内存空间;
哈希连接模块13,用于根据所述连接操作类型指令以及预设并行处理行数,将所述第一内存空间中的各个所述第一分片和所述第二内存空间中的各个所述第二分片进行哈希连接计算,以得到对应的连接表行数据。
本申请有益效果为:首先接收连接操作类型指令;利用连接表大小指令分别申请第一待连接数据表的第一内存空间以及第二待连接数据表的第二内存空间,以便将所述第一待连接数据表的各个第一分片存储至所述第一内存空间,并将所述第二待连接数据表的各个第二分片存储至所述第二内存空间;根据所述连接操作类型指令以及预设并行处理行数,将所述第一内存空间中的各个所述第一分片和所述第二内存空间中的各个所述第二分片进行哈希连接计算,以得到对应的连接表行数据。由此可见,本申请应用于加速板卡,在将第一待连接数据表的各个第一分片存储至第一内存空间,并将第二待连接数据表的各个第二分片存储至第二内存空间之后,可以根据连接操作类型指令将第一内存空间中的各个第一分片和第二内存空间中的各个第二分片进行哈希连接计算,以得到对应的连接表行数据,并且因为加速板卡可以并行处理多行数据的哈希连接,因此在将第一分片和第二分片进行哈希连接计算时,可以同时处理多行数据,加快哈希连接计算速度,也即能够有效提高哈希连接硬件加速效果。
进一步的,本申请实施例还提供了一种电子设备。图11是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图11为本申请实施例提供的一种电子设备的结构示意图。具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的由电子设备执行的大数据表的哈希连接硬件加速方法中的相关步骤。
本实施例中,电源23用于为电子设备上的各硬件设备提供工作电压;通信接口24能够为电子设备创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备执行的大数据表的哈希连接硬件加速方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223除了可以包括电子设备接收到的由外部设备传输进来的数据,也可以包括由自身输入输出接口25采集到的数据等。
进一步的,本申请实施例还公开了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的由大数据表的哈希连接硬件加速过程中执行的方法步骤。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种大数据表的哈希连接硬件加速方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种大数据表的哈希连接硬件加速方法,其特征在于,应用于加速板卡,包括:
接收连接操作类型指令;
利用连接表大小指令分别申请第一待连接数据表的第一内存空间以及第二待连接数据表的第二内存空间,以便将所述第一待连接数据表的各个第一分片存储至所述第一内存空间,并将所述第二待连接数据表的各个第二分片存储至所述第二内存空间;
根据所述连接操作类型指令以及预设并行处理行数,将所述第一内存空间中的各个所述第一分片和所述第二内存空间中的各个所述第二分片进行哈希连接计算,以得到对应的连接表行数据。
2.根据权利要求1所述的大数据表的哈希连接硬件加速方法,其特征在于,所述根据所述连接操作类型指令以及预设并行处理行数,将所述第一内存空间中的各个所述第一分片和所述第二内存空间中的各个所述第二分片进行哈希连接计算,以得到对应的连接表行数据,包括:
若所述连接操作类型指令为内连接计算指令,则读取所述第一内存空间中所述第一待连接数据表的当前第一分片,并生成所述当前第一分片的哈希计算构建阶段的当前哈希表;
基于预设并行处理行数获取所述当前哈希表中所述当前第一分片的行数据,并利用所述当前第一分片的行数据与所述第二内存空间中的各个满足第一预设条件的第二分片的行数据生成与所述当前第一分片对应的内连接表行数据;
读取所述第一内存空间中所述第一待连接数据表的下一第一分片,将所述下一第一分片更新为所述当前第一分片,并重新跳转至所述生成所述当前第一分片的哈希计算构建阶段的当前哈希表的步骤,直至得到与各个所述第一分片分别对应的内连接表行数据。
3.根据权利要求2所述的大数据表的哈希连接硬件加速方法,其特征在于,所述利用所述当前第一分片的行数据与所述第二内存空间中的各个满足第一预设条件的第二分片的行数据生成与所述当前第一分片对应的内连接表行数据,包括:
读取所述第二内存空间中所述第二待连接数据表的当前第二分片,并生成所述当前第二分片的哈希计算探测阶段的当前哈希值;
基于预设并行处理行数获取所述当前哈希值中所述当前第二分片的行数据,并判断所述当前第二分片的行数据是否满足第一预设条件,若满足则利用所述当前第一分片的行数据与所述当前第二分片的行数据生成与所述当前第二分片对应的内连接表行数据;
读取所述第二内存空间中所述第二待连接数据表的下一第二分片,将所述下一第二分片更新为所述当前第二分片,并重新跳转至所述生成所述当前第二分片的哈希计算探测阶段的当前哈希值的步骤,直至得到与各个所述第二分片分别对应的内连接表行数据,以得到与所述当前第一分片对应的内连接表行数据。
4.根据权利要求1所述的大数据表的哈希连接硬件加速方法,其特征在于,所述根据所述连接操作类型指令以及预设并行处理行数,将所述第一内存空间中的各个所述第一分片和所述第二内存空间中的各个所述第二分片进行哈希连接计算,以得到对应的连接表行数据,包括:
若所述连接操作类型指令为右连接计算指令,则申请与所述第二内存空间对应的第二备用内存,以便基于预设并行处理行数将所述第一内存空间中的各个所述第一分片、所述第二内存空间中的各个所述第二分片以及所述第二备用内存所存储的数据进行右连接计算,以得到对应的右连接表行数据;
相应的,所述基于预设并行处理行数将所述第一内存空间中的各个所述第一分片、所述第二内存空间中的各个所述第二分片以及所述第二备用内存所存储的数据进行右连接计算,以得到对应的右连接表行数据,包括:
读取所述第一内存空间中所述第一待连接数据表的当前第一分片,并生成所述当前第一分片的哈希计算构建阶段的当前哈希表;
基于预设并行处理行数获取所述当前哈希表中所述当前第一分片的行数据,利用所述当前第一分片的行数据、所述第二内存空间中的各个满足第二预设条件的第二分片的行数据以及所述第二备用内存所存储的各个不满足所述第二预设条件的第二分片的行数据生成与所述当前第一分片对应的右连接表行数据;
读取所述第一内存空间中所述第一待连接数据表的下一第一分片,将所述下一第一分片更新为所述当前第一分片,并重新跳转至所述生成所述当前第一分片的哈希计算构建阶段的当前哈希表的步骤,直至得到与各个所述第一分片分别对应的右连接表行数据。
5.根据权利要求4所述的大数据表的哈希连接硬件加速方法,其特征在于,所述根据所述连接操作类型指令以及预设并行处理行数,将所述第一内存空间中的各个所述第一分片和所述第二内存空间中的各个所述第二分片进行哈希连接计算,以得到对应的连接表行数据,包括:
若所述连接操作类型指令为左连接计算指令,则申请与所述第一内存空间对应的第一备用内存,以便基于预设并行处理行数将所述第一内存空间中的各个所述第一分片、所述第二内存空间中的各个所述第二分片以及所述第一备用内存所存储的数据进行左连接计算,以得到左连接表行数据;
相应的,所述基于预设并行处理行数将所述第一内存空间中的各个所述第一分片、所述第二内存空间中的各个所述第二分片以及所述第一备用内存所存储的数据进行左连接计算,以得到左连接表行数据,包括:
基于左连接数据行的格式分别生成所述第一内存空间中所述第一分片的行数据以及所述第二内存空间中所述第二分片的行数据;
基于预设并行处理行数利用所述第一内存空间中满足第三预设条件的第一分片的行数据、所述第二内存空间中所述第二分片的行数据以及所述第一备用内存所存储的不满足所述第三预设条件的第一分片的行数据进行哈希连接计算,以得到左连接表行数据。
6.根据权利要求5所述的大数据表的哈希连接硬件加速方法,其特征在于,所述根据所述连接操作类型指令以及预设并行处理行数,将所述第一内存空间中的各个所述第一分片和所述第二内存空间中的各个所述第二分片进行哈希连接计算,以得到对应的连接表行数据,包括:
若所述连接操作类型指令为全连接计算指令,则申请与所述第一内存空间对应的所述第一备用内存以及与所述第二内存空间对应的所述第二备用内存;
基于预设并行处理行数将所述第一内存空间中的各个所述第一分片、所述第二内存空间中的各个所述第二分片以及所述第二备用内存所存储的数据进行右连接计算,以得到对应的右连接表行数据;
基于所述预设并行处理行数将所述第一内存空间中的各个所述第一分片、所述第二内存空间中的各个所述第二分片以及所述第一备用内存所存储的数据进行左连接计算,得到对应的左连接表行数据,并丢弃得到的左连接表行数据,以得到对应的全连接表行数据。
7.根据权利要求1至6任一项所述的大数据表的哈希连接硬件加速方法,其特征在于,所述将所述第一待连接数据表的各个第一分片存储至所述第一内存空间,并将所述第二待连接数据表的各个第二分片存储至所述第二内存空间,包括:
分别对所述第一待连接数据表和所述第二待连接数据表进行切片处理,以得到所述第一待连接数据表的各个第一分片和所述第二待连接数据表的各个第二分片;
将所述第一待连接数据表的各个所述第一分片存储至所述第一内存空间,并将所述第二待连接数据表的各个所述第二分片存储至所述第二内存空间。
8.一种大数据表的哈希连接硬件加速装置,其特征在于,应用于加速板卡,包括:
指令接收模块,用于接收连接操作类型指令;
分片存储模块,用于利用连接表大小指令分别申请第一待连接数据表的第一内存空间以及第二待连接数据表的第二内存空间,以便将所述第一待连接数据表的各个第一分片存储至所述第一内存空间,并将所述第二待连接数据表的各个第二分片存储至所述第二内存空间;
哈希连接模块,用于根据所述连接操作类型指令以及预设并行处理行数,将所述第一内存空间中的各个所述第一分片和所述第二内存空间中的各个所述第二分片进行哈希连接计算,以得到对应的连接表行数据。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的大数据表的哈希连接硬件加速方法的步骤。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的大数据表的哈希连接硬件加速方法的步骤。
CN202310320489.XA 2023-03-27 2023-03-27 大数据表的哈希连接硬件加速方法、装置、设备及介质 Pending CN116361289A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310320489.XA CN116361289A (zh) 2023-03-27 2023-03-27 大数据表的哈希连接硬件加速方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310320489.XA CN116361289A (zh) 2023-03-27 2023-03-27 大数据表的哈希连接硬件加速方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN116361289A true CN116361289A (zh) 2023-06-30

Family

ID=86919276

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310320489.XA Pending CN116361289A (zh) 2023-03-27 2023-03-27 大数据表的哈希连接硬件加速方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN116361289A (zh)

Similar Documents

Publication Publication Date Title
KR20210090122A (ko) 분산형 모델 트레이닝 장치, 방법 및 컴퓨터 프로그램
KR20210156243A (ko) 딥러닝 프레임워크의 훈련 방법, 장치 및 저장 매체
CN114841315A (zh) 混合专家模型实现方法、系统、电子设备及存储介质
CN115168162B (zh) 容器环境基于ingress控制器多灰度发布方法、设备及存储介质
CN111225010A (zh) 数据处理方法、数据处理系统以及装置
US20220351490A1 (en) Convolution calculation method, convolution calculation apparatus, and terminal device
CN115934625B (zh) 一种用于远程直接内存访问的敲门铃方法、设备及介质
CN115880132A (zh) 图形处理器、矩阵乘法任务处理方法、装置及存储介质
CN110955390B (zh) 数据处理方法、装置、电子设备和存储介质
CN115145748A (zh) 跨进程通信方法、装置、设备以及存储介质
CN113673476B (zh) 人脸识别模型训练方法、装置、存储介质与电子设备
CN113778644B (zh) 任务的处理方法、装置、设备及存储介质
CN111953569B (zh) 状态信息上报方法、装置、设备及介质
CN111930510B (zh) 电子设备和数据处理方法
CN111324310A (zh) 一种数据的读取方法、装置及计算机系统
US20240152458A1 (en) Data caching method, system and device in ai cluster, and computer medium
CN116361289A (zh) 大数据表的哈希连接硬件加速方法、装置、设备及介质
CN114443197B (zh) 界面处理方法、装置、电子设备及存储介质
CN114743586A (zh) 存储器模型的镜像存储实现方法、装置及存储介质
CN114036218A (zh) 一种数据模型切换方法、装置、服务器和存储介质
CN117170986B (zh) 芯片一致性处理系统,及其方法、装置、设备及介质
US11870740B2 (en) Intelligent, personalized, and dynamic chatbot conversation
CN116483747B (zh) 行情快照下发方法、装置、设备及介质
CN118394919B (zh) 生成式对话模型推理方法、设备、介质及计算机程序产品
CN116662276B (zh) 数据处理方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination