System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 哈希连接方法、装置、电子设备及存储介质制造方法及图纸_技高网

哈希连接方法、装置、电子设备及存储介质制造方法及图纸

技术编号:40965639 阅读:4 留言:0更新日期:2024-04-18 20:45
本发明专利技术提供一种哈希连接方法、装置、电子设备及存储介质,涉及数据库技术领域,该方法包括:获取所有数据库节点中的第一元组数据,其中,第一元组数据为第一数据子表的元组数据;基于第一预设哈希函数和第二预设哈希函数,计算得到第一元组数据对应的第一哈希值组,并根据各个第一哈希值组,构建各个第一数据子表对应的二维哈希表;基于第一预设哈希函数和第二预设哈希函数,计算得到第二元组数据对应的第二哈希值组,并根据第二哈希值组和二维哈希表,获取对应的哈希连接数据,其中,第二元组数据为第二数据子表的元组数据;根据所有哈希连接数据,得到哈希连接结果。本发明专利技术降低哈希冲突概率,提高了分布式数据库性能。

【技术实现步骤摘要】

本专利技术涉及数据库,尤其涉及一种哈希连接方法、装置、电子设备及存储介质


技术介绍

1、连接是数据库表之间的常用操作,通过把多个表之间某列相等的元组提取出来组成新的表,从而实现数据库的查询操作。

2、哈希连接是数据库中最常用的连接算法,主要分为建立阶段和探测阶段,在相关技术中,对于分布式数据库的哈希连接过程,采用哈希函数进行哈希计算,执行哈希连接的各节点之间主要通过元组的方式进行数据传递,数据传递到连接节点后进行哈希连接,最终进行合并汇总。

3、然而,在相关技术中,对于某些数据库应用,存在哈希冲突风险较大的情况,同时,通过元组进行数据传递的方式会导致哈希连接后的元组再次组成哈希表,严重影响了分布式数据库的性能。因此,现在亟需一种哈希连接方法、装置、电子设备及存储介质来解决上述问题。


技术实现思路

1、针对现有技术存在的问题,本专利技术提供一种哈希连接方法、装置、电子设备及存储介质。

2、本专利技术提供一种哈希连接方法,包括:

3、获取所有数据库节点中的第一元组数据,其中,所述第一元组数据为所述数据库节点中第一数据子表的元组数据;

4、基于第一预设哈希函数和第二预设哈希函数,计算得到各个所述数据库节点中所述第一元组数据对应的第一哈希值组,并根据所述第一哈希值组,构建所述第一数据子表对应的二维哈希表,其中,所述二维哈希表包括行索引和列索引;

5、基于所述第一预设哈希函数和所述第二预设哈希函数,计算得到各个所述数据库节点中第二元组数据对应的第二哈希值组,并根据所述第二哈希值组和所述二维哈希表,获取对应的哈希连接数据,其中,所述第二元组数据为所述数据库节点中第二数据子表的元组数据;

6、根据所有所述哈希连接数据,得到哈希连接结果。

7、根据本专利技术提供的一种哈希连接方法,在所述获取所有数据库节点中的第一元组数据之前,所述方法还包括:

8、基于所述二维哈希表的行索引对应的最大哈希值和数据库节点总数量,根据各个所述数据库节点的预设排序结果,确定各个所述数据库节点中所述二维哈希表的行索引对应的行哈希值范围。

9、根据本专利技术提供的一种哈希连接方法,所述方法还包括:

10、根据各个所述数据库节点的网际互连协议地址信息,对所有所述数据库节点进行排序,得到各个所述数据库节点的所述预设排序结果。

11、根据本专利技术提供的一种哈希连接方法,在所述基于第一预设哈希函数和第二预设哈希函数,计算得到各个所述数据库节点中所述第一元组数据对应的第一哈希值组之前,所述方法还包括:

12、从多个所述数据库节点中确定预设数据库节点;

13、获取所述预设数据库节点中的多个随机元组数据;

14、基于预设哈希函数备选库中的各个备选哈希函数,通过所述预设数据库节点对所有所述随机元组数据进行哈希计算,得到各个所述备选哈希函数对应的备选哈希函数计算结果集合和哈希计算处理时长;

15、根据所述备选哈希函数计算结果集合和所述哈希计算处理时长,确定所述第一预设哈希函数和所述第二预设哈希函数。

16、根据本专利技术提供的一种哈希连接方法,所述根据所述备选哈希函数计算结果集合和所述哈希计算处理时长,确定所述第一预设哈希函数和所述第二预设哈希函数,包括:

17、根据所述备选哈希函数计算结果集合,得到所述备选哈希函数对应的哈希离散度;

18、基于预设哈希函数判断阈值,根据所述哈希离散度和所述哈希计算处理时长,从多个所述备选哈希函数中确定所述第一预设哈希函数和所述第二预设哈希函数。

19、根据本专利技术提供的一种哈希连接方法,所述根据所述备选哈希函数计算结果集合,得到所述备选哈希函数对应的哈希离散度,包括:

20、基于哈希离散度公式,根据所述备选哈希函数计算结果集合中各个备选哈希函数计算结果,计算所述备选哈希函数对应的哈希离散度,所述哈希离散度公式为:

21、;

22、其中,表示哈希离散度,表示多个所述随机元组数据中的第个所述随机元组数据,表示多个所述随机元组数据中的第个所述随机元组数据,表示总共有个所述随机元组数据,表示所述备选哈希函数对应的备选哈希函数计算结果集合中第个所述随机元组数据对应的备选哈希函数计算结果,表示所述备选哈希函数对应的备选哈希函数计算结果集合中第个所述随机元组数据对应的备选哈希函数计算结果,表示所述二维哈希表中的行索引对应的最大哈希值,表示所述二维哈希表中的列索引对应的最大哈希值。

23、根据本专利技术提供的一种哈希连接方法,所述从多个所述数据库节点中确定预设数据库节点,包括:

24、获取各个所述数据库节点的实时运行状态数据;

25、将所述实时运行状态数据满足预设运行状态数据的所述数据库节点确定为所述预设数据库节点。

26、根据本专利技术提供的一种哈希连接方法,所述方法还包括:

27、基于预设哈希函数备选库中的各个备选哈希函数,通过预设加速硬件单元,对所有所述随机元组数据进行哈希计算加速。

28、根据本专利技术提供的一种哈希连接方法,所述预设哈希函数判断阈值包括哈希离散度阈值和哈希计算时长阈值;

29、所述基于预设哈希函数判断阈值,根据所述哈希离散度和所述哈希计算处理时长,从多个所述备选哈希函数中确定所述第一预设哈希函数和所述第二预设哈希函数,包括:

30、将所述哈希离散度大于所述哈希离散度阈值,且所述哈希计算处理时长小于所述哈希计算时长阈值的所述备选哈希函数作为待定哈希函数;

31、在确定所述待定哈希函数的数量至少为两个时,根据所述哈希离散度,从多个所述待定哈希函数中获取所述第一预设哈希函数和所述第二预设哈希函数。

32、根据本专利技术提供的一种哈希连接方法,所述根据所述哈希离散度,从多个所述待定哈希函数中获取所述第一预设哈希函数和所述第二预设哈希函数,包括:

33、基于各个所述待定哈希函数对应的所述哈希离散度,按照从大到小的顺序对各个所述待定哈希函数进行排序,得到哈希离散度排序结果;

34、根据所述哈希离散度排序结果,将第一排序的所述哈希离散度对应的所述待定哈希函数确定为所述第一预设哈希函数,将第二排序的所述哈希离散度对应的所述待定哈希函数确定为所述第二预设哈希函数。

35、根据本专利技术提供的一种哈希连接方法,所述基于第一预设哈希函数和第二预设哈希函数,计算得到各个所述数据库节点中所述第一元组数据对应的第一哈希值组,包括:

36、基于所述第一预设哈希函数,对所述第一元组数据进行哈希计算,得到第一行索引哈希值;

37、基于所述第二预设哈希函数,对所述第一元组数据进行哈希计算,得到第一列索引哈希值;

38、将所述第一行索引哈希值和所述第一列索引哈希值作为所述第一元组数据对应的所述第一哈希值组。

39、根据本专利技术提供的一种哈本文档来自技高网...

【技术保护点】

1.一种哈希连接方法,其特征在于,包括:

2.根据权利要求1所述的哈希连接方法,其特征在于,在所述获取所有数据库节点中的第一元组数据之前,所述方法还包括:

3.根据权利要求2所述的哈希连接方法,其特征在于,所述方法还包括:

4.根据权利要求1所述的哈希连接方法,其特征在于,在所述基于第一预设哈希函数和第二预设哈希函数,计算得到各个所述数据库节点中所述第一元组数据对应的第一哈希值组之前,所述方法还包括:

5.根据权利要求4所述的哈希连接方法,其特征在于,所述根据所述备选哈希函数计算结果集合和所述哈希计算处理时长,确定所述第一预设哈希函数和所述第二预设哈希函数,包括:

6.根据权利要求5所述的哈希连接方法,其特征在于,所述根据所述备选哈希函数计算结果集合,得到所述备选哈希函数对应的哈希离散度,包括:

7.根据权利要求5所述的哈希连接方法,其特征在于,所述从多个所述数据库节点中确定预设数据库节点,包括:

8.根据权利要求5所述的哈希连接方法,其特征在于,所述方法还包括:

9.根据权利要求5所述的哈希连接方法,其特征在于,所述预设哈希函数判断阈值包括哈希离散度阈值和哈希计算时长阈值;

10.根据权利要求9所述的哈希连接方法,其特征在于,所述根据所述哈希离散度,从多个所述待定哈希函数中获取所述第一预设哈希函数和所述第二预设哈希函数,包括:

11.根据权利要求2所述的哈希连接方法,其特征在于,所述基于第一预设哈希函数和第二预设哈希函数,计算得到各个所述数据库节点中所述第一元组数据对应的第一哈希值组,包括:

12.根据权利要求11所述的哈希连接方法,其特征在于,所述根据所述第一哈希值组,构建所述第一数据子表对应的二维哈希表,包括:

13.根据权利要求12所述的哈希连接方法,其特征在于,所述方法还包括:

14.根据权利要求13所述的哈希连接方法,其特征在于,各个所述数据库节点中的所述哈希表写访问进程占用一个中央处理器核心。

15.根据权利要求13所述的哈希连接方法,其特征在于,所述方法还包括:

16.根据权利要求13所述的哈希连接方法,其特征在于,所述基于所述第一预设哈希函数和所述第二预设哈希函数,计算得到各个所述数据库节点中第二元组数据对应的第二哈希值组;

17.根据权利要求16所述的哈希连接方法,其特征在于,所述根据所述第二哈希值组和所述二维哈希表,获取对应的哈希连接数据,包括:

18.根据权利要求17所述的哈希连接方法,其特征在于,所述将所有所述数据库节点中的所述哈希连接表进行合并,得到所述哈希连接结果,包括:

19.根据权利要求1至18任一项所述的哈希连接方法,其特征在于,各个所述数据库节点之间通过远程直接内存访问传输协议进行通信连接。

20.一种哈希连接装置,其特征在于,包括:

21.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至19任一项所述哈希连接方法。

22.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至19任一项所述哈希连接方法。

...

【技术特征摘要】

1.一种哈希连接方法,其特征在于,包括:

2.根据权利要求1所述的哈希连接方法,其特征在于,在所述获取所有数据库节点中的第一元组数据之前,所述方法还包括:

3.根据权利要求2所述的哈希连接方法,其特征在于,所述方法还包括:

4.根据权利要求1所述的哈希连接方法,其特征在于,在所述基于第一预设哈希函数和第二预设哈希函数,计算得到各个所述数据库节点中所述第一元组数据对应的第一哈希值组之前,所述方法还包括:

5.根据权利要求4所述的哈希连接方法,其特征在于,所述根据所述备选哈希函数计算结果集合和所述哈希计算处理时长,确定所述第一预设哈希函数和所述第二预设哈希函数,包括:

6.根据权利要求5所述的哈希连接方法,其特征在于,所述根据所述备选哈希函数计算结果集合,得到所述备选哈希函数对应的哈希离散度,包括:

7.根据权利要求5所述的哈希连接方法,其特征在于,所述从多个所述数据库节点中确定预设数据库节点,包括:

8.根据权利要求5所述的哈希连接方法,其特征在于,所述方法还包括:

9.根据权利要求5所述的哈希连接方法,其特征在于,所述预设哈希函数判断阈值包括哈希离散度阈值和哈希计算时长阈值;

10.根据权利要求9所述的哈希连接方法,其特征在于,所述根据所述哈希离散度,从多个所述待定哈希函数中获取所述第一预设哈希函数和所述第二预设哈希函数,包括:

11.根据权利要求2所述的哈希连接方法,其特征在于,所述基于第一预设哈希函数和第二预设哈希函数,计算得到各个所述数据库节点中所述第一元组数据对应的第一哈希值组,包括:

...

【专利技术属性】
技术研发人员:谢志勇李仁刚张闯王敏
申请(专利权)人:苏州元脑智能科技有限公司
类型:发明
国别省市:

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

1