CN117331970A - 数据查询方法、装置、计算机存储介质及加速卡 - Google Patents
数据查询方法、装置、计算机存储介质及加速卡 Download PDFInfo
- Publication number
- CN117331970A CN117331970A CN202311430885.4A CN202311430885A CN117331970A CN 117331970 A CN117331970 A CN 117331970A CN 202311430885 A CN202311430885 A CN 202311430885A CN 117331970 A CN117331970 A CN 117331970A
- Authority
- CN
- China
- Prior art keywords
- data
- query
- queried
- data set
- target
- 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
Links
- 230000001133 acceleration Effects 0.000 title claims abstract description 63
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000005540 biological transmission Effects 0.000 claims description 37
- 238000012545 processing Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 4
- 230000000737 periodic effect Effects 0.000 claims description 3
- 230000011218 segmentation Effects 0.000 claims description 3
- 239000000306 component Substances 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据查询方法、装置、计算机存储介质及加速卡,其中,数据查询方法用于与主计算设备连接的加速卡,加速卡中包括加速核,包括:接收主计算设备发送的目标数据集、待查询数据集和查询参数,目标数据集中包含多个目标数据,待查询数据集中包含多个待查询数据,查询参数包括查询条件;通过加速核,基于查询条件,在待查询数据集中并行执行对多个目标数据的查询操作,得到针对各目标数据的查询结果,以使主计算设备读取查询结果。本实施例的数据查询过程是在加速卡中完成的,避免主计算设备中执行的其他任务影响查询效率,提高了查询效率;另外,加速核在待查询数据集中并行执行对多个目标数据的查询操作,进一步提高查询效率。
Description
技术领域
本申请实施例涉及数据处理技术领域,尤其涉及一种数据查询方法、装置、计算机存储介质及加速卡。
背景技术
目前,在数据库中进行数据查询时,通常是通过主计算设备执行索引嵌套循环函数实现的,索引嵌套循环函数是确定驱动表和被驱动表,以驱动表中的数据为目标,在被驱动表中查询该目标,并将查询结果输出。
而由于主计算设备的算力有限,并且需要执行多个数据处理任务,从而导致主计算设备的算力不足,使得查询效率低。
发明内容
有鉴于此,本申请实施例提供一种数据查询方法、装置、计算机存储介质及加速卡,以至少部分解决上述问题。
根据本申请实施例的第一方面,提供了一种数据查询方法,用于与主计算设备连接的加速卡,加速卡中包括加速核,数据查询方法包括:接收主计算设备发送的目标数据集、待查询数据集和查询参数,目标数据集中包含多个目标数据,待查询数据集中包含多个待查询数据,查询参数包括查询条件;通过加速核,基于查询条件,在待查询数据集中并行执行对多个目标数据的查询操作,得到针对各目标数据的查询结果,以使主计算设备读取查询结果,其中,查询操作指针对每个目标数据在待查询数据集中匹配符合查询条件的待查询数据,并将匹配成功的目标数据的信息和待查询数据的信息输出为查询结果。
根据本申请实施例的第二方面,提供了一种数据查询装置,用于与主计算设备连接的加速卡,加速卡中包括加速核,数据查询装置包括数据接收模块和数据查询模块,其中,数据接收模块用于接收主计算设备发送的目标数据集、待查询数据集和查询参数,目标数据集中包含多个目标数据,待查询数据集中包含多个待查询数据,查询参数包括查询条件;数据查询模块用于通过加速核,基于查询条件,在待查询数据集中并行执行对多个目标数据的查询操作,得到针对各目标数据的查询结果,以使主计算设备读取查询结果,其中,查询操作指针对每个目标数据在待查询数据集中匹配符合查询条件的待查询数据,并将匹配成功的目标数据的信息和待查询数据的信息输出为查询结果。
根据本申请实施例的第三方面,提供了一种加速卡,包括存储区和加速核,其中,存储区用于存储从主计算设备接收的目标数据集、待查询数据集和查询参数,以及存储查询结果,目标数据集中包含多个目标数据,待查询数据集中包含多个待查询数据,查询参数包括查询条件;加速核用于基于查询条件,在待查询数据集中并行执行对多个目标数据的查询操作,得到针对各目标数据的查询结果,以使主计算设备读取查询结果,其中,查询操作指针对每个目标数据在待查询数据集中匹配符合查询条件的待查询数据,并将匹配成功的目标数据的信息和待查询数据的信息输出为查询结果。
根据本申请实施例的第四方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的方法。
本申请实施例的数据查询方法、装置、计算机存储介质及加速卡,其中,数据查询方法用于与主计算设备连接的加速卡,加速卡中包括加速核,包括:接收主计算设备发送的目标数据集、待查询数据集和查询参数,目标数据集中包含多个目标数据,待查询数据集中包含多个待查询数据,查询参数包括查询条件;通过加速核,基于查询条件,在待查询数据集中并行执行对多个目标数据的查询操作,得到针对各目标数据的查询结果,以使主计算设备读取查询结果,其中,查询操作指针对每个目标数据在待查询数据集中匹配符合查询条件的待查询数据,并将匹配成功的目标数据的信息和待查询数据的信息输出为查询结果。本实施例的整个数据处理过程是在加速卡中完成的,而主计算设备只需发送数据以及读取处理结果即可,从而减少了数据处理对主计算设备的算力的占用,避免了主计算设备中执行的其他任务影响数据查询效率,从而提高了处理效率;另外,加速核基于查询条件,在待查询数据集中并行执行对多个目标数据的查询操作,可以进一步提高查询效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为根据本申请示例性实施例的一种数据查询方法的应用场景示意图;
图2为根据本申请示例性实施例的一种数据查询方法的步骤流程图;
图3为根据本申请另一示例性实施例的数据查询方法的步骤流程图;
图4为根据本申请示例性实施例的一种数据查询装置的结构框图。
具体实施方式
为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
在对本申请实施例的数据查询方法进行说明之前,先对数据查询方法的应用场景进行简略说明,以便于理解。
参照图1,图1为根据本申请示例性实施例的一种数据查询方法的应用场景示意图。本实施例的数据查询方法可以用于与主计算设备连接的加速卡中。
其中,主计算设备执行数据查询所在的任务的设备,加速卡是插接到主计算设备上的、用于提高主计算设备在某一方面的处理速度的附属设备。例如,加速卡具有标准的PCIe接口,可以通过PCIE插槽插接在著计算设备上,PCIE是指PCI-Express,是一种总线和接口标准,加速卡与主计算设备可以通过PCIE传输通道进行数据传输.在本实施例中,加速卡用于提高主计算设备数据处理的速度。
主计算设备可以是客户端,也可以是服务器。它可以体现为桌面计算机、膝上型计算机、手机、PDA、专用终端,也可以体现为若干终端组成的集群,,另外,它还可以是一台终端上划分出来的一部分,如虚拟机。加速卡可以为附属设备,例如插接在卡槽上的卡,也可以为与主计算设备通过接口连接的另一台独立的设备。本实施例对此不进行限制。
本实施例中,主计算设备执行任务。当任务的一部分需要进行数据查询时,将与进行数据查询相关的数据传输到加速卡,由加速卡获得数据查询的查询结果后,主计算设备从加速卡中读取数据查询,从而减轻主计算设备进行数据处理的算力占用,避免了主计算设备中执行的其他任务影响数据查询的效率,从而提高了查询效率。
如图1所示,主计算设备包括处理器(Central Processing Unit,CPU)和内存。处理器是用于执行主计算设备的任务的核心部件。内存是存储主计算设备的任务需要的数据、以及主计算设备执行任务产生的中间结果和最终结果的部件。例如,本实施例中的目标数据集、待查询数据集和查询参数也是存储在内存中。在需要执行数据查询时,处理器将目标数据集、待查询数据集和查询参数从内存调出,通过主计算设备和加速卡之间的传输通道发送到加速卡。
加速卡包括加速核。加速核是加速卡中用于对数据进行查询处理的处理单元。加速卡还可以包括存储区,存储区是加速卡中用于存储数据的区域,如存储区可以是双倍速率同步动态随机存储器(Double Data Rate,DDR)。由于加速卡中具有加速核和存储区,因此,它在进行数据查询时,可以一次性接收需要进行数据查询的相关数据,不用多次与主计算设备进行数据传输,从而减少了数据传输开销。
参照图2,示出了根据本申请示例性实施例的一种数据查询方法的步骤流程图。
本实施例的数据查询方法用于与主计算设备连接的加速卡,加速卡中包括加速核,具体包括以下步骤:
S202、接收主计算设备发送的目标数据集、待查询数据集和查询参数。
其中,目标数据集中包含多个目标数据,待查询数据集中包含多个待查询数据,查询参数包括查询条件。
示例性地,目标数据集和待查询数据集是要进行数据查询的两组数据,其中,慕白哦数据集中的目标数据是用来查询的查询对象,待查询数据集中的待查询数据是被查询对象。目标数据和待查询数据均可以是INT32、INT64、DECIMAL32、DECIMAL64等之中任一数据类型的数据,本实施例对此不进行限制。目标数据集和待查询数据集中包含的数据量可以相同,也可以不同,本实施例对此不进行限制。目标数据和待查询数据的数据类型相同。查询条件是用于针对每个目标数据在待查询数据集中判断每个待查询参数是否是目标待查询数据,查询条件可以包括六种操作符中的任意一种,例如“==”即等于,“!=”即不等于,“>”即大于,“>=”即大于或等于,“<”即小于,“<=”即小于或等于,本实施例对此不进行限制。
S204、通过加速核,基于查询条件,在待查询数据集中并行执行对多个目标数据的查询操作,得到针对各目标数据的查询结果,以使主计算设备读取查询结果。
其中,查询操作指针对每个目标数据在待查询数据集中匹配符合查询条件的待查询数据,并将匹配成功的目标数据的信息和待查询数据的信息输出为查询结果。
示例性地,加速核可以基于查询条件,在待查询数据集中并行执行对多个目标数据的查询操作,例如,目标数据集可以为[1,2,7,9,5,1,4,2],待查询数据集可以为[3,5,1,10,3,1],查询条件可以为“==”,即在待查询数据集中同步匹配等于每个目标数据的目标待查询数据,将匹配成功的目标数据的信息和待查询数据的信息输出为查询结果。例如,针对第一个目标数据“1”,在待查询数据中匹配“==1”的目标待查询数据,可以确定待查询数据集中的第三个待查询数据和第六个待查询数据为匹配成功的目标待查询数据,则将第一个目标数据的信息和第三个和第六个待查询数据的信息输出为查询结果。其中目标数据的信息可以是指目标数据在目标数据集中的位置信息,待查询数据的信息可以是指待查询数据在待查询数据集中的位置信息。
在一种可选实现方式中,目标数据集还包括目标数据对应的第一索引值,待查询数据集中还包括待查询数据对应的第二索引值。针对每个目标数据在待查询数据集中匹配符合查询条件的待查询数据,并将匹配成功的目标数据的信息和待查询数据的信息输出为查询结果,包括:针对每个目标数据在待查询数据集中匹配符合查询条件的待查询数据,直至遍历待查询数据集;将匹配到符合查询条件的目标数据对应的第一索引值输出为第一查询结果,得到目标数据的信息;将匹配到符合查询条件的待查询数据对应的第二索引值输出为第二查询结果,得到待查询数据的信息,将目标数据的信息和待查询数据的信息输出为查询结果。
示例性地,目标数据集还包括目标数据对应的第一索引值,待查询数据集中还包括待查询数据对应的第二索引值,目标数据集中的第一索引值可以是根据目标数据的位置顺序进行编号的序列号,例如,目标数据集为[1,2,7,9,5,1,4,2]时,对应的第一索引值可以是[0,1,2,3,4,5,6,7],同样地,待查询数据集为[3,5,1,10,3,1]时,对应的第二索引值可以是[0,1,2,3,4,5],本实施例对此不进行限制。针对每个目标数据在待查询数据集中匹配符合查询条件的待查询数据,直至遍历待查询数据集,将匹配到符合查询条件的目标数据对应的第一索引值输出为第一查询结果,将匹配到符合查询条件的待查询数据对应的第二索引值输出为第二查询结果。其中,每匹配成功一次,则将对应的目标数据的第一索引值和待查询数据的第二索引值输出。例如,查询条件为“==”,针对第一索引值为“0”的目标数据“1”,在待查询数据中匹配“==1”的目标待查询数据,可以确定第二索引值为“2”的待查询数据“1”和第二索引值为“5”的待查询数据“1”为匹配成功的目标待查询数据,则将输出的第一索引值为[0,0],输出的第二索引值为[2,5],同样地,针对目标数据集中的其他目标数据进行查询,最终可以得到第一查询结果为[0,0,4,5,5],第二查询结果为[2,5,1,2,5]。
本实现方式中,通过遍历待查询数据集,针对每个目标数据在待查询数据集中匹配符合查询条件的待查询数据;将匹配到符合查询条件的目标数据对应的第一索引值输出为第一查询结果,得到目标数据的信息;将匹配到符合查询条件的待查询数据对应的第二索引值输出为第二查询结果,得到待查询数据的信息,将目标数据的信息和待查询数据的信息输出为查询结果。利用匹配成功的目标数据对应的第一索引值和待查询数据对应的第二索引值,作为目标数据的信息和待查询数据的信息,即输出的查询结果,使得查询结果的表现方式简单明了。
本实施例中的数据查询方法用于与主计算设备连接的加速卡,加速卡中包括加速核,包括:接收主计算设备发送的目标数据集、待查询数据集和查询参数,目标数据集中包含多个目标数据,待查询数据集中包含多个待查询数据,查询参数包括查询条件;通过加速核,基于查询条件,在待查询数据集中并行执行对多个目标数据的查询操作,得到针对各目标数据的查询结果,以使主计算设备读取查询结果,其中,查询操作指针对每个目标数据在待查询数据集中匹配符合查询条件的待查询数据,并将匹配成功的目标数据的信息和待查询数据的信息输出为查询结果。本实施例的整个数据处理过程是在加速卡中完成的,而主计算设备只需发送数据以及读取处理结果即可,从而减少了数据处理对主计算设备的算力的占用,避免了主计算设备中执行的其他任务影响数据查询效率,从而提高了处理效率;另外,加速核基于查询条件,在待查询数据集中并行执行对多个目标数据的查询操作,可以进一步提高查询效率。
参照图3,示出了根据本申请示例性实施例的一种数据查询方法的步骤流程图。
本实施例中的加速卡中还包括存储区,存储区用于将接收到的目标数据集、待查询数据集和查询参数进行存储。本实施例的数据查询方法的具体步骤包括:
S302、接收主计算设备发送的目标数据集、待查询数据集和查询参数。
其中,目标数据集中包含多个目标数据,待查询数据集中包含多个待查询数据,查询参数包括查询条件。
需要说明的是,步骤S302可参照上述步骤S202的具体实施方式进行实施,在此不进行赘述。
S304、通过加速核从存储区读取目标数据集、待查询数据集和查询参数。
示例性地,加速卡的存储区是按照存储单元来存储数据的,因此,目标数据集和待查询数据集在存储区中会被按照存储单元长度分成存储单元存储。存储单元长度假设为64位,即64bit。例如,目标数据集和待查询数据集中的数据类型均为INT64,即每个数据占用64bit,假设目标数据集中包含20个目标数据,即20*64=1280bit,待查询数据集中包含30个目标数据,即30*64=1920bit。因此,要将1280bit的目标数据和1920bit的待查询数据分别以64bit的数据宽度分配到多个存储单元中。存储区存储查询参数,也基于类似的原理。
目标数据集包含多个目标数据,待查询数据集包括多个待查询数据,查询参数还可以包括目标数据集包含的目标数据的数据量,以及待查询数据集包括的待查询数据的数据量。
在一种可选实现方式中,通过加速核从存储区读取目标数据集、待查询数据集和查询参数,包括:通过加速核从存储区读取查询参数;基于预设传输数据量,分别读取目标数据集得到至少一个目标子数据集,读取待查询数据集得到至少一个待查询子数据集。
示例性地,预设传输数据量为存储区进行单次传输的数据量。预设传输数据量是由加速卡的硬件决定的,预设传输数据量可由本领域技术人员根据具体使用的加速卡的硬件特性确定,本实施例对此不进行限制。其中,由于目标数据集和待查询数据集的数据量可能不是预设传输数据量的整数倍,因此最后一个目标子数据集或待查询子数据集中包含部分有效数据和部分无效数据,最后一个目标子数据集和待查询子数据集中的无效数据的位置信息可以通过查询参数中包括的目标数据集包含的目标数据的数据量,待查询数据集包括的待查询数据的数据量以及上述预设传输数据量确定。例如,假设目标数据集中包含20个目标数据,即20*64=1280bit,待查询数据集中包含30个目标数据,即30*64=1920bit。预设传输数据量可以为512bit,则基于预设传输数据量512bit,即8个数据(目标数据集和待查询数据集中的数据类型均为INT64),,分别读取目标数据集(例如数据量为20)得到3个目标子数据集,读取待查询数据集(例如数据量为30)得到4个待查询子数据集。则可以确定最后一个目标子数据集包括256bit的有效数据和256bit的无效数据,即4个有效数据和4个无效数据;最后一个待查询子数据集包括384bit的有效数据和128bit的无效数据,即6个有效数据和2个无效数据,在进行查询时,对于目标子数据集和待查询子数据集中的无效数据不进行查询。
本实现方式中,通过设置预设传输数据量,可以分批次从存储区读取目标子数据集和待查询子数据集,直至将目标数据集和待查询数据集读取完成。从而在目标数据集和待查询数据集的数据量过大时,可以根据加速卡的硬件处理能力分批次进行数据处理,从而使加速卡在数据查询过程中的数据处理性能处于最佳状态,从而使得查询效率更高。
在一种可选实现方式中,基于预设传输数据量,分别读取目标数据集得到至少一个目标子数据集,读取待查询数据集得到至少一个待查询子数据集,包括:基于预设传输数据量,将目标数据集分为至少一个目标子数据集,将待查询数据集分为至少一个待查询子数据集;分周期从存储区中读取目标子数据集和待查询子数据集。其中,每一周期读取一个目标子数据集,并在每一周期内分批次读取待查询子数据集,每一批次读取一个待查询子数据集,直至将目标数据集和待查询数据集读取完成。
示例性地,在上述例子中,将目标数据集分为3个目标子数据集,将待查询数据集分为4个待查询子数据集。加速核分周期从存储区中读取目标子数据集和待查询子数据集。其中,每一周期读取一个目标子数据集,并在每一周期内分批次读取待查询子数据集,每一批次读取一个待查询子数据集,例如,3个目标子数据集则需要分3个周期读取,在第一个周期读取第一个目标子数据集,并分批次读取待查询子数据集,每一批次读取一个待查询子数据集,并进行处理,直至将4个待查询子数据集读取完成,则进入第二个周期读取第二个目标子数据集,并分批次读取待查询子数据集,每一批次读取一个待查询子数据集,并进行处理,直至将4个待查询子数据集读取完成,循环上述过程,直至读取将目标子数据集和待查询子数据集读取完成。
本实现方式中,通过分周期从存储区中读取目标子数据集和待查询子数据集。其中,每一周期读取一个目标子数据集,并在每一周期内分批次读取待查询子数据集,每一批次读取一个待查询子数据集,直至将目标数据集和待查询数据集读取完成。以便于后续可以分周期分批次针对于每个目标子数据集进行查询操作,从而使加速卡在数据查询过程中的数据处理性能处于最佳状态,从而使得查询效率更高。
S306、基于查询条件,在待查询数据集中并行执行对多个目标数据的查询操作,得到针对各目标数据的查询结果,并将查询结果写入存储区。
需要说明的是,步骤S306中的“基于查询条件,在待查询数据集中并行执行对多个目标数据的查询操作,得到针对各目标数据的查询结果”可参照上述步骤S204的具体实施方式进行实施,在此不进行赘述。最终,加速核将得到的查询结果写入到存储区,写入的方式可以是突发模式,本实施例对此不进行限制。
在一种可选实现方式中,基于查询条件,在待查询数据集中并行执行对多个目标数据的查询操作,得到针对各目标数据的查询结果,包括:对于每一周期读取的目标子数据集中的目标数据,根据查询条件,在每个待查询子数据集中并行执行对多个目标数据的查询操作,直至遍历所有的待查询子数据集,得到每一周期对应的子查询结果;将多个子查询结果进行整合,得到查询结果。
示例性地,假设查询条件为“==”,根据预设传输数据量,读取目标数据集得到2个目标子数据集,读取待查询数据集得到2个待查询子数据集。则2个目标子数据集则需要分2个周期读取,每个周期分别读取2个待查询子数据集,得到每一周期对应的子查询结果,例如,在第一周期中,读取的第一个目标数据子集为[11,2,7,9,5,1,4,2],第一周期中第一批次读取第一个待查询数据子集为[3,5,1,10,3,1],针对第一个目标数据子集中的每个目标数据进行查询操作,最终可以得到第一批次对应的查询结果。假设第二批次读取第二个待查询数据子集为[0,1,4,7,3,0],再次针对第一个目标数据子集中的每个目标数据进行查询操作,最终可以得到第二批次对应的查询结果,整合第一批次对应的查询结果和第二批次对应的查询结果,可以得到第一周期对应的子查询结果,即第一个目标子数据集对应的子查询结果,同样地,通过上述方式可以得到第二周期对应的子查询结果,即第二个目标子数据集对应的子查询结果。将2个子查询结果进行整合,则可以得到最终的查询结果,即目标数据集对应的查询结果。
本实现方式中,通过对于每一周期读取的目标子数据集中的目标数据,根据查询条件,在每个待查询子数据集中并行执行对多个目标数据的查询操作,直至遍历所有的待查询子数据集,得到每一周期对应的子查询结果;将多个子查询结果进行整合,得到查询结果。可以保证针对于每个目标子数据集的查询操作,均遍历所有的待查询子数据集进行查询后,输出查询结果,避免出现对于某个待查询子数据集漏查询或重复查询的问题。
在一种可选实现方式中,将查询结果写入存储区,包括:根据预设传输数据量,将查询结果中的数据进行分段拼接,得到多个查询结果数据段;将查询结果数据段分次写入存储区。
示例性地,假设第一周期中,读取的第一个目标数据子集为[1,2,7,9,5,1,4,2]时,对应的第一索引值是[0,1,2,3,4,5,6,7],第一周期中第一批次读取第一个待查询数据子集为[3,5,1,10,3,1],对应的第二索引值是[0,1,2,3,4,5],针对第一个目标数据子集中的每个目标数据进行查询操作,最终可以得到第一批次对应的目标数据查询结果为[0,0,4,5,5],待查询数据查询结果为[2,5,1,2,5]。此时,目标数据查询结果和待查询数据查询结果均未达到预设传输数据量(例如512bit,即8个数据),假设第二批次读取第二个待查询数据子集为[0,1,4,7,3,0],对应的第二索引值是[6,7,8,9,10,11],再次针对第一个目标数据子集中的每个目标数据进行查询操作,最终可以得到第二批次对应的目标数据查询结果为[0,2,5],待查询数据查询结果为[7,9,7]。则将第一批次对应的目标数据查询结果[0,0,4,5,5]和第二批次对应的目标数据查询结果[0,2,5]进行拼接输出为目标数据对应的查询结果数据段[0,0,4,5,5,0,2,5],将第一批次对应的待查询数据查询结果[2,5,1,2,5]和第二批次对应的待查询数据查询结果[7,9,7]进行拼接输出为待查询数据对应的查询结果数据段[2,5,1,2,5,7,9,7]。将得到的查询结果数据段分次写入存储区,即每次写入一个查询结果数据段。类似地,若某一批次得到的查询结果超过预设传输数据量,则对查询结果进行分段得到等于预设传输数据量的查询结果数据段,若分段后产生小于预设传输数据量的部分数据,则与下一批次的查询结果进行拼接以得到等于预设传输数据量的查询结果数据段。通过上述过程,将得到的查询结果进行分段和/或拼接,直至将所有的查询结果写入存储区。
本实现方式中,根据预设传输数据量,将查询结果中的数据进行分段拼接,得到多个查询结果数据段;将查询结果数据段分次写入存储区。使得加速核每次写入存储区的数据量均达到预设传输数据量,能够使得加速核与存储区之间的数据传输性能达到最佳,可以减少数据写入存储区的次数,从而可以提高数据写入的效率。
S308、返回处理完成信息至主计算设备,以使主计算设备从存储区读取所有的查询结果。
示例性地,加速核在数据查询完成后,向主计算设备返回处理完成信息,例如,加速核可以在将查询结果写入存储区时,同时向主计算设备返回处理完成信息;或者,可以在将查询结果写入存储区后,再向主计算设备返回处理完成信息,本实施例对此不进行限制。主计算设备接收到处理完成信息后,由处理器从存储区读取查询结果后,传输至内存进行存储。
本实施例中,加速卡中还包括存储区,存储区用于将接收到的目标数据集、待查询数据集和查询参数进行存储,通过加速核从存储区读取目标数据集、待查询数据集和查询参数;基于查询条件,在待查询数据集中并行执行对多个目标数据的查询操作,得到针对各目标数据的查询结果,并将查询结果写入存储区;返回处理完成信息至主计算设备,以使主计算设备从存储区读取所有的查询结果。由于加速卡中具有存储区,因此,它在进行数据查询时,可以一次性从主计算设备接收需要进行数据查询的所有相关数据,不用多次与主计算设备进行数据传输,从而减少了数据传输的开销。
参照图4,示出了根据本申请示例性实施例的一种数据查询装置的结构框图。
本实施例的数据查询装置用于与主计算设备连接的加速卡,加速卡中包括加速核,数据查询装置包括数据接收模块402和数据查询模块404。
其中,数据接收模块402用于接收主计算设备发送的目标数据集、待查询数据集和查询参数,目标数据集中包含多个目标数据,待查询数据集中包含多个待查询数据,查询参数包括查询条件;数据查询模块404用于通过加速核,基于查询条件,在待查询数据集中并行执行对多个目标数据的查询操作,得到针对各目标数据的查询结果,以使主计算设备读取查询结果,其中,查询操作指针对每个目标数据在待查询数据集中匹配符合查询条件的待查询数据,并将匹配成功的目标数据的信息和待查询数据的信息输出为查询结果。
在一种可选实现方式中,加速卡中还包括存储区,存储区用于将接收到的目标数据集、待查询数据集和查询参数进行存储,数据查询模块404还用于:通过加速核从存储区读取目标数据集、待查询数据集和查询参数;基于查询条件,在待查询数据集中并行执行对多个目标数据的查询操作,得到针对各目标数据的查询结果,并将查询结果写入存储区;返回处理完成信息至主计算设备,以使主计算设备从存储区读取所有的查询结果。
在一种可选实现方式中,数据查询模块404还用于:通过加速核从存储区读取查询参数;基于预设传输数据量,分别读取目标数据集得到至少一个目标子数据集,读取待查询数据集得到至少一个待查询子数据集,其中,预设传输数据量为存储区进行单次传输的数据量。
在一种可选实现方式中,数据查询模块404还用于:基于预设传输数据量,将目标数据集分为至少一个目标子数据集,将待查询数据集分为至少一个待查询子数据集;分周期从存储区中读取目标子数据集和待查询子数据集,其中,每一周期读取一个目标子数据集,并在每一周期内分批次读取待查询子数据集,每一批次读取一个待查询子数据集,直至将目标数据集和待查询数据集读取完成。
在一种可选实现方式中,数据查询模块404还用于:对于每一周期读取的目标子数据集中的目标数据,根据查询条件,在每个待查询子数据集中并行执行对多个目标数据的查询操作,直至遍历所有的待查询子数据集,得到每一周期对应的子查询结果;将多个子查询结果进行整合,得到查询结果。
在一种可选实现方式中,数据查询模块404还用于:根据预设传输数据量,将查询结果中的数据进行分段拼接,得到多个查询结果数据段;将查询结果数据段分次写入存储区。
本实施例的数据查询装置用于实现前述多个方法实施例中相应的数据查询方法,并具有相应的方法实施例的有益效果,在此不再赘述。此外,本实施例的数据查询装置中的各个模块的功能实现均可参照前述方法实施例中的相应部分的描述,在此亦不再赘述。
本申请实施例还提供了一种加速卡,加速卡包括存储区和加速核。
其中,存储区用于:存储从主计算设备接收的目标数据集、待查询数据集和查询参数,以及存储查询结果,目标数据集中包含多个目标数据,待查询数据集中包含多个待查询数据,查询参数包括查询条件;
加速核用于:基于查询条件,在待查询数据集中并行执行对多个目标数据的查询操作,得到针对各目标数据的查询结果,以使主计算设备读取查询结果,其中,查询操作指针对每个目标数据在待查询数据集中匹配符合查询条件的待查询数据,并将匹配成功的目标数据的信息和待查询数据的信息输出为查询结果
本申请实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述多个方法实施例中任一实施例所描述的数据查询方法。
本申请实施例还提供了一种计算机程序产品,包括计算机指令,该计算机指令指示计算设备执行上述多个方法实施例中任一实施例所描述的数据查询方法对应的操作。
需要指出,根据实施的需要,可将本申请实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本申请实施例的目的。
上述根据本申请实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的方法。此外,当通用计算机访问用于实现在此示出的方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的方法的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
以上实施方式仅用于说明本申请实施例,而并非对本申请实施例的限制,有关技术领域的普通技术人员,在不脱离本申请实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本申请实施例的范畴,本申请实施例的专利保护范围应由权利要求限定。
Claims (10)
1.一种数据查询方法,其特征在于,用于与主计算设备连接的加速卡,所述加速卡中包括加速核,所述数据查询方法包括:
接收所述主计算设备发送的目标数据集、待查询数据集和查询参数,所述目标数据集中包含多个目标数据,所述待查询数据集中包含多个待查询数据,所述查询参数包括查询条件;
通过所述加速核,基于所述查询条件,在所述待查询数据集中并行执行对所述多个目标数据的查询操作,得到针对各目标数据的查询结果,以使所述主计算设备读取所述查询结果,其中,所述查询操作指针对每个所述目标数据在所述待查询数据集中匹配符合所述查询条件的待查询数据,并将匹配成功的所述目标数据的信息和所述待查询数据的信息输出为所述查询结果。
2.根据权利要求1所述的数据查询方法,其特征在于,所述加速卡中还包括存储区,所述存储区用于将接收到的所述目标数据集、所述待查询数据集和所述查询参数进行存储,所述通过所述加速核,基于所述查询条件,在所述待查询数据集中并行执行对所述多个目标数据的查询操作,得到针对各目标数据的查询结果,以使所述主计算设备读取所述查询结果包括:
通过所述加速核从所述存储区读取所述目标数据集、所述待查询数据集和所述查询参数;
基于所述查询条件,在所述待查询数据集中并行执行对所述多个目标数据的查询操作,得到针对各目标数据的查询结果,并将所述查询结果写入所述存储区;
返回处理完成信息至所述主计算设备,以使所述主计算设备从所述存储区读取所有的所述查询结果。
3.根据权利要求2所述的数据查询方法,其特征在于,所述通过所述加速核从所述存储区读取所述目标数据集、所述待查询数据集和所述查询参数,包括:
通过所述加速核从所述存储区读取所述查询参数;
基于预设传输数据量,分别读取所述目标数据集得到至少一个目标子数据集,读取所述待查询数据集得到至少一个待查询子数据集,其中,所述预设传输数据量为所述存储区进行单次传输的数据量。
4.根据权利要求3所述的数据查询方法,其特征在于,所述基于预设传输数据量,分别读取所述目标数据集得到至少一个目标子数据集,读取所述待查询数据集得到至少一个待查询子数据集,包括:
基于预设传输数据量,将所述目标数据集分为至少一个目标子数据集,将所述待查询数据集分为至少一个待查询子数据集;
分周期从所述存储区中读取所述目标子数据集和所述待查询子数据集,其中,每一周期读取一个所述目标子数据集,并在所述每一周期内分批次读取所述待查询子数据集,每一批次读取一个所述待查询子数据集,直至将所述目标数据集和待查询数据集读取完成。
5.根据权利要求4所述的数据查询方法,其特征在于,所述基于所述查询条件,在所述待查询数据集中并行执行对所述多个目标数据的查询操作,得到针对各目标数据的查询结果,包括:
对于每一周期读取的所述目标子数据集中的所述目标数据,根据所述查询条件,在每个所述待查询子数据集中并行执行对所述多个目标数据的查询操作,直至遍历所有的所述待查询子数据集,得到每一周期对应的子查询结果;
将多个所述子查询结果进行整合,得到所述查询结果。
6.根据权利要求1所述的数据查询方法,其特征在于,所述目标数据集还包括所述目标数据对应的第一索引值,所述待查询数据集中还包括所述待查询数据对应的第二索引值,
所述针对每个所述目标数据在所述待查询数据集中匹配符合所述查询条件的待查询数据,并将匹配成功的所述目标数据的信息和所述待查询数据的信息输出为所述查询结果,包括:
针对每个所述目标数据在所述待查询数据集中匹配符合所述查询条件的待查询数据,直至遍历所述待查询数据集;
将匹配到符合所述查询条件的所述目标数据对应的所述第一索引值输出为第一查询结果,得到所述目标数据的信息;将匹配到符合所述查询条件的所述待查询数据对应的所述第二索引值输出为第二查询结果,得到所述待查询数据的信息,将所述目标数据的信息和所述待查询数据的信息输出为所述查询结果。
7.根据权利要求2所述的数据查询方法,其特征在于,所述将所述查询结果写入所述存储区,包括:
根据所述预设传输数据量,将所述查询结果中的数据进行分段拼接,得到多个查询结果数据段;
将所述查询结果数据段分次写入所述存储区。
8.一种数据查询装置,其特征在于,用于与主计算设备连接的加速卡,所述加速卡中包括加速核,包括:
数据接收模块,用于接收所述主计算设备发送的目标数据集、待查询数据集和查询参数,所述目标数据集中包含多个目标数据,所述待查询数据集中包含多个待查询数据,所述查询参数包括查询条件;
数据查询模块,用于通过所述加速核,基于所述查询条件,在所述待查询数据集中并行执行对所述多个目标数据的查询操作,得到针对各目标数据的查询结果,以使所述主计算设备读取所述查询结果,其中,所述查询操作指针对每个所述目标数据在所述待查询数据集中匹配符合所述查询条件的待查询数据,并将匹配成功的所述目标数据的信息和所述待查询数据的信息输出为所述查询结果。
9.一种加速卡,其特征在于,包括:
存储区,用于存储从所述主计算设备接收的目标数据集、待查询数据集和查询参数,以及存储查询结果,所述目标数据集中包含多个目标数据,所述待查询数据集中包含多个待查询数据,所述查询参数包括查询条件;
加速核,用于基于所述查询条件,在所述待查询数据集中并行执行对所述多个目标数据的查询操作,得到针对各目标数据的查询结果,以使所述主计算设备读取所述查询结果,其中,所述查询操作指针对每个所述目标数据在所述待查询数据集中匹配符合所述查询条件的待查询数据,并将匹配成功的所述目标数据的信息和所述待查询数据的信息输出为所述查询结果。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311430885.4A CN117331970A (zh) | 2023-10-31 | 2023-10-31 | 数据查询方法、装置、计算机存储介质及加速卡 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311430885.4A CN117331970A (zh) | 2023-10-31 | 2023-10-31 | 数据查询方法、装置、计算机存储介质及加速卡 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117331970A true CN117331970A (zh) | 2024-01-02 |
Family
ID=89295423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311430885.4A Pending CN117331970A (zh) | 2023-10-31 | 2023-10-31 | 数据查询方法、装置、计算机存储介质及加速卡 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117331970A (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870511A (zh) * | 2012-12-18 | 2014-06-18 | 中国银联股份有限公司 | 基于共享内存的信息查询设备及方法 |
US20150046486A1 (en) * | 2013-08-07 | 2015-02-12 | International Business Machines Corporation | Accelerating multiple query processing operations |
CN108108472A (zh) * | 2018-01-02 | 2018-06-01 | 联想(北京)有限公司 | 数据处理方法以及服务器 |
CN110515948A (zh) * | 2019-08-23 | 2019-11-29 | 苏州浪潮智能科技有限公司 | 一种数据查询方法、系统、电子设备及存储介质 |
CN112818007A (zh) * | 2021-02-03 | 2021-05-18 | 中科驭数(北京)科技有限公司 | 数据处理方法、装置及可读存储介质 |
CN113468220A (zh) * | 2021-09-03 | 2021-10-01 | 苏州浪潮智能科技有限公司 | 一种数据查询方法、装置、设备及介质 |
CN115640585A (zh) * | 2021-07-20 | 2023-01-24 | 中移物联网有限公司 | 一种数据处理方法、装置及可读存储介质 |
CN116226178A (zh) * | 2022-12-30 | 2023-06-06 | 上海芯赛云计算科技有限公司 | 一种数据查询方法、装置、存储介质及电子装置 |
WO2023103301A1 (zh) * | 2021-12-09 | 2023-06-15 | 苏州浪潮智能科技有限公司 | 一种分布式异构加速平台通信方法、系统、设备及介质 |
CN116701443A (zh) * | 2022-02-24 | 2023-09-05 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、装置、计算机设备及存储介质 |
CN116795647A (zh) * | 2023-06-28 | 2023-09-22 | 山东浪潮科学研究院有限公司 | 一种数据库异构资源管理与调度方法、装置、设备及介质 |
CN116795875A (zh) * | 2023-06-05 | 2023-09-22 | 阿里巴巴(中国)有限公司 | 数据处理系统、方法及存储介质 |
WO2023185071A1 (zh) * | 2022-03-31 | 2023-10-05 | 北京沃东天骏信息技术有限公司 | 数据查询方法、数据写入方法、相关装置和系统 |
-
2023
- 2023-10-31 CN CN202311430885.4A patent/CN117331970A/zh active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870511A (zh) * | 2012-12-18 | 2014-06-18 | 中国银联股份有限公司 | 基于共享内存的信息查询设备及方法 |
US20150046486A1 (en) * | 2013-08-07 | 2015-02-12 | International Business Machines Corporation | Accelerating multiple query processing operations |
CN108108472A (zh) * | 2018-01-02 | 2018-06-01 | 联想(北京)有限公司 | 数据处理方法以及服务器 |
CN110515948A (zh) * | 2019-08-23 | 2019-11-29 | 苏州浪潮智能科技有限公司 | 一种数据查询方法、系统、电子设备及存储介质 |
CN112818007A (zh) * | 2021-02-03 | 2021-05-18 | 中科驭数(北京)科技有限公司 | 数据处理方法、装置及可读存储介质 |
CN115640585A (zh) * | 2021-07-20 | 2023-01-24 | 中移物联网有限公司 | 一种数据处理方法、装置及可读存储介质 |
CN113468220A (zh) * | 2021-09-03 | 2021-10-01 | 苏州浪潮智能科技有限公司 | 一种数据查询方法、装置、设备及介质 |
WO2023103301A1 (zh) * | 2021-12-09 | 2023-06-15 | 苏州浪潮智能科技有限公司 | 一种分布式异构加速平台通信方法、系统、设备及介质 |
CN116701443A (zh) * | 2022-02-24 | 2023-09-05 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、装置、计算机设备及存储介质 |
WO2023185071A1 (zh) * | 2022-03-31 | 2023-10-05 | 北京沃东天骏信息技术有限公司 | 数据查询方法、数据写入方法、相关装置和系统 |
CN116226178A (zh) * | 2022-12-30 | 2023-06-06 | 上海芯赛云计算科技有限公司 | 一种数据查询方法、装置、存储介质及电子装置 |
CN116795875A (zh) * | 2023-06-05 | 2023-09-22 | 阿里巴巴(中国)有限公司 | 数据处理系统、方法及存储介质 |
CN116795647A (zh) * | 2023-06-28 | 2023-09-22 | 山东浪潮科学研究院有限公司 | 一种数据库异构资源管理与调度方法、装置、设备及介质 |
Non-Patent Citations (2)
Title |
---|
王佳;杨树强;贾焰;: "面向海量数据的并行UNION查询技术研究与实现", 微电子学与计算机, no. 10, 20 November 2006 (2006-11-20), pages 70 - 73 * |
苏童;唐永鹤;蒋烈辉;: "基于CAM的数据库查询硬件加速方法", 信息工程大学学报, no. 02, 15 April 2019 (2019-04-15), pages 445 - 448 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110149374B (zh) | 一种文件传输方法、终端设备及计算机可读存储介质 | |
CN113177015B (zh) | 基于帧头的串口通讯方法和串口芯片 | |
CN113238856B (zh) | 一种基于rdma的内存管理方法及装置 | |
CN113946480A (zh) | 一种i2c总线的检测装置和方法 | |
CN117331970A (zh) | 数据查询方法、装置、计算机存储介质及加速卡 | |
CN111625600B (zh) | 数据存储的处理方法、系统、计算机设备及存储介质 | |
CN109120731B (zh) | 一种通用型通讯方法、系统及装置 | |
CN116610262A (zh) | 降低ssd顺序读延时的方法、装置、设备及介质 | |
CN115658625A (zh) | 数据解压系统、图形处理系统、装置、设备及解压方法 | |
CN110659143B (zh) | 一种容器间的通讯方法、装置及电子设备 | |
CN112260896B (zh) | 一种网络传输测试方法、装置、设备及可读存储介质 | |
CN110928682B (zh) | 外部设备访问计算机内存的方法 | |
CN117633300A (zh) | 数据索引方法、装置、计算机存储介质及加速卡 | |
CN113076268A (zh) | 一种批量采集从机设备数据的方法 | |
CN112511441A (zh) | 报文的处理方法及装置 | |
CN111913971A (zh) | 存储数据的修改方法、装置、电子设备及存储介质 | |
CN117331945A (zh) | 数据处理方法、装置、计算机存储介质及加速卡 | |
CN109684234A (zh) | 一种数据传输方法及系统 | |
CN113157610B (zh) | 数据保存方法及装置、存储介质、电子装置 | |
CN116821177B (zh) | 设备数据查询方法、装置、电子设备及存储介质 | |
CN117632015A (zh) | 数据分区方法、装置、计算机存储介质及加速卡 | |
CN111953384B (zh) | 通信地址发送方法及装置、电能表、存储介质 | |
CN112613081B (zh) | 一种存储芯片序列码生成方法、装置、电子设备及存储介质 | |
CN115657950B (zh) | 一种基于多信道的数据读写处理方法、装置及相关设备 | |
CN113177013B (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 |