[发明专利]一种采用两级哈希表结构实现并行连接的方法及系统有效
申请号: | 202010156190.1 | 申请日: | 2020-03-09 |
公开(公告)号: | CN111382158B | 公开(公告)日: | 2023-04-28 |
发明(设计)人: | 赵董兴 | 申请(专利权)人: | 北京东方金信科技股份有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F9/50;G06F16/28 |
代理公司: | 北京纪凯知识产权代理有限公司 11245 | 代理人: | 王胥慧 |
地址: | 100080 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 采用 两级 哈希表 结构 实现 并行 连接 方法 系统 | ||
本发明涉及一种采用两级哈希表结构实现并行连接的方法及系统,其特征在于,包括以下内容:1)创建哈希表,并将哈希表根据第一待连接表内数据的数据量分为若干个子哈希表;2)将第一待连接表内的数据按照哈希函数并行分布至对应子哈希表中;3)对分布数据后的哈希表和各子哈希表均对外设置结构相同的匹配接口;4)哈希表根据第二待连接表中需匹配的数据,通过匹配接口按照哈希函数进行并行搜索,确定对应的子哈希表,并匹配得到关联的输出行;5)选出并行分布和并行连接过程中产生的一组溢出文件,将创建表溢出文件作为第一连接表,匹配表溢出文件作为第二连接表进入步骤1)直到处理完成所有溢出文件,本发明可广泛用于关系型数据库领域中。
技术领域
本发明是关于一种采用两级哈希表结构实现并行连接的方法及系统,属于关系型数据库领域。
背景技术
Join(连接)算子是关系型数据库系统的重要操作,如果要统计两个表相关联的信息,就需要用到该算子,Hash Join(利用哈希表进行连接的方法)适用于两列或多列的等值条件,一般分为创建哈希表和匹配输出两个阶段。
存在内存中的哈希表在插入阶段需要加锁,以防止并发修改。较传统的连接算法均采用串行单CPU执行,这在小数据量场景是没有问题的,会选择条数小的表建立哈希表,性能不会有问题。但是,在大数据分析场景,两个做连接的表可能均较大,甚至达到亿条级别,串行创建哈希表会成为整个数据库系统的瓶颈,极大地影响业务的响应时间。同时,由于现今大数据场景数据量越来越大,可能会面对几十亿甚至上百亿的数据连接操作,且由于计算机的内存有限,将数据全部放入至哈希表是无法实现的,哈希表过大也影响数据查找的性能。
发明内容
针对上述问题,本发明的目的是提供一种能够应用于大数据分析场景且响应时间短的采用两级哈希表结构实现并行连接的方法及系统。
为实现上述目的,本发明采取以下技术方案:一种采用两级哈希表结构实现并行连接的方法,包括以下内容:1)创建哈希表,并将哈希表根据第一待连接表内数据的数据量分为若干个子哈希表;2)将第一待连接表内的数据按照哈希函数并行分布至创建的对应子哈希表中;3)对分布数据后的哈希表和其内的各子哈希表均对外设置结构相同的匹配接口,且对分布数据后的哈希表不设置写操作;4)哈希表根据第二待连接表中需匹配的数据,通过匹配接口按照哈希函数进行并行搜索,确定对应的子哈希表,并在该子哈希表中进行查找,匹配得到关联的输出行,实现第一待连接表和第二待连接表的并行连接;5)选出并行分布和并行连接过程中产生的一组溢出文件,将该溢出文件中的创建表溢出文件作为第一连接表,匹配表溢出文件作为第二连接表,进入步骤1),直到处理完成所有的溢出文件。
进一步地,所述步骤2)的具体过程为:2.1)设置N个线程,每一线程均对应一个CPU,每一线程均设置有与子哈希表数量相同的用于缓存对应数据的M个缓存;2.2)将需要分布至子哈希表的第一待连接表内的数据按照哈希函数放至对应缓存;2.3)当任一缓存的数据积累到预设的数量时,将该缓存加入至对应线程的缓存队列中;2.4)各线程分别从对应的缓存队列中取出积累后的缓存,并将取出的缓存并行插入至对应的子哈希表中;2.5)当哈希表占用的内存超过预先设定的阈值时,确定哈希表中占用内存最多的子哈希表,并将该子哈希表中的数据溢出至磁盘内生成一个该子哈希表对应的创建表溢出文件,并释放该子哈希表占用的内存;2.6)重复所述步骤2.5)直至处理完成第一待连接表内的所有数据。
进一步地,所述步骤2.2)中缓存进行数据缓存的过程是并行的。
进一步地,所述步骤2.4)中最多M个线程分别从对应的缓存队列中取出积累数据后的缓存。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京东方金信科技股份有限公司,未经北京东方金信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010156190.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:影像数据处理方法及第一电子设备
- 下一篇:一种有机—无机核桃专用复混肥