CN108108473B - 数据查询方法以及服务器 - Google Patents
数据查询方法以及服务器 Download PDFInfo
- Publication number
- CN108108473B CN108108473B CN201810001177.1A CN201810001177A CN108108473B CN 108108473 B CN108108473 B CN 108108473B CN 201810001177 A CN201810001177 A CN 201810001177A CN 108108473 B CN108108473 B CN 108108473B
- Authority
- CN
- China
- Prior art keywords
- data
- fpga
- module
- path
- data query
- 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.)
- Active
Links
Images
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/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/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/24569—Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
本申请提供了一种数据查询方法以及服务器,该方法包括:获取当前待处理的数据查询任务以及数据查询任务的总数量;根据数据查询任务的总数量,确定服务器的现场可编程门阵列FPGA执行数据查询任务所采用的目标数据路径,其中,FPGA具有两种执行数据查询任务的数据路径,目标数据路径属于两种数据路径中的一种;向FPGA发送目标数据路径对应的目标路径指令,目标路径指令用于指示FPGA依据目标数据路径,执行数据查询任务;将当前待处理的数据查询任务传输给FPGA,以通过FPGA执行数据查询任务。本申请的方案可以提高FPGA的数据查询性能。
Description
技术领域
本发明涉及信息处理技术领域,更具体地说,涉及一种数据查询方法以及服务器。
背景技术
在人工智能平台中,服务器对于数据查询的效率要求较高,而为了提高数据查询效率,人工智能平台中的服务器可以基于现场可编程门阵列(Field Programmable GateArray,FPGA)来实现数据库查询。
为了能够基于FPGA实现数据库查询,FPGA内部的多个不同的数据处理模块可以通过FPGA内部的总线与FPGA外部的动态随机存储器相连,FPGA在从数据库查询数据的过程中,获取到的数据会存储到动态随机存储器中,FPGA中的各个数据处理模块依次通过片上总线从动态随机存储器中取出数据并处理,直至查询得到所需数据。然而,这种方式比较适用于多个查询请求并行处理的场景,而对于单个查询请求的场景,则由于动态随机存储器存在较大延迟,而导致数据处理模块从动态随机存储器中读取数据的延迟较大,影响到FPGA的数据查询性能。
发明内容
本发明的目的是提供一种数据查询方法以及服务器,以提高FPGA的数据查询性能。
为实现上述目的,本发明提供了如下技术方案:
一种数据查询方法,应用于人工智能平台的服务器,所述方法包括:
获取当前待处理的数据查询任务以及所述数据查询任务的总数量;
根据所述数据查询任务的总数量,确定所述服务器的现场可编程门阵列FPGA执行所述数据查询任务所采用的目标数据路径,其中,所述FPGA具有两种执行数据查询任务的数据路径,所述目标数据路径属于所述两种数据路径中的一种;
向所述FPGA发送所述目标数据路径对应的目标路径指令,所述目标路径指令用于指示所述FPGA依据所述目标数据路径,执行所述数据查询任务;
将所述当前待处理的数据查询任务传输给所述FPGA,以通过所述FPGA执行所述数据查询任务。
优选的,所述FPGA包括多个数据处理模块;
所述FPGA的数据路径包括:串行数据路径和垂直数据路径,所述串行数据路径为所述多个数据处理模块与所述FPGA外接的外部存储器串联连通的路径;所述垂直数据路径为所述FPGA中的多个数据处理模块分别通过所述片上总线与所述外部存储器连通的多个并行路径。
优选的,所述根据所述数据查询任务的总数量,确定现场可编程门阵列FPGA执行所述数据查询任务所采用的目标数据路径,包括:
当所述数据查询任务的总数量为一个时,确定所述FPGA执行所述数据查询任务所采用的目标数据路径为串行数据路径;
当所述数据查询任务的总数量为多个时,确定所述FPGA执行所述数据查询任务所采用的目标数据路径为垂直数据路径。
优选的,所述多个数据处理模块包括:合并模块、筛选模块、排序模块、分组模块和聚合模块;
所述FPGA中所述合并模块、筛选模块、排序模块、分组模块和聚合模块之间通过数据传输线路串联,且所述合并模块、筛选模块、排序模块、分组模块和聚合模块分别与所述FPGA的片上总线相连,且所述FPGA的片上总线与所述外部存储器相连。
优选的,还包括:
确定待进行数据查询的数据文件,将所述数据文件发送给所述外部存储器;
通过所述FPGA按照所述目标数据路径,从所述外部存储器存储的所述数据文件中查询出所述数据查询任务所指示的目标数据。
另一方面,本申请还提供了一种服务器,包括:
处理器和现场可编程门阵列FPGA,其中,所述FPGA具有两种执行数据查询任务的数据路径;
其中,所述处理器,用于获取当前待处理的数据查询任务以及所述数据查询任务的总数量;根据所述数据查询任务的总数量,确定所述FPGA执行所述数据查询任务所采用的目标数据路径,所述目标数据路径属于所述两种数据路径中的一种;向所述FPGA发送所述目标数据路径对应的目标路径指令,所述目标路径指令用于指示所述FPGA依据所述目标数据路径,执行所述数据查询任务;将所述当前待处理的数据查询任务传输给所述FPGA;
所述FPGA,用于依据所述目标路径指示的所述目标数据路径,执行所述数据查询任务。
优选的,所述FPGA包括多个数据处理模块;
所述FPGA的数据路径包括:串行数据路径和垂直数据路径,所述串行数据路径为所述多个数据处理模块与所述FPGA外接的外部存储器串联连通的路径;所述垂直数据路径为所述FPGA中的多个数据处理模块分别通过所述片上总线与所述外部存储器连通的多个并行路径。
优选的,所述处理器在根据所述数据查询任务的总数量,确定现场可编程门阵列FPGA执行所述数据查询任务所采用的目标数据路径时,具体用于,当所述数据查询任务的总数量为一个时,确定所述FPGA执行所述数据查询任务所采用的目标数据路径为串行数据路径;当所述数据查询任务的总数量为多个时,确定所述FPGA执行所述数据查询任务所采用的目标数据路径为垂直数据路径。
优选的,所述FPGA的多个数据处理模块包括:合并模块、筛选模块、排序模块、分组模块和聚合模块;
所述FPGA中所述合并模块、筛选模块、排序模块、分组模块和聚合模块之间通过数据传输线路串联,且所述合并模块、筛选模块、排序模块、分组模块和聚合模块分别与所述FPGA的片上总线相连,且所述FPGA的片上总线与所述外部存储器相连。
优选的,所述FPGA在依据所述目标路径指示的所述目标数据路径,执行所述数据查询任务时,具体用于:
当所述目标数据路径为所述串行数据路径时,依据所述数据查询任务从所述外部存储器获取待查询的数据文件,并依次经由所述合并模块、筛选模块、排序模块、分组模块和聚合模块按照所述数据查询任务对所述数据文件进行处理之后,将得到的目标数据存储到所述外部存储器中;
当所述目标数据路径为所述垂直数据路径时,依据所述数据查询命令,依次通过所述合并模块、筛选模块、排序模块、分组模块和聚合模块分别从所述外部存储器获取到待处理的数据并处理,并将聚合模块最终处理得到的目标数据存储到所述外部存储器中。
通过以上方案可知,人工智能平台的服务器可以根据当前待处理的数据查询任务的总数量,从该FPGA所具有的两个数据路径中,确定适合处理该总数量个数据查询任务的目标数据路径,并指示该FPGA按照该目标数据路径执行数据查询任务的处理,由于该目标数据路径为FPGA对应的适合处理该总数量个数据查询任务的数据路径,因此,FPGA按照该目标数据路径执行数据查询任务,有利于提高数据查询任务的处理效率,进而提高数据查询任务的查询性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种数据查询方法一个实施例的流程示意图;
图2为本申请提供的FPGA中各个数据处理模块与外部存储器的一种连接关系示意图;
图3a为本申请中FPGA中串行数据路径中各个数据处理模块与外部存储器之间的一种路径关系示意图;
图3b为本申请中FPGA中垂直数据路径中各个数据处理模块与外部存储器之间的一种路径关系示意图;
图4为本申请提供的一种数据查询方法又一个实施例的流程示意图;
图5为本申请提供的服务器一种实施例的组成结构示意图。
说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的部分,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示的以外的顺序实施。
具体实施方式
本申请实施例的数据处理方法可以用于人工智能领域,如,智能数据管理,智能图像处理等等,通过本申请的方案可以提高人工智能等平台中服务器的数据查询效率。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了提高人工智能平台的数据查询效率,进而提高数据查询性能,在本申请实施例中,服务器的FPGA具有两条不同的数据路径,其中,数据路径为执行数据查询任务的数据执行路径。其中,FPGA按照不同的数据路径执行数据查询任务时,待查询的数据经过该FPGA中多个数据模块与FPGA外接的外部存储器的交互顺序有所不同。
其中,不同的数据路径所适合数据查询任务的数量也会有所不同,一般情况下,在服务器所需处理的数据查询任务的数量确定的情况下,当采用适合该数据查询任务的数据所对应的数据路径,对数据查询任务进行处理的销量相对更高,因此,服务器可以根据数据查询的不同应用场景,选取适合的数据路径,从而有利于提高服务器的数据查询性能。
下面具体介绍,如,参见图1,其示出了本申请一种数据处理方法一个实施例的流程示意图,本实施例的方法可以应用于人工智能平台的服务器,该方法包括:
S101,服务器的处理器获取当前待处理的数据查询任务以及数据查询任务的总数量。
其中,数据查询任务可以为处理器接收到数据查询请求之后生成的,用于指示FPGA进行数据查询的任务。
可以理解的是,在不同应用场景,或者不同时刻,处理器获取到数据查询任务的数量也会有所不同,该数据查询任务的数量可以为一个,也可以是多个。
S102,处理器根据数据查询任务的总数量,确定服务器的FPGA执行数据查询任务所采用的目标数据路径。
其中,该FPGA具有两种执行数据查询任务的数据路径,该目标数据路径属于所述两种数据路径中的一种。
可以理解的是,不同数据路径适合同时处理的数据查询任务的数量也有所不同,因此,根据该数据查询任务的总数量,可以从FPGA具有的两种数据路径中,选取出适合处理该总数量个数据查询任务的数据路径,并将选取出的数据路径称为目标数据路径。其中,相对于FPGA依据该目标数据路径之外的数据路径处理该总数量个数据查询任务,依据该目标数据路径处理该总数量个数据查询任务的处理效率更高。
如,预置不同数据查询任务的数量与数据路径的对应关系,根据该对应关系,可以确定出当前该数据查询任务的总数量所对应的目标数据路径。
S103,处理器向FPGA发送目标数据路径对应的目标路径指令。
其中,目标路径指令用于指示该FPGA依据该目标数据路径,执行该数据查询任务。
如,不同的数据路径可以有不同的路径标识,这样,可以在该目标路径指令中携带该目标数据路径的路径标识,以便FPGA根据目标路径指令确定该目标数据路径。
S104,处理器将当前待处理的数据查询任务传输给该FPGA。
与目前基于FPGA执行数据查询相同,处理器需要指示出需要该FPGA执行的数据查询任务,因此,需要将当前待处理的数据查询任务发送给该FPGA。
可以理解的是,数据查询任务为多个时,此处需要将该多个数据查询任务均发送给FPGA。
需要说明的是,该步骤S103和S104的执行顺序并不限于图1所示,在实际应用中还可以根据需要互换这两个步骤的执行顺序,也可以是同时执行该步骤S103和S104。
S105,服务器的FPGA按照该目标路径指令指示的目标数据路径,执行数据查询任务。
由于FPGA具有两个数据路径,因此,在FPGA可以根据该目标路径指令,确定出执行数据查询任务所需的目标数据路径,并按照该目标数据路径执行数据查询任务。
如,FPGA控制该目标数据路径所需的传输线路处于连通状态,以基于该目标数据路径完成数据查询任务。又如,FPGA依次控制各个数据模块按照数据查询任务执行各个数据模块对应的数据处理,以使得各个数据模块的数据处理顺序所形成的路径与该目标数据路径相符合。
可见,在本申请实施例中,人工智能平台的服务器可以根据当前待处理的数据查询任务的总数量,从该FPGA所具有的两个数据路径中,确定适合处理该总数量个数据查询任务的目标数据路径,并指示该FPGA按照该目标数据路径执行数据查询任务的处理,由于该目标数据路径为FPGA对应的适合处理该总数量个数据查询任务的数据路径,因此,FPGA按照该目标数据路径执行数据查询任务,有利于提高数据查询任务的处理效率,进而提高数据查询任务的查询性能。
可以理解的是,在处理器向该FPGA发送数据查询任务之前,该处理器还可以先确定待进行数据查询的数据文件。如,该数据文件可以为一个或多个数据表。其中,处理器确定该数据文件的方式可以是根据接收到的数据查询请求,确定待查询的数据文件;也可以是将用户选择或指定的数据文件确定为待进行数据查询的数据文件。本申请对于处理器确定该数据文件的具体方式不加以限制。
进一步的,由于FPGA与处理器可以通过该FPGA外接的外部存储器实现数据交互,因此,处理器可以将该数据文件发送给该外部存储器进行存储。相应的,FPGA可以按照该目标数据路径,从该外部存储器存储的该数据文件中查询出该数据查询任务所执行的目标数据。其中,为了便于区分,本申请实施例中,将执行数据查询任务所查询的数据称为目标数据,当然,不同数据查询任务所对应的目标数据也可以有所不同。
其中,该FPGA外接的外部存储器可以为动态随机存储器,如,该外部存储器可以为双倍数据速率同步动态随机存储器DDR。
可以理解的是,FPGA在执行数据查询任务时,需要通过该FPGA中的多个数据处理模块依次执行不同的数据处理,该多个数据处理模块对应着一个数据处理顺序,而保证该数据处理模块的数据处理顺序不变的情况下,两个数据处理顺序相邻的数据处理模块之间的数据传输形式也会有所不同,而不同的数据传输形式对应着不同的数据路径。
在一种实现方式中,该FPGA的数据路径包括:串行数据路径和垂直数据路径这两种。
其中,串行数据路径为多个数据处理模块与FPGA外接的外部存储器串联连通的路径。在串行数据路径中,该多个数据处理模块在执行数据查询任务的过程中,按照数据处理顺序,依次将各自处理的中间数据传输给下一个数据处理模块,而位于数据处理顺序最后的数据处理模块则将最终处理得到的目标数据传输给该外接存储器进行存储,以便处理器可以从外接存储器获取数据查询任务对应的目标数据。
该垂直数据路径为FPGA中的多个数据处理模块分别通过该片上总线与该外部存储器连通的多个并行路径。在串行数据路径中,该多个数据处理模块在执行数据查询任务的过程中,按照数据处理顺序,依次从外部存储器获取待处理的数据,并将处理得到的数据存储到该外部存储器中。
在一种可能的情况中,FPGA多个数据处理模块包括:合并(join)模块、筛选(filter)模块、排序(sort)模块、分组(group)模块和聚合(aggr)模块。如,参见图2,其示出了服务器的FPGA的多个数据处理模块的连接关系示意图。
由图2可见,该FPGA中的合并模块、筛选模块、排序模块、分组模块和聚合模块之间通过数据传输线路串联。如图2所示,合并模块、筛选模块、排序模块、分组模块和聚合模块中任意两个相邻的模块之间通过数据传输线路相连,使得该多个数据处理模块串联连接。
同时由图2可知,该合并模块、筛选模块、排序模块、分组模块和聚合模块分别与该FPGA的片上总线201相连,且该FPGA的片上总线201与该外部存储器相连。在图2中以外部存储器为DDR为例,但是可以理解的是,当该外部存储器为其他类型的存储器,也同样适用。
在图2所示的FPGA中,该多个数据处理模块与外部存储器之间的连接方式,可以使得该FPGA中的该多个数据处理模块可以通过不同的数据传输路径与该外部存储器进行数据交互或者数据传输,以完成数据查询任务处理并将执行数据查询任务得到的目标数据存储到该外部存储器中。
为了便于理解,可以参见图3a和图3b,其分别示出了在图2所示的FPGA的线路连接结构的基础上,串行数据路径以及垂直数据路径中各个数据处理模块的数据传输关系。
其中,图3a和图3b中任意两个数据处理模块,或者数据处理模块与外部存储器之间具有连接的线路,表示两个数据处理模块之间,或者数据处理模块与外部存储器之间具有传输数据的路径。
如图3a所示的串行数据路径中,合并模块可以通过片上总线与该外部存储器相连,且合并模块、筛选模块、排序模块、分组模块和聚合模块中任意两个相邻的数据处理模块之间通过数据传输线路连通,且聚合模块也通过片上总线与外部存储器相连。这样,串行数据路径可以依次为依次经合并模块、筛选模块、排序模块、分组模块和聚合模块所构成的数据传输路径。
相应的,FPGA在按照该串行数据路径处理该数据查询任务时,可以依据数据查询任务从外部存储器获取待查询的数据文件,并依次经合并模块、筛选模块、排序模块、分组模块和聚合模块按照该数据查询任务对该数据文件进行处理之后,将得到的目标数据存储到该外部存储器中。
可见,在该串行数据路径中,合并模块可以处理从该外部存储器获取到的数据文件,并将处理后的中间数据传输给筛选模块,而筛选模块对中间数据进行进一步筛选之后,将数据传输给排序模块,相应的,排序模块对筛选后的中间数据处理之后传输给分组模块处理,并由分组模块将处理后的数据传输给聚合模块处理,并最终由聚合模块将处理得到的目标数据存储到该外部存储器中。
如图3b所示的垂直路径中,合并模块、筛选模块、排序模块、分组模块和聚合模块均分别通过片上总线与该外部存储器实现连通,从而使得每个数据处理模块均可以直接与该外部存储器进行交互。
具体的,FPGA可以依次通过合并模块、筛选模块、排序模块、分组模块和聚合模块分别从外部存储器获取到数据查询任务对应的待查询数据并处理,并将聚合模块最终处理得到的目标数据存储到该外部存储器中。如,合并模块从该外部存储器获取到的待进行数据查询的数据文件并进行处理,而合并模块处理得到的中间数据会存储到该外部存储器中,然后,筛选模块会从该外部存储器中获取合并模块处理的中间数据,并对该中间数据进行处理之后,将处理得到的数据存储到该外部存储器;相应的,排序模块会从外部存储器获取筛选模块处理后的数据并进行处理;而分组模块会从外部存储器获取排序模块处理后的数据并进行处理;而聚合模块会从外部存储器获取分组模块处理后的数据并进行处理,并将最终处理得到目标数据存储到该外部存储器中,以便处理器从外部存储器获取该目标数据。
可以理解的是,结合图3a和图3b可以看出,由于垂直数据路径中每个数据处理模块均需要从外部存储器获取数据并数据,而由于外部存储器的数据读取的延迟较大,因此,如果通过该垂直数据路径处理一个或者较少的数据查询任务时,则可能会导致数据查询任务的耗时较长,导致数据查询任务的处理效率较低。而通过串行数据路径则可以避免每个模块均与外部存储器进行交互,从而有助于提高处理单个数据查询任务的耗时,因此,当数据查询任务的总数量为一个或者小于预设阈值时,则可以控制FPGA采用串行数据路径处理数据处理任务。该预设阈值可以根据需要设定,如该预设阈值可以为3个。
相应的,由于垂直数据路径中每个数据处理模块均从外部存储器获取待数据的数据,因此,各个数据处理模块之间的数据处理的干扰较小,这样,当存在多个数据处理任务时,可以采用垂直数据路径并行处理多个数据处理任务,从而可以有利于提高该多个数据处理任务的整体处理效率。可见,当该数据查询任务的总数量大于一个,或者是大于预设阈值时,则处理器可以确定FPGA执行数据查询任务所采用的目标数据路径为垂直数据路径。
为了便于理解本申请的方案,下面以FPGA中依次通过合并模块、筛选模块、排序模块、分组模块和聚合模块执行数据查询任务所请求处理的数据文件为例进行详细介绍,如,参见图4,其示出了本申请一种数据查询方法又一个实施例的流程示意图,本实施例的方法可以包括:
S401,处理器确定待进行数据查询的数据文件,将该数据文件发送给与FPGA外接的外部存储器进行存储。
S402,处理器获取当前待处理的数据查询任务以及数据查询任务的总数量,并判断该总数量是否大于一个,如果是,则执行步骤S403;如果否,则执行步骤S406。
需要说明的是,本实施例是以当数据查询任务的总数量为一个时,采用串行数据路径为例进行介绍,但是可以理解的是,当设定一个预设阈值,并在该数据查询任务的总数量小于该预设阈值时,采用串行数据路径也同样适用于本实施例。
S403,当数据查询任务的总数量为多个时,处理器确定FPGA执行数据查询任务所采用的目标数据路径为垂直数据路径。
S404,处理器向FPGA发送用于指示垂直数据路径的目标路径指令,并将当前待处理的数据查询任务发送给该FPGA。
S405,FPGA响应于该目标路径指令所指示的垂直数据路径时,依据所述数据查询任务,依次通过合并模块、筛选模块、排序模块、分组模块和聚合模块分别从外部存储器获取待处理的数据并处理,并将聚合模块最终处理得到的目标数据存储到该外部存储器中。
该步骤S405的具体实现可以参见前面对于图3b的相关介绍,在此不再赘述。
S406,处理器确定FPGA执行数据查询任务所采用的目标数据路径为串行数据路径。
S407,处理器向FPGA发送用于指示串行数据路径的目标路径指令,并将当前待处理的数据查询任务发送给该FPGA。
S408,FPGA响应于该目标路径指令所指示所述串行数据路径,依据数据查询任务从外部存储器获取待查询的数据文件,并依次由合并模块、筛选模块、排序模块、分组模块和聚合模块按照数据查询任务对数据文件进行处理之后,将得到的目标数据存储到该外部存储器中。
该步骤S408可以参见前面对于图3a的相关介绍,在此不再赘述。
S409,处理器从外部存储器中获取数据查询任务对应的目标数据。
可以理解的是,处理器可以从外部存储器中获取基于FPGA查询出的各个数据查询任务的目标数据。根据人工智能平台的具体需要,处理器可以将查询的目标数据进行输出,或者用于根据目标数据执行数据统计、图像处理等相关操作,在此不加以限制。
另一方面,对应前面的数据查询方法,本申请还提供了一种服务器。如,参见图5,其示出了本申请一种服务器一种组成结构示意图,本实施例的服务器可以为人工智能平台中的服务器,该服务器可以包括:
处理器501和现场可编程门阵列FPGA502;
其中,所述FPGA具有两种执行数据查询任务的数据路径;
其中,所述处理器,用于获取当前待处理的数据查询任务以及所述数据查询任务的总数量;根据所述数据查询任务的总数量,确定所述FPGA执行所述数据查询任务所采用的目标数据路径,所述目标数据路径属于所述两种数据路径中的一种;向所述FPGA发送所述目标数据路径对应的目标路径指令,所述目标路径指令用于指示所述FPGA依据所述目标数据路径,执行所述数据查询任务;将所述当前待处理的数据查询任务传输给所述FPGA;
所述FPGA,用于依据所述目标路径指示的所述目标数据路径,执行所述数据查询任务。
当然,该服务器还可以包括存储器503,用于存储处理器执行以上操作所需的程序。
在一种实现方式中,所述FPGA包括多个数据处理模块;
所述FPGA的数据路径包括:串行数据路径和垂直数据路径,所述串行数据路径为所述多个数据处理模块与所述FPGA外接的外部存储器串联连通的路径;所述垂直数据路径为所述FPGA中的多个数据处理模块分别通过所述片上总线与所述外部存储器连通的多个并行路径。
进一步的,所述处理器在根据所述数据查询任务的总数量,确定现场可编程门阵列FPGA执行所述数据查询任务所采用的目标数据路径时,具体用于,当所述数据查询任务的总数量为一个时,确定所述FPGA执行所述数据查询任务所采用的目标数据路径为串行数据路径;当所述数据查询任务的总数量为多个时,确定所述FPGA执行所述数据查询任务所采用的目标数据路径为垂直数据路径。
在一种可选实施方式中,所述FPGA的多个数据处理模块包括:合并模块、筛选模块、排序模块、分组模块和聚合模块;
所述FPGA中所述合并模块、筛选模块、排序模块、分组模块和聚合模块之间通过数据传输线路串联,且所述合并模块、筛选模块、排序模块、分组模块和聚合模块分别与所述FPGA的片上总线相连,且所述FPGA的片上总线与所述外部存储器相连。
可选的,在以上服务器实施例的基础上,所述FPGA在依据所述目标路径指示的所述目标数据路径,执行所述数据查询任务时,具体用于:
当所述目标数据路径为所述串行数据路径时,依据所述数据查询任务从所述外部存储器获取待查询的数据文件,并依次经由所述合并模块、筛选模块、排序模块、分组模块和聚合模块按照所述数据查询任务对所述数据文件进行处理之后,将得到的目标数据存储到所述外部存储器中;
当所述目标数据路径为所述垂直数据路径时,依据所述数据查询命令,依次通过所述合并模块、筛选模块、排序模块、分组模块和聚合模块分别从所述外部存储器获取到待处理的数据并处理,并将聚合模块最终处理得到的目标数据存储到所述外部存储器中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种数据查询方法,其特征在于,应用于人工智能平台的服务器,所述方法包括:
获取当前待处理的数据查询任务以及所述数据查询任务的总数量;
根据所述数据查询任务的总数量,确定所述服务器的现场可编程门阵列FPGA执行所述数据查询任务所采用的目标数据路径,其中,所述FPGA具有两种执行数据查询任务的数据路径,所述目标数据路径属于所述两种执行数据查询任务的数据路径中的一种;
向所述FPGA发送所述目标数据路径对应的目标路径指令,所述目标路径指令用于指示所述FPGA依据所述目标数据路径,执行所述数据查询任务;
将所述当前待处理的数据查询任务传输给所述FPGA,以通过所述FPGA执行所述数据查询任务;
其中,所述FPGA包括多个数据处理模块;
所述FPGA的数据路径包括:串行数据路径和垂直数据路径,所述串行数据路径为所述多个数据处理模块与所述FPGA外接的外部存储器串联连通的路径;所述垂直数据路径为所述FPGA中的多个数据处理模块分别通过片上总线与所述外部存储器连通的多个并行路径。
2.根据权利要求1所述的数据查询方法,其特征在于,所述根据所述数据查询任务的总数量,确定现场可编程门阵列FPGA执行所述数据查询任务所采用的目标数据路径,包括:
当所述数据查询任务的总数量为一个时,确定所述FPGA执行所述数据查询任务所采用的目标数据路径为串行数据路径;
当所述数据查询任务的总数量为多个时,确定所述FPGA执行所述数据查询任务所采用的目标数据路径为垂直数据路径。
3.根据权利要求1或2所述的数据查询方法,其特征在于,所述多个数据处理模块包括:合并模块、筛选模块、排序模块、分组模块和聚合模块;
所述FPGA中所述合并模块、筛选模块、排序模块、分组模块和聚合模块之间通过数据传输线路串联,且所述合并模块、筛选模块、排序模块、分组模块和聚合模块分别与所述FPGA的片上总线相连,且所述FPGA的片上总线与所述外部存储器相连。
4.根据权利要求1或2所述的数据查询方法,其特征在于,还包括:
确定待进行数据查询的数据文件,将所述数据文件发送给所述外部存储器;
通过所述FPGA按照所述目标数据路径,从所述外部存储器存储的所述数据文件中查询出所述数据查询任务所指示的目标数据。
5.一种服务器,其特征在于,包括:
处理器和现场可编程门阵列FPGA,其中,所述FPGA具有两种执行数据查询任务的数据路径;
其中,所述处理器,用于获取当前待处理的数据查询任务以及所述数据查询任务的总数量;根据所述数据查询任务的总数量,确定所述FPGA执行所述数据查询任务所采用的目标数据路径,其中,所述FPGA具有两种执行数据查询任务的数据路径,所述目标数据路径属于所述两种执行数据查询任务的数据路径中的一种;向所述FPGA发送所述目标数据路径对应的目标路径指令,所述目标路径指令用于指示所述FPGA依据所述目标数据路径,执行所述数据查询任务;将所述当前待处理的数据查询任务传输给所述FPGA;
所述FPGA,用于依据所述目标路径指示的所述目标数据路径,执行所述数据查询任务;
其中,所述FPGA包括多个数据处理模块;
所述FPGA的数据路径包括:串行数据路径和垂直数据路径,所述串行数据路径为所述多个数据处理模块与所述FPGA外接的外部存储器串联连通的路径;所述垂直数据路径为所述FPGA中的多个数据处理模块分别通过片上总线与所述外部存储器连通的多个并行路径。
6.根据权利要求5所述的服务器,其特征在于,所述处理器在根据所述数据查询任务的总数量,确定现场可编程门阵列FPGA执行所述数据查询任务所采用的目标数据路径时,具体用于,当所述数据查询任务的总数量为一个时,确定所述FPGA执行所述数据查询任务所采用的目标数据路径为串行数据路径;当所述数据查询任务的总数量为多个时,确定所述FPGA执行所述数据查询任务所采用的目标数据路径为垂直数据路径。
7.根据权利要求5或6所述的服务器,其特征在于,所述FPGA的多个数据处理模块包括:合并模块、筛选模块、排序模块、分组模块和聚合模块;
所述FPGA中所述合并模块、筛选模块、排序模块、分组模块和聚合模块之间通过数据传输线路串联,且所述合并模块、筛选模块、排序模块、分组模块和聚合模块分别与所述FPGA的片上总线相连,且所述FPGA的片上总线与所述外部存储器相连。
8.根据权利要求7所述的服务器,其特征在于,所述FPGA在依据所述目标路径指示的所述目标数据路径,执行所述数据查询任务时,具体用于:
当所述目标数据路径为所述串行数据路径时,依据所述数据查询任务从所述外部存储器获取待查询的数据文件,并依次经由所述合并模块、筛选模块、排序模块、分组模块和聚合模块按照所述数据查询任务对所述数据文件进行处理之后,将得到的目标数据存储到所述外部存储器中;
当所述目标数据路径为所述垂直数据路径时,依据所述数据查询任务,依次通过所述合并模块、筛选模块、排序模块、分组模块和聚合模块分别从所述外部存储器获取到待处理的数据并处理,并将聚合模块最终处理得到的目标数据存储到所述外部存储器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810001177.1A CN108108473B (zh) | 2018-01-02 | 2018-01-02 | 数据查询方法以及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810001177.1A CN108108473B (zh) | 2018-01-02 | 2018-01-02 | 数据查询方法以及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108108473A CN108108473A (zh) | 2018-06-01 |
CN108108473B true CN108108473B (zh) | 2023-06-27 |
Family
ID=62219524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810001177.1A Active CN108108473B (zh) | 2018-01-02 | 2018-01-02 | 数据查询方法以及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108108473B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109657018B (zh) * | 2018-11-13 | 2024-05-07 | 平安科技(深圳)有限公司 | 一种分布式车辆行驶数据查询方法及终端设备 |
CN114285914B (zh) * | 2021-10-19 | 2023-10-20 | 南方电网数字电网研究院有限公司 | 基于电力安全的视频数据处理系统、方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677812A (zh) * | 2015-12-31 | 2016-06-15 | 华为技术有限公司 | 一种数据查询方法及数据查询装置 |
CN107092635A (zh) * | 2017-02-15 | 2017-08-25 | 北京小度信息科技有限公司 | 数据查询方法、装置、服务器、请求端及系统 |
CN112035581A (zh) * | 2020-08-21 | 2020-12-04 | 北京字节跳动网络技术有限公司 | 基于模型的任务处理方法、装置、设备和介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8301620B2 (en) * | 2009-05-28 | 2012-10-30 | Oracle International Corporation | Efficient way to evaluate aggregations on XML data using path-based row sources |
CN101908003B (zh) * | 2009-06-05 | 2014-10-22 | Sap股份公司 | 并行化查询的多核调度 |
US8914353B2 (en) * | 2011-12-20 | 2014-12-16 | Sap Se | Many-core algorithms for in-memory column store databases |
CN103176974B (zh) * | 2011-12-20 | 2016-01-13 | 国际商业机器公司 | 优化数据库中访问路径的方法和装置 |
CN103064955A (zh) * | 2012-12-28 | 2013-04-24 | 华为技术有限公司 | 查询规划方法及装置 |
CN103399943A (zh) * | 2013-08-14 | 2013-11-20 | 曙光信息产业(北京)有限公司 | 集群数据库并行查询的通讯方法和通讯装置 |
-
2018
- 2018-01-02 CN CN201810001177.1A patent/CN108108473B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677812A (zh) * | 2015-12-31 | 2016-06-15 | 华为技术有限公司 | 一种数据查询方法及数据查询装置 |
CN107092635A (zh) * | 2017-02-15 | 2017-08-25 | 北京小度信息科技有限公司 | 数据查询方法、装置、服务器、请求端及系统 |
CN112035581A (zh) * | 2020-08-21 | 2020-12-04 | 北京字节跳动网络技术有限公司 | 基于模型的任务处理方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108108473A (zh) | 2018-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9152669B2 (en) | System and method for distributed SQL join processing in shared-nothing relational database clusters using stationary tables | |
US9576026B2 (en) | System and method for distributed SQL join processing in shared-nothing relational database clusters using self directed data streams | |
JP2021166032A (ja) | ネットワークオンチップによるデータ処理方法及び装置 | |
CN110162388A (zh) | 一种任务调度方法、系统及终端设备 | |
EP4002115A1 (en) | Resource allocation method and resource offloading method | |
KR101765737B1 (ko) | 메모리 액세스 방법 및 메모리 시스템 | |
CN108108473B (zh) | 数据查询方法以及服务器 | |
CN111669308A (zh) | 基于轮询优化策略的Modbus通讯方法方法、装置、终端及介质 | |
CA3094727C (en) | Transaction processing method and system, and server | |
CN117075571A (zh) | 测试方法及系统、设备以及可读存储介质 | |
CN113886058A (zh) | 一种跨集群资源调度方法和装置 | |
CN113328927B (zh) | 一种具有计算、存储和网络交换功能的工业物联网网关 | |
CN105022333A (zh) | 具有多个cpu模块的plc系统及其控制方法 | |
CN109862097A (zh) | Id生成方法及装置 | |
CN116910568B (zh) | 图神经网络模型的训练方法及装置、存储介质及电子装置 | |
CN111767995A (zh) | 运算方法、装置及相关产品 | |
CN109213105A (zh) | 一种可重构装置、实现可重构的方法及分布式控制系统 | |
CN110597808B (zh) | 分布式数据库表连接方法、装置、系统、服务器及介质 | |
CN105573904A (zh) | 一种测试资源动态申请的方法和装置 | |
CN113468275B (zh) | 图数据库的数据导入方法和装置、存储介质及电子设备 | |
CN111200608B (zh) | 链路信息处理方法和装置 | |
CN112541038A (zh) | 时序数据管理方法、系统、计算设备及存储介质 | |
CN107645519B (zh) | 一种数据处理方法及系统、客户端及服务器 | |
CN102428673B (zh) | 用于分配正交序列的控制电路和方法 | |
CN108881424A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |