FPGA加速数据库查询方法、装置、设备及介质制造方法及图纸

技术编号:39305012 阅读:15 留言:0更新日期:2023-11-12 15:54
本发明专利技术提供一种FPGA加速数据库查询方法、装置、设备及介质,包括:将查询SQL输入至FPGA硬件内核中的行解析模块,得到第一数据流;将第一数据流输入至过滤模块,得到第二数据流;将第二数据流输入至运算模块,得到第三数据流;将第三数据流输入至投影输出模块,得到目标数据表;行解析模块用于基于查询SQL对应的配置将数据表拆分成列数据形式并放入流中,过滤模块用于对输入数据流执行查询SQL对应的过滤条件子句,运算模块用于对输入数据流执行查询SQL对应的函数表达式运算,投影输出模块用于将输入数据流封装为行数据。本发明专利技术用以提高FPGA加速数据库SQL查询的通用能力。FPGA加速数据库SQL查询的通用能力。FPGA加速数据库SQL查询的通用能力。

【技术实现步骤摘要】
FPGA加速数据库查询方法、装置、设备及介质


[0001]本专利技术涉及数据库查询
,尤其涉及一种FPGA加速数据库查询方法、装置、设备及介质。

技术介绍

[0002]FPGA属于半定制化电路,需要将运算逻辑烧写到电路芯片完成一个完整的功能。在一个数据库SQL查询指令翻译成硬件电路后,硬件电路只能完成该SQL查询的查询,但倘若改变了查询目标子句或过滤条件表达式,那么该硬件电路就不能完成此改变后查询SQL的功能,硬件电路需要组织人力重新开发定制,即FPGA硬件电路很难做到通用性。
[0003]鉴于此,亟需一种应用于数据库查询领域的旨在提高FPGA加速数据库SQL查询的通用能力的方法。

技术实现思路

[0004]本专利技术提供一种FPGA加速数据库查询方法、装置、设备及介质,用以解决现有技术中FPGA对于数据库SQL查询的通用能力差的缺陷,实现提高FPGA加速数据库SQL查询的通用能力。
[0005]本专利技术提供一种FPGA加速数据库查询方法,包括:
[0006]当接收到查询SQL时,将所述查询SQL输入至FPGA硬件内核中的行解析模块,得到所述行解析模块输出的第一数据流;
[0007]将所述第一数据流输入至所述FPGA硬件内核中的过滤模块,得到所述过滤模块输出的第二数据流;
[0008]将所述第二数据流输入至所述FPGA硬件内核中的运算模块,得到所述运算模块输出的第三数据流;
[0009]将所述第三数据流输入至所述FPGA硬件内核中的投影输出模块,得到所述投影输出模块输出的目标数据表;
[0010]其中,所述行解析模块用于基于所述查询SQL对应的配置将数据表拆分成列数据形式并放入流中,所述过滤模块用于对输入数据流执行所述查询SQL对应的过滤条件子句,所述运算模块用于对输入数据流执行所述查询SQL对应的函数表达式运算,所述投影输出模块用于将输入数据流封装为行数据并输出。
[0011]根据本专利技术提供的一种FPGA加速数据库查询方法,所述运算模块包括非聚合运算模块和聚合运算模块;
[0012]将所述第二数据流输入至所述FPGA硬件内核中的运算模块,得到所述运算模块输出的第三数据流,包括:
[0013]将所述第二数据流输入至所述非聚合运算模块,得到所述非聚合运算模块输出的第四数据流;
[0014]将所述第四数据流输入至所述聚合运算模块,得到所述聚合运算模块输出的第三
数据流;
[0015]其中,所述非聚合运算模块用于对输入数据流执行非聚合函数表达式运算,所述聚合运算模块用于对输入数据流执行聚合函数表达式运算。
[0016]根据本专利技术提供的一种FPGA加速数据库查询方法,将所述第二数据流输入至所述FPGA硬件内核中的运算模块,得到所述运算模块输出的第三数据流步骤之前,包括:
[0017]将所述第二数据流输入至所述FPGA硬件内核中的分组模块,得到所述分组模块输出的第五数据流;
[0018]将所述第五数据流作为所述第二数据流;
[0019]其中,所述分组模块用于在所述查询SQL含有分组子句时,对输入数据流执行分组子句。
[0020]根据本专利技术提供的一种FPGA加速数据库查询方法,将所述第三数据流输入至所述FPGA硬件内核中的投影输出模块,得到所述投影输出模块输出的目标数据表之前,包括:
[0021]将所述第三数据流输入至所述FPGA硬件内核中的分组过滤模块,得到所述分组过滤模块输出的第六数据流;
[0022]将所述第六数据流作为所述第三数据流;
[0023]其中,所述分组过滤模块用于对输入的多组数据流执行所述过滤条件子句。
[0024]根据本专利技术提供的一种FPGA加速数据库查询方法,确定所述FPGA硬件内核的各个硬件内核模块的配置,包括:
[0025]生成所述查询SQL对应的查询计划树;
[0026]遍历所述查询计划树,以基于所述查询计划树,确定所述FPGA硬件内核的各个硬件内核模块的配置,所述配置与所述硬件内核模块一一对应;
[0027]其中,所述查询计划树用于表征所述查询SQL对应的SQL表达式以及所述SQL表达式的执行顺序,所述配置用于指示所述各个硬件内核模块根据对应的配置配合执行所述查询SQL。
[0028]根据本专利技术提供的一种FPGA加速数据库查询方法,基于所述查询计划树,确定所述FPGA硬件内核的各个硬件内核模块的配置,包括:
[0029]提取所述查询计划树的过滤条件子句,并基于所述过滤条件子句,生成所述过滤模块所需的配置;
[0030]基于所述查询计划树的目标列表,生成所述运算模块的配置,所述目标列表包括所述非聚合函数表达式运算和所述聚合函数表达式运算。
[0031]本专利技术还提供一种FPGA加速数据库查询装置,包括:
[0032]第一输入模块,用于当接收到查询SQL时,将所述查询SQL输入至FPGA硬件内核中的行解析模块,得到所述行解析模块输出的第一数据流;
[0033]第二输入模块,用于将所述第一数据流输入至所述FPGA硬件内核中的过滤模块,得到所述过滤模块输出的第二数据流;
[0034]第三输入模块,用于将所述第二数据流输入至所述FPGA硬件内核中的运算模块,得到所述运算模块输出的第三数据流;
[0035]第四输入模块,用于将所述第三数据流输入至所述FPGA硬件内核中的投影输出模块,得到所述投影输出模块输出的目标数据表;
[0036]其中,所述行解析模块用于基于所述查询SQL对应的配置将数据表拆分成列数据形式并放入流中,所述过滤模块用于对输入数据流执行所述查询SQL对应的过滤条件子句,所述运算模块用于对输入数据流执行所述查询SQL对应的函数表达式运算,所述投影输出模块用于将输入数据流封装为行数据并输出。
[0037]本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述FPGA加速数据库查询方法。
[0038]本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述FPGA加速数据库查询方法。
[0039]本专利技术还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述FPGA加速数据库查询方法。
[0040]本专利技术提供的FPGA加速数据库查询方法、装置、设备及介质,SQL查询过程中,先将数据表拆分成列数据形式并放入流中,再执行过滤条件子句,执行非聚合函数表达式运算和聚合函数表达式运算,最后封装为行数据并输出,通过提出一种FPGA硬件内核框架包括行解析模块、过滤模块、运算模块和投影输出模块,SQL查询在FPGA硬件电路中以数据流的形式在各个模块间执行,适用于特定的聚合、扫描查询中,即使改变了查询SQL中查询目标子句或过滤条件表达式,那么该硬件电路也能完成改变后查询SQL本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种FPGA加速数据库查询方法,其特征在于,包括:当接收到查询SQL时,将所述查询SQL输入至FPGA硬件内核中的行解析模块,得到所述行解析模块输出的第一数据流;将所述第一数据流输入至所述FPGA硬件内核中的过滤模块,得到所述过滤模块输出的第二数据流;将所述第二数据流输入至所述FPGA硬件内核中的运算模块,得到所述运算模块输出的第三数据流;将所述第三数据流输入至所述FPGA硬件内核中的投影输出模块,得到所述投影输出模块输出的目标数据表;其中,所述行解析模块用于基于所述查询SQL对应的配置将数据表拆分成列数据形式并放入流中,所述过滤模块用于对输入数据流执行所述查询SQL对应的过滤条件子句,所述运算模块用于对输入数据流执行所述查询SQL对应的函数表达式运算,所述投影输出模块用于将输入数据流封装为行数据并输出。2.根据权利要求1所述的FPGA加速数据库查询方法,其特征在于,所述运算模块包括非聚合运算模块和聚合运算模块;将所述第二数据流输入至所述FPGA硬件内核中的运算模块,得到所述运算模块输出的第三数据流,包括:将所述第二数据流输入至所述非聚合运算模块,得到所述非聚合运算模块输出的第四数据流;将所述第四数据流输入至所述聚合运算模块,得到所述聚合运算模块输出的第三数据流;其中,所述非聚合运算模块用于对输入数据流执行非聚合函数表达式运算,所述聚合运算模块用于对输入数据流执行聚合函数表达式运算。3.根据权利要求1所述的FPGA加速数据库查询方法,其特征在于,将所述第二数据流输入至所述FPGA硬件内核中的运算模块,得到所述运算模块输出的第三数据流步骤之前,包括:将所述第二数据流输入至所述FPGA硬件内核中的分组模块,得到所述分组模块输出的第五数据流;将所述第五数据流作为所述第二数据流;其中,所述分组模块用于在所述查询SQL含有分组子句时,对输入数据流执行分组子句。4.根据权利要求3所述的FPGA加速数据库查询方法,其特征在于,将所述第三数据流输入至所述FPGA硬件内核中的投影输出模块,得到所述投影输出模块输出的目标数据表之前,包括:将所述第三数据流输入至所述FPGA硬件内核中的分组过滤模块,得到所述分组过滤模块输出的第六数据流;将所述第六数据流作为所述第三数据流;其中,所述分组过滤模块用于对输入的多组数据流执行所述过滤条件子句。5.根据权利要求2所述的FPGA加速数据库查询方法,其特征在于,确定所...

【专利技术属性】
技术研发人员:蒿杰吕志丰高韵沣彭琳陈韶伟
申请(专利权)人:广东人工智能与先进计算研究院
类型:发明
国别省市:

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

1