CN116186096A - 基于fpga的关系型数据库聚合查询方法、装置、设备及介质 - Google Patents
基于fpga的关系型数据库聚合查询方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116186096A CN116186096A CN202310094262.8A CN202310094262A CN116186096A CN 116186096 A CN116186096 A CN 116186096A CN 202310094262 A CN202310094262 A CN 202310094262A CN 116186096 A CN116186096 A CN 116186096A
- Authority
- CN
- China
- Prior art keywords
- data
- aggregation
- aggregated
- fpga
- relational database
- 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
- 238000004220 aggregation Methods 0.000 title claims abstract description 146
- 230000002776 aggregation Effects 0.000 title claims abstract description 146
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000006870 function Effects 0.000 claims description 35
- 238000004590 computer program Methods 0.000 claims description 15
- 230000004931 aggregating effect Effects 0.000 claims description 10
- 230000003993 interaction Effects 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 abstract description 11
- 238000012545 processing Methods 0.000 description 45
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000012216 screening Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
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/2457—Query processing with adaptation to user needs
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- 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)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种基于FPGA的关系型数据库聚合查询方法、装置、设备及存储介质,应用于FPGA芯片,涉及数据库技术领域,包括:通过OpenCAPI接口从关系型数据库的主机服务器获取与用户查询需求对应的待聚合数据;基于预设聚合函数对所述待聚合数据进行计算得到计算后数据,并根据预设数据分组类别对所述计算后数据进行分组处理,以得到与所述待聚合数据对应的若干个数据组;通过所述OpenCAPI接口将所述数据组传输至所述主机服务器,以便所述主机服务器基于所述数据组输出与所述用户查询需求对应的查询结果。这样一来,本申请可以在FPGA中完成数据的聚合以及分组操作,能避免利用CPU完成相应操作时被大量FPGA至CPU数据传输过程影响速度的情况,提高了数据聚合查询的效率。
Description
技术领域
本发明涉及数据库技术领域,特别涉及一种基于FPGA的关系型数据库聚合查询方法、装置、设备及存储介质。
背景技术
关系型数据库是一种数据记录存储系统,它采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,支持数据的全方位存储、搜索和解析。它被广泛应用于商业、工业、智能家居和医疗保健等领域。用户可以通过对关系型数据库进行科学合理的聚合查询来发现隐藏在数据集中的信息。对关系型数据库进行聚合查询会触发各种数据聚合操作,比如聚合函数处理、聚合分组、聚合筛选等。
随着大数据与信息化进程的不断推进,关系型数据库中存储的信息种类和数量日渐增加,这为用户端对关系型数据库的聚合查询响应效率带来了巨大挑战。现有的大多数针对关系型数据库聚合查询引擎的研究中,涉及到部分核心聚合操作时仍需要传输至CPU以协助FPGA完成,进而在FPGA上处理数据的速度优势被大量的FPGA至CPU数据传输过程严重影响。由此,如何进一步提高数据聚合查询的效率是本领域要解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种基于FPGA的关系型数据库聚合查询方法、装置、设备及存储介质,能够在FPGA中完成数据聚合以及分组的相关操作,可以避免利用CPU协助FPGA完成聚合相关操作时被大量的FPGA至CPU数据传输过程影响速度。其具体方案如下:
第一方面,本申请提供了一种基于FPGA的关系型数据库聚合查询方法,应用于FPGA芯片,包括:
通过OpenCAPI接口从关系型数据库的主机服务器获取与用户查询需求对应的待聚合数据;
基于预设聚合函数对所述待聚合数据进行计算得到计算后数据,并根据预设数据分组类别对所述计算后数据进行分组处理,以得到与所述待聚合数据对应的若干个数据组;
通过所述OpenCAPI接口将所述数据组传输至所述主机服务器,以便所述主机服务器基于所述数据组输出与所述用户查询需求对应的查询结果。
可选的,所述通过OpenCAPI接口从关系型数据库的主机服务器获取与用户查询需求对应的待聚合数据之前,还包括:
通过CPU将从所述主机服务器获取的与所述用户查询需求对应的数据集保存至CPU缓存,并基于所述CPU缓存保存的所述数据集以及所述用户查询需求生成与所述用户查询需求对应的所述待聚合数据。
可选的,所述通过OpenCAPI接口从关系型数据库的主机服务器获取与用户查询需求对应的待聚合数据之后,还包括:
对所述待聚合数据的数据格式进行校验以得到校验后数据;
相应的,所述基于预设聚合函数对所述待聚合数据进行计算得到计算后数据,包括:
基于预设聚合函数对所述校验后数据进行计算得到计算后数据。
可选的,所述基于预设聚合函数对所述待聚合数据进行计算得到计算后数据之前,还包括:
将通过所述OpenCAPI接口获取的所述待聚合数据转换为AHB总线格式以将转换后数据存入预设寄存器中。
可选的,所述基于预设聚合函数对所述待聚合数据进行计算得到计算后数据,包括:
基于所述预设聚合函数对在所述预设寄存器中保存的所述转换后数据进行计算得到所述计算后数据。
可选的,所述根据预设数据分组类别对所述计算后数据进行分组处理,以得到与所述检验后数据对应的若干个数据组之后,还包括:
通过AHB总线按顺序将存入预设FIFO存储器中的若干个所述数据组传输至预设结果缓存,以便通过所述OpenCAPI接口将所述数据组发送至所述主机服务器。
可选的,所述主机服务器基于所述数据组输出与所述用户查询需求对应的查询结果,包括:
利用CPU对所述数据组的格式进行校验,以得到校验后数据组;
通过所述主机服务器的人机交互页面展示基于所述校验后数据组输出的与所述用户查询需求对应的查询结果。
第二方面,本申请提供了一种基于FPGA的关系型数据库聚合查询装置,包括:
数据获取模块,用于通过OpenCAPI接口从关系型数据库的主机服务器获取与用户查询需求对应的待聚合数据;
数据聚合模块,用于基于预设聚合函数对所述待聚合数据进行计算得到计算后数据,并根据预设数据分组类别对所述计算后数据进行分组处理,以得到与所述待聚合数据对应的若干个数据组;
数据组输出模块,用于通过所述OpenCAPI接口将所述数据组传输至所述主机服务器,以便所述主机服务器基于所述数据组输出与所述用户查询需求对应的查询结果。
第三方面,本申请提供了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序以实现如上述的基于FPGA的关系型数据库聚合查询方法。
第四方面,本申请提供了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现如上述的基于FPGA的关系型数据库聚合查询方法。
由此可见,本申请通过OpenCAPI接口从关系型数据库的主机服务器获取与用户查询需求对应的待聚合数据;然后基于预设聚合函数对所述待聚合数据进行计算得到计算后数据,并根据预设数据分组类别对所述计算后数据进行分组处理,以得到与所述待聚合数据对应的若干个数据组;通过所述OpenCAPI接口将所述数据组传输至所述主机服务器,以便所述主机服务器基于所述数据组输出与所述用户查询需求对应的查询结果。这样一来,本申请可以基于所述预设聚合函数对所述待聚合数据进行计算得到所述计算后数据,并在FPGA芯片中根据所述预设数据分组类别对所述计算后数据进行分组处理,这样可以得到与用户查询需求对应的最终的若干个数据组;这样可以在FPGA中完成数据聚合以及分组的相关操作,可以避免利用CPU协助FPGA完成聚合的相关操作时被大量的FPGA至CPU数据传输过程影响整体的数据处理速度,进而提高了数据聚合查询的处理效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种基于FPGA的关系型数据库聚合查询方法流程图;
图2为本申请公开的一种具体的基于FPGA的关系型数据库聚合查询方法流程图;
图3为本申请公开的另一种具体的基于FPGA的关系型数据库聚合查询方法流程图;
图4为本申请公开的一种具体的基于FPGA的关系型数据库聚合查询方法结构示意图;
图5为本申请公开的一种具体的FPGA模块结构图;
图6为本申请公开的一种基于FPGA的关系型数据库聚合查询装置结构示意图;
图7为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着大数据与信息化进程的不断推进,关系型数据库中存储的信息种类和数量日渐增加,这为用户端对关系型数据库的聚合查询响应效率带来了巨大挑战。现有的针对关系型数据库聚合查询引擎的研究,是在FPGA上实现了聚合函数相关的这一类聚合操作,并未涉及到聚合分组,聚合筛选等操作。然而,未涉及到的聚合操作必不可少,仍需要通过传输至CPU以协助完成聚合操作,这样一来,在FPGA上处理数据的速度优势会被大量的FPGA至CPU数据传输过程影响。由此,本申请通过在FPGA芯片上对数据进行分组等操作,可以避免大量的FPGA至CPU数据传输过程,进一步可以提高数据查询的处理效率。
参见图1所示,本发明实施例公开了一种基于FPGA的关系型数据库聚合查询方法,包括:
步骤S11、通过OpenCAPI接口从关系型数据库的主机服务器获取与用户查询需求对应的待聚合数据。
本实施例中,可以利用所述OpenCAPI接口从所述关系型数据库的主机服务器中获取与用户查询需求对应的所述待聚合数据;在具体的实施例中,所述OpenCAPI接口的物理层面由PCIe3.0实现,OpenCAPI协议可以实现数据高速传输交换操作,具体的,可以通过所述OpenCAPI接口获取缓存在主机服务器的CPU缓存中的待聚合数据。
在一种具体的实施例中,所述通过OpenCAPI接口从关系型数据库的主机服务器获取与用户查询需求对应的待聚合数据之前,还可以包括:通过CPU将从所述主机服务器获取的与所述用户查询需求对应的数据集保存至CPU缓存,并基于所述CPU缓存保存的所述数据集以及所述用户查询需求生成与所述用户查询需求对应的所述待聚合数据。具体的,可以将需要执行聚合操作的与所述用户查询需求对应的数据集保存至所述CPU缓存;进一步的,可以通过CPU对其中的数据集以及与所述用户查询需求对应的处理指令进行打包,这样可以得到与所述用户查询需求对应的所述待聚合数据。可以理解的是,当关系型数据库中需执行聚合操作的数据量较大时,可以将相应的数据暂存于CPU缓存。
步骤S12、基于预设聚合函数对所述待聚合数据进行计算得到计算后数据,并根据预设数据分组类别对所述计算后数据进行分组处理,以得到与所述待聚合数据对应的若干个数据组。
本实施例中,通过OpenCAPI接口获取到与用户查询请求对应的待聚合数据之后,可以根据所述预设聚合函数对所述待聚合数据进行聚合计算得到所述计算后数据,并且可以根据所述预设数据分组类别对所述计算后数据进行分组处理,这样可以得到与所述待聚合数据对应的聚合处理后的若干个所述数据组;在具体的实施例中,可以对所述计算后数据进行按需分组、筛选等聚合处理操作。
在一种具体的实施例中,所述通过OpenCAPI接口从关系型数据库的主机服务器获取与用户查询需求对应的待聚合数据之后,还可以包括:对所述待聚合数据的数据格式进行校验以得到校验后数据;相应的,所述基于预设聚合函数对所述待聚合数据进行计算得到计算后数据,可以包括:基于预设聚合函数对所述校验后数据进行计算得到计算后数据。具体的,在通过所述OpenCAPI接口获取到所述待聚合数据之后,可以先对所述待聚合数据的格式进行校验,这样得到的校验后数据可以基于所述预设聚合函数来进行计算,然后可以得到所述计算后数据,再进行后续聚合步骤的相关操作。
步骤S13、通过所述OpenCAPI接口将所述数据组传输至所述主机服务器,以便所述主机服务器基于所述数据组输出与所述用户查询需求对应的查询结果。
本实施例中,通过步骤S12完成对待聚合数据的聚合操作之后,可以通过所述OpenCAPI接口将得到的若干个数据组传输至主机服务器;可以理解的是,所述主机服务器可以基于所述数据组生成并输出与所述用户查询需求对应的所述查询结果,这样就完成了单次数据聚合查询的处理过程。
由此可见,本申请可以通过OpenCAPI接口获取关系型数据库中与用户查询需求相关的待聚合数据,并可以在FPGA芯片中基于所述预设聚合函数对所述待聚合数据进行计算得到计算后数据,以及根据所述预设数据分组类别对所述计算后数据进行分组处理,这样可以得到与用户查询需求对应的最终的若干个数据组;这样在FPGA芯片中完成数据聚合以及分组的相关操作,可以避免利用CPU协助FPGA完成聚合的相关操作时被大量的FPGA至CPU数据传输过程影响整体的数据处理速度,进而可以提高数据聚合查询的处理效率。
参见图2所示,本发明实施例公开了一种基于FPGA的关系型数据库聚合查询方法,包括:
步骤S21、通过OpenCAPI接口从关系型数据库的主机服务器获取与用户查询需求对应的待聚合数据。
步骤S22、将通过所述OpenCAPI接口获取的所述待聚合数据转换为AHB总线格式以将转换后数据存入预设寄存器中。
本实施例中,可以将所述待聚合数据转换为AHB总线格式;在具体的实施例中,待聚合数据中可以包括与用户查询需求相关的数据以及聚合操作的处理指令,可以理解的是,当待聚合数据转换为AHB总线格式之后,与所述用户查询需求对应的数据可以存入数据寄存器,相应的,与聚合操作相关的处理指令可以存入控制寄存器中。
步骤S23、基于所述预设聚合函数对在所述预设寄存器中保存的所述转换后数据进行计算得到计算后数据,并根据预设数据分组类别对所述计算后数据进行分组处理,以得到与所述待聚合数据对应的若干个数据组。
本实施例中,将转换后数据存入所述预设寄存器中之后,可以基于所述预设聚合函数对所述转换后数据进行计算得到计算后数据;可以理解的是,可以通过AHB总线获取相应的转换后数据进行相关聚合步骤的处理,进一步的,在FPGA芯片中可以对不同的聚合单元配置不同的聚合操作内容以保证可以对不同聚合需求的数据进行聚合处理。本实施例中,对转换后数据进行聚合处理之后可以得到与所述待聚合数据对应的若干个所述数据组。
步骤S24、通过AHB总线按顺序将存入预设FIFO存储器中的若干个所述数据组传输至预设结果缓存。
本实施例中,在对转换后数据进行聚合处理得到若干个所述数据组之后,可以通过所述AHB总线按顺序将存入所述预设FIFO存储器中的若干个所述数据组传输至所述预设结果缓存;可以理解的是,在对转换后数据进行聚合处理得到若干个所述数据组之后,首先将所述数据组存入所述预设FIFO存储器,以便通过AHB总线按顺序对数据组进行传输并保存至所述预设结果缓存。
步骤S25、通过所述OpenCAPI接口将预设结果缓存中的所述数据组传输至所述主机服务器,以便所述主机服务器基于所述数据组输出与所述用户查询需求对应的查询结果。
本实施中,可以通过所述OpenCAPI接口将所述预设结果缓存中的所述数据组传输至所述主机服务器,这样一来,所述主机服务器可以根据所述数据组以及用户查询需求生成相应的查询结果,并向用户输出所述查询结果。
在具体的实施例中,所述主机服务器基于所述数据组输出与所述用户查询需求对应的查询结果,可以包括:利用CPU对所述数据组的格式进行校验,以得到校验后数据组;通过所述主机服务器的人机交互页面展示基于所述校验后数据组输出的与所述用户查询需求对应的查询结果。具体的,通过所述OpenCAPI接口传输的数据组首先经过CPU的格式校验,可以得到校验后数据组,然后基于所述校验后数据组以及所述用户查询需求生成相应的查询结果,然后可以通过所述主机服务器的人机交互页面展示所述查询结果。
其中,关于上述步骤S21更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
由此可见,本申请中可以通过对数据的格式进行校验以降低出现查询失误状况的可能性,并且可以配置与实际查询需求对应的聚合操作内容来实现对多种不同的聚合查询操作的更新,可以提高本申请使用场景的灵活性。
下面的实施例将根据如图3所示的流程图对本申请的技术方案进行介绍,包括:
本申请实施例中,首先从主机存储引擎读取关系型数据库内部与用户查询需求对应的需执行聚合操作的相关的数据开始,由于数据量较大,在具体的实施例中通常为上万条,这些数据先被暂存于CPU缓存。随后,在CPU内部缓存的数据打包后经过OpenCAPI接口可以传输至FPGA的聚合查询引擎中。可以理解的是,FPGA收到这些待聚合数据后,首先对其数据的格式进行校验,校验完成后基于预先设计的聚合逻辑对数据执行聚合函数、再按需分组、筛选等聚合处理操作,这样可以得到不同的数据组;进一步的,处理后得到的数据组经FPGA打包后通过OpenCAPI接口可以传输至主机服务器,然后CPU对这些数据组进行二次校验,最后,主机服务器可以根据得到的数据组向用户输出与用户查询需求对应的查询结果,这样就结束了单次数据查询处理过程。
在一种具体的实施例中,本申请的技术方案还可以结合如图4所示的结构图实施;具体的,FPGA板卡与数据库控制节点也即CPU在物理层面通过PCIe接口连接;其中,FPGA板卡也即以FPGA为核心的硬件聚合查询引擎通过OpenCAPI接口与数据库控制节点连接;首先用户在主机端发出数据库聚合查询处理需求,主机端的存储引擎接收到正确的聚合查询指令,也即图中步骤①的内容;然后主机端收到聚合查询指令后,存储引擎从关系型数据库读取需要执行聚合操作的相关数据集也即图中步骤②的内容;可以理解的是,由于数据量巨大,读取的数据集可以先由CPU缓存Cache暂时存储,也即图中步骤③的内容;当CPU中的数据收集完毕后,可以将Cache暂存的数据和处理指令打包后得到的待聚合数据经过OpenCAPI接口的TL端发送至数据库聚合查询引擎的TLX端,也即图中步骤④和⑤内容;进一步的,OpenCAPI接口的TLX端可以将接收到的待聚合数据发送至FPGA芯片也即图中步骤⑥的内容;然后FPGA可以根据预设聚合函数等预设聚合处理内容对待聚合数据执行聚合函数计算、按需分组、筛选等聚合处理操作,并将处理结果也即得到的若干个数据组通过关系型数据库聚合查询引擎的TLX端发送至OpenCAPI接口的主机服务器的TL端也即图中步骤⑦和⑧的内容;然后TL端接收到的处理结果经CPU进行格式校验后,可以输出至用户端,并通过查询结果显示设备展示聚合查询结果也即图中步骤⑨和⑩的内容。
需要指出的是,在具体的实施例中,对待聚合数据进行聚合处理的过程可以结合如图5所示的结构图实施;具体可以包括三个阶段,总线格式转换,分配数据聚合处理以及根据需求实现不同聚合操作的过程;其中,在总线格式转换阶段中,可以将主机通过OpenCAPI接口传输的数据和操作指令数据流,转换为标准AHB总线格式,相应的格式转换操作可以通过FPGA与数据库之间的协议转换模块也即图中AHB~TLX Bridge模块实现,进一步的,转换后的控制指令信息以及需要执行聚合操作的数据可以分别存储于控制寄存器也即图中Control Buffer模块和数据寄存器也即图中Data Buffer模块中。相应的,分配数据聚合处理阶段,在具体的实施例中可以包括8组聚合计算单元也即图中Aggregation Unit0~Aggregation Unit7,这些聚合计算单元可以通过AHB slave从机总线协议加挂在AHB总线上,在聚合处理的开始,可以分别对相应待执行聚合操作的数据和指令分配聚合计算单元,并通过AHB总线将对应的数据和指令传送至对应聚合计算单元的控制Buffer也即图中Control Buffer模块和数据Buffer也即图中Data Buffer模块中。相应的,根据需求实现不同聚合操作的过程,可以通过聚合计算单元按照控制Buffer存储的操作内容,按需求对数据Buffer存储的数据执行聚合函数计算、聚合分组以及筛选等处理,其中可以通过图中Function模块聚合函数计算过程,通过图中Group by模块完成聚合分组的操作以及通过Having模块完成筛选的操作;进一步的,这样进行聚合处理之后得到的处理结果也即前述实施例中提到的数据组可以存放至对应的结果存储FIFO中,具体的实施例中可以存放至图中Aggregation Result FIFO_0~Aggregation Result FIFO_7的结果存储FIFO中,然后可以依序经过AHB总线将相应的处理结果发送至处理结果缓存也即Result Buffer,最终由FPGA的TLX端口通过OpenCAPI接口发送至数据库的主机服务器。
下面将通过测试的方式验证本申请中技术方案的可靠性,具体的,测试中选择IBMPower8服务器作为主机节点,并使用Xilinx ZCU106开发板作为载体实现查询引擎,数据库选用华为GaussDB关系型数据库。分别使用本本申请的基于FPGA的数据库聚合查询方法和传统CPU+FPGA聚合查询方法在同样的数据和查询条件下,对不同大小的数据包进行聚合查询测试,并记录各组实验查询所需时间。具体实验查询性能结果如下表1所示。
表1
通过结果对比显示,在查询相同的内容时,本申请提出的基于FPGA的关系型数据库聚合查询引擎查询所需时间比传统CPU+FPGA聚合查询方法的处理时间减少了89.8%,大大加快了关系型数据库聚合查询效率,满足了查询处理操作的实时性需求。
由此可见,本申请实施例中,可以通过预先配置好的聚合处理单元对待聚合数据进行处理,这样可以重复利用这些聚合处理单元,提高了资源的利用率;并且通过实验对比,可以看出本申请方法能够提高关系型数据库聚合查询的效率,可以进一步满足用户对数据库的高速高吞吐量查询需求。
如图6所示,本申请实施例公开了一种基于FPGA的关系型数据库聚合查询装置,包括:
数据获取模块11,用于通过OpenCAPI接口从关系型数据库的主机服务器获取与用户查询需求对应的待聚合数据;
数据聚合模块12,用于基于预设聚合函数对所述待聚合数据进行计算得到计算后数据,并根据预设数据分组类别对所述计算后数据进行分组处理,以得到与所述待聚合数据对应的若干个数据组;
数据组输出模块13,用于通过所述OpenCAPI接口将所述数据组传输至所述主机服务器,以便所述主机服务器基于所述数据组输出与所述用户查询需求对应的查询结果。
由此可见,本申请可以在FPGA中完成数据聚合以及分组的相关操作,可以避免利用CPU协助FPGA完成聚合的相关操作时被大量的FPGA至CPU数据传输过程影响整体的数据处理速度,进而可以提高数据聚合查询的处理效率。
在一种具体的实施例中,所述数据获取模块11,还可以包括:
数据集保存单元,用于通过CPU将从所述主机服务器获取的与所述用户查询需求对应的数据集保存至CPU缓存;
待聚合数据生成单元,用于基于所述CPU缓存保存的所述数据集以及所述用户查询需求生成与所述用户查询需求对应的所述待聚合数据。
在另一种具体的实施例中,所述数据获取模块11,还可以包括:
待聚合数据校验单元,用于对所述待聚合数据的数据格式进行校验以得到校验后数据;
相应的,所述数据聚合模块12,可以包括:
校验后数据计算单元,用于基于预设聚合函数对所述校验后数据进行计算得到计算后数据。
在一种具体的实施例中,所述数据聚合模块12,还可以包括:
数据转换单元,用于将通过所述OpenCAPI接口获取的所述待聚合数据转换为AHB总线格式以将转换后数据存入预设寄存器中。
在另一种具体的实施例中,所述数据聚合模块12,可以包括:
转化后数据计算单元,用于基于所述预设聚合函数对在所述预设寄存器中保存的所述转换后数据进行计算得到所述计算后数据。
在一种具体的实施例中,所述数据聚合模块12,还可以包括:
数据组传输单元,用于通过AHB总线按顺序将存入预设FIFO存储器中的若干个所述数据组传输至预设结果缓存,以便通过所述OpenCAPI接口将所述数据组发送至所述主机服务器。
在一种具体的实施例中,所述数据组输出模块13,可以包括:
数据组校验单元,用于利用CPU对所述数据组的格式进行校验,以得到校验后数据组;
查询结果输出单元,用于通过所述主机服务器的人机交互页面展示基于所述校验后数据组输出的与所述用户查询需求对应的查询结果。
进一步的,本申请实施例还公开了一种电子设备,图7是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图7为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的基于FPGA的关系型数据库聚合查询方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的基于FPGA的关系型数据库聚合查询方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的基于FPGA的关系型数据库聚合查询方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的技术方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种基于FPGA的关系型数据库聚合查询方法,其特征在于,应用于FPGA芯片,包括:
通过OpenCAPI接口从关系型数据库的主机服务器获取与用户查询需求对应的待聚合数据;
基于预设聚合函数对所述待聚合数据进行计算得到计算后数据,并根据预设数据分组类别对所述计算后数据进行分组处理,以得到与所述待聚合数据对应的若干个数据组;
通过所述OpenCAPI接口将所述数据组传输至所述主机服务器,以便所述主机服务器基于所述数据组输出与所述用户查询需求对应的查询结果。
2.根据权利要求1所述的基于FPGA的关系型数据库聚合查询方法,其特征在于,所述通过OpenCAPI接口从关系型数据库的主机服务器获取与用户查询需求对应的待聚合数据之前,还包括:
通过CPU将从所述主机服务器获取的与所述用户查询需求对应的数据集保存至CPU缓存,并基于所述CPU缓存保存的所述数据集以及所述用户查询需求生成与所述用户查询需求对应的所述待聚合数据。
3.根据权利要求1所述的基于FPGA的关系型数据库聚合查询方法,其特征在于,所述通过OpenCAPI接口从关系型数据库的主机服务器获取与用户查询需求对应的待聚合数据之后,还包括:
对所述待聚合数据的数据格式进行校验以得到校验后数据;
相应的,所述基于预设聚合函数对所述待聚合数据进行计算得到计算后数据,包括:
基于预设聚合函数对所述校验后数据进行计算得到计算后数据。
4.根据权利要求1所述的基于FPGA的关系型数据库聚合查询方法,其特征在于,所述基于预设聚合函数对所述待聚合数据进行计算得到计算后数据之前,还包括:
将通过所述OpenCAPI接口获取的所述待聚合数据转换为AHB总线格式以将转换后数据存入预设寄存器中。
5.根据权利要求4所述的基于FPGA的关系型数据库聚合查询方法,其特征在于,所述基于预设聚合函数对所述待聚合数据进行计算得到计算后数据,包括:
基于所述预设聚合函数对在所述预设寄存器中保存的所述转换后数据进行计算得到所述计算后数据。
6.根据权利要求1所述的基于FPGA的关系型数据库聚合查询方法,其特征在于,所述根据预设数据分组类别对所述计算后数据进行分组处理,以得到与所述检验后数据对应的若干个数据组之后,还包括:
通过AHB总线按顺序将存入预设FIFO存储器中的若干个所述数据组传输至预设结果缓存,以便通过所述OpenCAPI接口将所述数据组发送至所述主机服务器。
7.根据权利要求1至6任一项所述的基于FPGA的关系型数据库聚合查询方法,其特征在于,所述主机服务器基于所述数据组输出与所述用户查询需求对应的查询结果,包括:
利用CPU对所述数据组的格式进行校验,以得到校验后数据组;
通过所述主机服务器的人机交互页面展示基于所述校验后数据组输出的与所述用户查询需求对应的查询结果。
8.一种基于FPGA的关系型数据库聚合查询装置,其特征在于,包括:
数据获取模块,用于通过OpenCAPI接口从关系型数据库的主机服务器获取与用户查询需求对应的待聚合数据;
数据聚合模块,用于基于预设聚合函数对所述待聚合数据进行计算得到计算后数据,并根据预设数据分组类别对所述计算后数据进行分组处理,以得到与所述待聚合数据对应的若干个数据组;
数据组输出模块,用于通过所述OpenCAPI接口将所述数据组传输至所述主机服务器,以便所述主机服务器基于所述数据组输出与所述用户查询需求对应的查询结果。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至7任一项所述的基于FPGA的关系型数据库聚合查询方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的基于FPGA的关系型数据库聚合查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310094262.8A CN116186096A (zh) | 2023-02-07 | 2023-02-07 | 基于fpga的关系型数据库聚合查询方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310094262.8A CN116186096A (zh) | 2023-02-07 | 2023-02-07 | 基于fpga的关系型数据库聚合查询方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116186096A true CN116186096A (zh) | 2023-05-30 |
Family
ID=86436025
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310094262.8A Pending CN116186096A (zh) | 2023-02-07 | 2023-02-07 | 基于fpga的关系型数据库聚合查询方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116186096A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116450692A (zh) * | 2023-06-06 | 2023-07-18 | 山东浪潮科学研究院有限公司 | 一种数据库故障排查方法,装置、设备及存储介质 |
-
2023
- 2023-02-07 CN CN202310094262.8A patent/CN116186096A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116450692A (zh) * | 2023-06-06 | 2023-07-18 | 山东浪潮科学研究院有限公司 | 一种数据库故障排查方法,装置、设备及存储介质 |
CN116450692B (zh) * | 2023-06-06 | 2023-08-29 | 山东浪潮科学研究院有限公司 | 一种数据库故障排查方法,装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10176208B2 (en) | Processing time series data from multiple sensors | |
CN109471863B (zh) | 基于分布式数据库的信息查询方法及装置、电子设备 | |
CN103336672B (zh) | 数据读取方法、装置及计算设备 | |
JP7330393B2 (ja) | リソースを管理かつ制御する方法および装置、デバイスならびに記憶媒体 | |
CN116186096A (zh) | 基于fpga的关系型数据库聚合查询方法、装置、设备及介质 | |
CN108363741B (zh) | 大数据统一接口方法、装置、设备及存储介质 | |
CN111258978A (zh) | 一种数据存储的方法 | |
CN110769002A (zh) | 基于LabVIEW的报文解析方法、系统、电子设备和介质 | |
CN112307062A (zh) | 数据库聚合查询方法、装置及系统 | |
CN109726219A (zh) | 数据查询的方法及终端设备 | |
WO2024001756A1 (zh) | 数据存储方法、装置、电子设备和存储介质 | |
CN113254519A (zh) | 多源异构数据库的访问方法、装置、设备和存储介质 | |
CN109542912B (zh) | 区间数据存储方法、装置、服务器及存储介质 | |
CN116383240A (zh) | 基于fpga多数据库加速查询方法、装置、设备及介质 | |
CN109101595B (zh) | 一种信息查询方法、装置、设备及计算机可读存储介质 | |
CN111008189A (zh) | 一种动态数据模型构建方法 | |
CN108694205B (zh) | 匹配目标字段的方法、装置 | |
WO2022068348A1 (zh) | 关系图谱构建方法、装置、电子设备及存储介质 | |
WO2020024392A1 (zh) | 节点处理方法及装置、存储介质和电子设备 | |
US10599728B1 (en) | Metadata agent for query management | |
CN115114297A (zh) | 数据轻量存储及查找方法、装置、电子设备及存储介质 | |
CN114547199A (zh) | 数据库增量同步响应方法、装置及计算机可读存储介质 | |
CN111552715B (zh) | 用户查询方法和装置 | |
CN114328486A (zh) | 基于模型的数据质量核查方法及装置 | |
CN111143398A (zh) | 基于扩展sql函数的超大集合查询方法及装置 |
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 |