[发明专利]一种并行化关系表连接方法及模型在审
申请号: | 202210930722.1 | 申请日: | 2022-08-04 |
公开(公告)号: | CN115374112A | 公开(公告)日: | 2022-11-22 |
发明(设计)人: | 武永卫;姜进磊;陈康;马致远 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/242 |
代理公司: | 北京知联天下知识产权代理事务所(普通合伙) 11594 | 代理人: | 孔凡梅 |
地址: | 100084*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 并行 关系 连接 方法 模型 | ||
本发明属于数据库技术领域,特别涉及一种并行化关系表连接方法及模型,用于解决现有技术并行处理中存储消耗大,线程数量多且占资源多,难以提升处理效率的问题。本发明通过多线程技术提升了关系表连接效率。通过将字段交集的可能结果连续存放,便于多线程独立找到计算任务,与传统连接方法在GPU上计算速度对比,POJ方法的加速效果可以达到22倍以上。本发明使用列存储技术和缓冲区复用技术,尽量避免POJ方法运行时分配额外空间。POJ方法空间消耗量最少仅为传统连接方法的13.8%。
技术领域
本发明涉及数据库技术领域,特别涉及一种并行化关系表连接方法及模型。
背景技术
连接是结构化查询语言(SQL)里结合多个关系表的运算。连接运算可以灵活表达关系表之间的各种关联信息,因此广泛应用于业务数据查询和商业智能等领域。关系表由有相同字段的元组构成,元组表示一条数据记录。例如一个表示班级内学生信息的关系表,它的字段有学号、姓名、年龄三种,那么关系表内每个元组都分别表示一个学生的信息,并且这些信息记录了该学生学号、姓名、年龄。
现有技术中,传统的连接方法存在效率低下的问题,连接方法尚未有高效的并行计算方案。并行计算连接方法最大挑战在于线程的任务分配。特别是,当连接的关系表数量很多时,多次递归计算字段后,需要的线程数量将快速增长,此时消耗的存储直线上升。即使使用线程池技术减少计算需要的线程总数,因为线程池需要线性地为每个线程分配计算任务,这导致线程池成为了方法的性能瓶颈,限制了连接的效率。
综上所述,针对多张关系表多字段同时连接时,现有技术并行处理中存储消耗大,线程数量多且占资源多,难以提升处理效率。
发明内容
针对上述问题,本发明提供一种并行化关系表连接方法及模型,用于解决现有技术多张关系表多字段同时连接时,并行处理中存储消耗大,线程数量多且占资源多,难以提升处理效率的问题,同时解决连接方法难以并行计算的问题。
一种并行化关系表连接方法,所述方法包括:
输入待连接的关系表集合的集合;
为集合中每个关系表集合选取元组数量最少的关系表RE,为关系表RE中的每个元组分配一个线程,在每个线程中连接关系表集合中的待连接字段,得到连接好的关系表集合的集合,并将所述连接好的集合作为连接下一个字段的输入;
重复以上步骤直至完成全部字段连接,输出连接好的关系表集合。
进一步的,输入待连接的关系表集合的集合,包括:所述待连接的关系表集合为,其中为关系表集合E0中的第一张关系表,为关系表集合E0中的第n张关系表,n为正整数;
所述关系表集合E0中参与连接的字段排序为,其中Am为关系表集合E0中的第m个字段,m为正整数;
关系表集合E0中每张关系表中的元组均按V中m个字段的任意组合顺序和元组数值递增排序。
进一步的,关系表集合E0中每张关系表中的元组均按V中m个字段的任意组合顺序和元组数值递增排序,包括:
所述关系表中的元组按V中字段顺序排序,字段相同时按元组数值递增排序;V内字段的顺序没有指定,使用任意顺序均可;
具体排序时,首先按字段A1的取值递增排序;如果存在两个元组的A1取值相同,按两个元组A2的取值递增排序;此时若关系表中的元组不含A2,则按两个元组A3的取值递增排序;以此类推,完成关系表中的元组的排序。
进一步的,在每个线程中连接关系表集合中的待连接字段,包括:先使用待连接的关系表集合{E0}连接字段A1得到多个关系表集合,其中表示第一次连接的第二个关系表集合;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210930722.1/2.html,转载请声明来源钻瓜专利网。