[发明专利]查询方法和装置有效
申请号: | 202210856875.6 | 申请日: | 2022-07-21 |
公开(公告)号: | CN114969110B | 公开(公告)日: | 2022-10-21 |
发明(设计)人: | 孙建华;冯遵宝;张广舟;李飞飞 | 申请(专利权)人: | 阿里巴巴(中国)有限公司 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453;G06F16/2455;G06F16/27 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 刘祥景 |
地址: | 310012 浙江省杭州市余杭*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 查询 方法 装置 | ||
本申请公开了查询方法和装置。其中所述方法通过将共享存储架构的分区表转换为无共享架构的分布表,利用分布表的群集感知(cluster aware)特点,使得在横向上多个并行查询进程共同扫描一张分区父表,在纵向上多个并行查询进程扫描各自负责的分区子表,实现对分区表混合扫描(Hybrid Scan)的方式,基于此使得并行执行引擎从底层同时支持分区表的各项优化。这样,既可以消除分区表的多个并行查询进程的数据重分布开销,因此可以有效提升查询性能;又支持不同分区数的分区表连接加速,因此可以有效提升分区表加速查询的鲁棒性;再者,由于从底层同时支持分区表的各项优化,因此还可以有效提升查询加速方式的可扩展性。
技术领域
本申请涉及数据库技术领域,具体涉及查询方法和装置,电子设备,以及数据库系统。
背景技术
随着5G、分布式技术、云计算技术的不断发展,数据库云化、数据库云原生架构已成为趋势。云原生数据库的架构通过计算、存储分离(以下简称存算分离),采用共享存储的方式,支持分布式跨机并行执行,可实现资源价值的最大化。
一方面,数据库通常采用表分区技术,将一张大表(分区表,分区父表)按照约定逻辑拆分成若干个小表(分区子表),以在特定的SQL操作中减少数据读写的总量以缩减响应时间。同时,数据库还会通过分区表查询优化技术来加速分区表的查询。另一方面,数据库在进行表查询处理时,通常是先进行扫描表数据,再基于扫描结果生成查询结果。为了实现对数据扫描的并行加速,数据库通常会采用分布式跨机并行执行技术(ParallelExecution, PX),使用多个工作进程(并行查询进程,worker)执行一个 SQL查询。因此,存储计算分离架构下的并行执行引擎需要支持上述分区表查询优化方法。目前,一种典型的实现并行执行引擎支持分区表查询优化方法的方式是混合的智能并行连接(HybridPartition-Wise Join)。该实现方式支持全分区表的查询加速的各种方法,支持多个worker共同扫描同一对分区子表,且无需所有节点进行数据重分布。
然而,在实现本发明过程中,发明人发现上述方案至少存在如下问题:1)限制进行连接查询处理的成对分区表必须具有相同的分区数,但在实际应用中存在大量分区数并不相同的成对分区表,无法对该类分区表进行连接查询加速处理;2)针对分区表的多个并行查询进程需要进行数据重分布,系统开销较大。
发明内容
本申请提供查询方法,以解决现有技术存在的存算分离架构下的并行执行引擎不支持对不同分区数的成对分区表进行连接加速、及需要进行数据重分布的问题。本申请另外提供查询装置,电子设备,以及数据库系统。
本申请提供一种查询方法,包括:
针对目标查询语句相关的共享存储的目标分区表,构建分区子表与计算节点之间的第一对应关系、分区子表与并行查询进程之间的第二对应关系;
根据所述第一对应关系,通过计算节点上的并行查询进程扫描目标分区表;
根据所述第二对应关系,通过不同的查询进程扫描不同的分区子表;
根据各进程的扫描结果,获取与目标查询语句对应的查询结果。
可选的,所述目标查询语句包括针对第一分区表和第二分区表进行连接查询的语句,所述目标分区表包括第一分区表和第二分区表,第一分区表与第二分区表的分区数不同。
可选的,还包括:
获取目标分区表的分区方式信息;
根据所述分区方式信息,判断是否执行所述方法。
可选的,所述目标分区表包括哈希分区表;
所述方法还包括:
获取计算节点的第一进程数阈值;
所述获取目标分区表的分区方式信息,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴(中国)有限公司,未经阿里巴巴(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210856875.6/2.html,转载请声明来源钻瓜专利网。