数据库哈希连接处理方法、装置、设备及存储介质制造方法及图纸

技术编号:37781140 阅读:23 留言:0更新日期:2023-06-09 09:11
本发明专利技术提供一种数据库哈希连接处理方法、装置、设备及存储介质,所述数据库设有第一查询通道和第二查询通道,所述第一查询通道中设有布隆过滤表;所述方法包括:获取数据库的查询语句,以及所述查询语句对应的查询计划和数据库外表;根据所述查询计划确定所述查询语句对应的目标查询通道;若所述目标查询通道为所述第一查询通道,则基于所述数据库外表和所述布隆过滤表构建布隆过滤器;基于所述布隆过滤器执行所述查询计划对应的哈希连接。本发明专利技术提供的数据库哈希连接处理方法,通过自适应添加布隆过滤器,可以在不影响计算资源的使用的前提下,在执行哈希连接时过滤掉不相关的外表行,提高数据库的硬件加速效果,进而提高数据查询效率。查询效率。查询效率。

【技术实现步骤摘要】
数据库哈希连接处理方法、装置、设备及存储介质


[0001]本专利技术涉及数据库
,尤其涉及一种数据库哈希连接处理方法、装置、设备及存储介质。

技术介绍

[0002]在硬件加速数据库的查询流程中,一般在执行哈希连接前,将数据库内表的键值做哈希运算后散列在空间大小有限的哈希表中,存储在硬件设备的外部存储器上。执行哈希连接时,以数据库外表所有行的键值做迭代,遍历读取哈希表进行哈希比较和键值比较,从而匹配出需要查询的数据。因此,在数据查询过程中,硬件设备需要频繁地从外部存储器读取数据,硬件读取大量长度不规则且存储空间不连续的内存块会耗费较大的时钟周期,从而严重影响硬件加速的效果,导致数据查询效率低。

技术实现思路

[0003]本专利技术提供一种数据库哈希连接处理方法、装置、设备及存储介质,用以解决现有技术中在执行哈希连接时硬件设备需要频繁从外部存储器读取数据,严重影响硬件加速效果,导致数据查询效率低的缺陷。
[0004]本专利技术提供一种数据库哈希连接处理方法,所述数据库设有第一查询通道和第二查询通道,所述第一查询通道中设有布隆过滤表;所述方法包括:
[0005]获取数据库的查询语句,以及所述查询语句对应的查询计划和数据库外表;
[0006]根据所述查询计划确定所述查询语句对应的目标查询通道;
[0007]若所述目标查询通道为所述第一查询通道,则基于所述数据库外表和所述布隆过滤表构建布隆过滤器;
[0008]基于所述布隆过滤器执行所述查询计划对应的哈希连接。/>[0009]根据本专利技术提供的一种数据库哈希连接处理方法,所述基于所述数据库外表和所述布隆过滤表构建布隆过滤器的步骤,包括:
[0010]获取所述数据库外表中任一行的目标连接键,并对所述目标连接键进行哈希运算,得到预设位数的哈希值;
[0011]对所述哈希值进行分段处理,得到所述哈希值对应的多个散列值;
[0012]基于所述数据库外表和所述布隆过滤表构建布隆过滤器。
[0013]根据本专利技术提供的一种数据库哈希连接处理方法,所述多个散列值至少包括第一散列值、第二散列值和第三散列值,所述对所述哈希值进行分段处理,得到所述哈希值对应的多个散列值的步骤,包括:
[0014]根据所述哈希值的位数对所述哈希值进行分段,将所述哈希值划分为高位值和低位值;
[0015]根据所述高位值确定第一散列值,根据所述低位值确定第二散列值;
[0016]按照预设规则对所述高位值和所述低位值进行组合运算,得到第三散列值;所述
第三散列值、所述第一散列值与所述第二散列值的位数均相同。
[0017]根据本专利技术提供的一种数据库哈希连接处理方法,所述基于所述布隆过滤器执行所述查询计划对应的哈希连接的步骤,包括:
[0018]将所述布隆过滤器的任一目标散列值映射到所述布隆过滤表的目标数组中,获取所述目标散列值在所述目标数组中对应的映射位的映射特征值;
[0019]其中,所述目标散列值为所述布隆过滤器的多个散列值中的任一散列值;所述目标数组为所述目标散列值对应的数组;所述映射特征值用于确定所述目标散列值在所述目标数组中对应的映射位是否被置位;
[0020]根据所述映射特征值对所述数据库的数据库内表进行过滤,并基于过滤后的数据库内表执行所述查询计划对应的哈希连接。
[0021]根据本专利技术提供的一种数据库哈希连接处理方法,所述根据所述查询计划确定所述查询语句对应的目标查询通道的步骤,包括:
[0022]获取所述数据库外表的外表元组数,以及数据库内表的内表元组数;
[0023]根据所述内表元组数和所述外表元组数,计算构建布隆过滤器所需的预估代价,以及基于所述布隆过滤器的预估收益;
[0024]根据所述预估收益和所述预估代价,确定所述查询语句对应的目标查询通道。
[0025]根据本专利技术提供的一种数据库哈希连接处理方法,所述根据所述预估收益和所述预估代价,确定所述查询语句对应的目标查询通道的步骤,包括:
[0026]计算所述预估代价与所述预估收益的比值;
[0027]根据所述比值确定所述查询语句对应的目标查询通道。
[0028]根据本专利技术提供的一种数据库哈希连接处理方法,所述数据库包括哈希节点和哈希连接节点,所述方法还包括:
[0029]获取所述数据库的数据库内表,调用所述哈希节点中预设的哈希函数,对所述数据库内表的任一目标行的连接键进行哈希运算,得到所述目标行的连接键对应的目标哈希值;
[0030]对所述目标哈希值进行分段处理,得到所述目标哈希值对应的多个散列值;
[0031]对所述多个散列值进行散列映射,构建所述数据库内表对应的哈希表;
[0032]将所述多个散列值分别映射到预设的布隆过滤器的不同数组中,构建所述数据库内表对应的布隆过滤表;
[0033]将所述哈希表和所述布隆过滤表保存至所述哈希连接点中,基于所述哈希表生成所述第二查询通道,基于所述布隆过滤表生成所述第一查询通道;所述哈希连接点用于执行所述查询计划对应的哈希连接流程。
[0034]本专利技术还提供一种数据库哈希连接处理装置,包括:
[0035]数据获取模块,用于获取数据库的查询语句,以及所述查询语句对应的查询计划和数据库外表;
[0036]通道选择模块,用于根据所述查询计划确定所述查询语句对应的目标查询通道;
[0037]过滤器构建模块,用于若所述目标查询通道为第一查询通道,则基于所述数据库外表和预设的布隆过滤表构建布隆过滤器;
[0038]哈希连接处理模块,用于基于所述布隆过滤器执行所述查询计划对应的哈希连
接。
[0039]本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据库哈希连接处理方法。
[0040]本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据库哈希连接处理方法。
[0041]本专利技术还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述数据库哈希连接处理方法。
[0042]本专利技术提供的数据库哈希连接处理方法、装置、设备及存储介质,通过获取数据库的查询语句,以及查询语句对应的查询计划和数据库外表;根据查询计划确定查询语句的目标查询通道;若所述目标查询通道为设有布隆过滤表的第一查询通道,则基于所述数据库外表和所述布隆过滤表构建布隆过滤器;基于布隆过滤器执行查询计划对应的哈希连接。通过自适应添加布隆过滤器执行哈希连接进行数据查询,可以在不影响计算资源的使用的前提下,在执行哈希连接时过滤掉不相关的外表行,减少哈希匹配的数据量,提高数据库的硬件加速效果,进而提高数据查询效率。
附图说明
[0043]为了更清楚地说明本专利技术或现有技术中的技术方案,下面将本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种数据库哈希连接处理方法,其特征在于,所述数据库设有第一查询通道和第二查询通道,所述第一查询通道中设有布隆过滤表;所述方法包括:获取数据库的查询语句,以及所述查询语句对应的查询计划和数据库外表;根据所述查询计划确定所述查询语句对应的目标查询通道;若所述目标查询通道为所述第一查询通道,则基于所述数据库外表和所述布隆过滤表构建布隆过滤器;基于所述布隆过滤器执行所述查询计划对应的哈希连接。2.根据权利要求1所述的数据库哈希连接处理方法,其特征在于,所述基于所述数据库外表和所述布隆过滤表构建布隆过滤器的步骤,包括:获取所述数据库外表中任一行的目标连接键,并对所述目标连接键进行哈希运算,得到预设位数的哈希值;对所述哈希值进行分段处理,得到所述哈希值对应的多个散列值;基于所述多个散列值和所述布隆过滤表构建布隆过滤器。3.根据权利要求2所述的数据库哈希连接处理方法,其特征在于,所述多个散列值至少包括第一散列值、第二散列值和第三散列值;所述对所述哈希值进行分段处理,得到所述哈希值对应的多个散列值的步骤,包括:根据所述哈希值的位数对所述哈希值进行分段,将所述哈希值划分为高位值和低位值;根据所述高位值确定第一散列值,根据所述低位值确定第二散列值;按照预设规则对所述高位值和所述低位值进行组合运算,得到第三散列值;所述第三散列值、所述第一散列值与所述第二散列值的位数均相同。4.根据权利要求2所述的数据库哈希连接处理方法,其特征在于,所述基于所述布隆过滤器执行所述查询计划对应的哈希连接的步骤,包括:将所述布隆过滤器的任一目标散列值映射到所述布隆过滤表的目标数组中,获取所述目标散列值在所述目标数组中对应的映射位的映射特征值;其中,所述目标散列值为所述布隆过滤器的多个散列值中的任一散列值;所述目标数组为所述目标散列值对应的数组;所述映射特征值用于确定所述目标散列值在所述目标数组中对应的映射位是否被置位;根据所述映射特征值对所述数据库的数据库内表进行过滤,并基于过滤后的数据库内表执行所述查询计划对应的哈希连接。5.根据权利要求1所述的数据库哈希连接处理方法,其特征在于,所述根据所述查询计划确定所述查询语句对应的目标查询通道的步骤,包括:获取所述数据库外...

【专利技术属性】
技术研发人员:蒿杰吕志丰高韵沣彭琳陈韶伟
申请(专利权)人:芯跳科技广州有限公司
类型:发明
国别省市:

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

1