一种支持多个计算引擎的分布式查询计划生成方法及装置制造方法及图纸

技术编号:37784646 阅读:25 留言:0更新日期:2023-06-09 09:15
本申请提供的一种支持多个计算引擎的分布式查询计划生成方法及装置,涉及分布式数据查询领域,该方法包括:在一个数据库中集成多种计算引擎;生成不同的物理计划,对物理计划的代价进行评估,在生成物理计划过程中,包括:为不同的计算引擎支持不同的代价模型,生成所有计算引擎都会支持的物理计划和根据不同的计算引擎能力,为不同的计算引擎生成该引擎特有的物理计划;选择最优计划的同时确定执行该计划的最优计算引擎。本申请通过生成不同的物理计划化进行代价评估,相对以现有物理计划进行代价评估选出的物理计划,将更优越。将更优越。将更优越。

【技术实现步骤摘要】
一种支持多个计算引擎的分布式查询计划生成方法及装置


[0001]本申请涉及分布式数据查询领域,尤其涉及一种支持多个计算引擎的分布式查询计划生成方法。本申请还涉及一种支持多个计算引擎的分布式查询计划生成装置。

技术介绍

[0002]随着数据库领域的技术发展,出现了各种具有不同特点的计算引擎,有采用批量计算方法的引擎,有采用火山模型的引擎,有的采用早期物化,有的采用晚期物化。不同的计算引擎有不同的特点,例如:晚期物化的批量计算引擎,计算时先只物化过滤条件或关联条件涉及到的列,过滤后剩余的记录才会根据需要物化关联条件涉及到的列,关联时记录结果集对应表数据的行号,在得到最终结果集时再根据行号对其它列进行物化,避免物化过多无用的数据。而火山模型通常使用早期物化,单表过滤条件筛选后的所有列进行物化,虽然可能会物化一些最终会被过滤掉的数据,但是最后产生结果集的时候,不需要再进行物化。
[0003]不同计算引擎实现的算子也具有不同的代价模型,例如Scan算子,使用向量指令SIMD的引擎和不使用向量指令的引擎在对同样数据量进行计算时的代价不同。不同计算引擎占用的CPU和内存等资源也不同,有些引擎也会支持其它引擎不支持的物理计划。
[0004]一般的查询优化器在接收到SQL之后,会进行优化改写,之后得到优化后的逻辑计划,为了得到最优或较优的物理计划,通常会通过贪心算法,动态规划等对不同的物理计划进行代价评估并选择。这种方法只能在现有的物理计划中选择,无法将最优的物理计划评估出来。

技术实现思路

[0005]本申请的目的在于克服现有技术中只能在现有的物理计划中选择,无法将最优的物理计划评估出来的技术问题,提供一种支持多个计算引擎的分布式查询计划生成方法。本申请还涉及一种支持多个计算引擎的分布式查询计划生成装置。
[0006]本申请提供的一种支持多个计算引擎的分布式查询计划生成方法,包括:
[0007]在一个数据库中集成多种计算引擎;
[0008]生成不同的物理计划,对物理计划的代价进行评估,在生成物理计划过程中,包括:为不同的计算引擎支持不同的代价模型,生成所有计算引擎都会支持的物理计划和根据不同的计算引擎能力,为不同的计算引擎生成该引擎特有的物理计划;
[0009]选择最优计划的同时确定执行该计划的最优计算引擎。
[0010]可选的,所述最优计算引擎,包括:
[0011]根据系统当前的资源情况,用户查询语句特点选择相对最优的计算引擎。
[0012]可选的,还包括:
[0013]根据待处理的数据量,代价模型,执行计划来评估每种执行计划以及使用不同的引擎的代价,选择代价最小的计划。
[0014]可选的,所述计算引擎包括:批量晚期物化计算引擎和向量化火山模型。
[0015]本申请还提供一种支持多个计算引擎的分布式查询计划生成装置,包括:
[0016]集成模块,用于在一个数据库中集成多种计算引擎;
[0017]评估模块,用于生成不同的物理计划,对物理计划的代价进行评估,在生成物理计划过程中,包括:为不同的计算引擎支持不同的代价模型,生成所有计算引擎都会支持的物理计划和根据不同的计算引擎能力,为不同的计算引擎生成该引擎特有的物理计划;
[0018]选择模块,用于选择最优计划的同时确定执行该计划的最优计算引擎。
[0019]可选的,所述评估模块,包括:
[0020]计算引擎评估单元,用于根据系统当前的资源情况,用户查询语句特点选择相对最优的计算引擎。
[0021]可选的,所述评估模块还包括:
[0022]计划评估单元,用于根据待处理的数据量,代价模型,执行计划来评估每种执行计划以及使用不同的引擎的代价,选择代价最小的计划。
[0023]可选的,所述计算引擎包括:批量晚期物化计算引擎和向量化火山模型。
[0024]本申请的优点和有益效果:
[0025]本申请提供的一种支持多个计算引擎的分布式查询计划生成方法,包括:在一个数据库中集成多种计算引擎;生成不同的物理计划,对物理计划的代价进行评估,在生成物理计划过程中,包括:为不同的计算引擎支持不同的代价模型,生成所有计算引擎都会支持的物理计划和根据不同的计算引擎能力,为不同的计算引擎生成该引擎特有的物理计划;选择最优计划的同时确定执行该计划的最优计算引擎。本申请通过生成不同的物理计划化进行代价评估,相对以现有物理计划进行代价评估选出的物理计划,将更优越。
附图说明
[0026]图1是本申请中支持多个计算引擎的分布式查询计划生成流程示意图。
[0027]图2是本申请中支持多个计算引擎的分布式查询计划生成器示意图。
[0028]图3本申请中物理代价评估示意图。
[0029]图4是本申请中支持多个计算引擎的分布式查询计划生成装置示意图。
[0030]图5是本申请中确定执行该计划的最优计算引擎示意图。
具体实施方式
[0031]下面结合附图和具体实施例对本申请作进一步说明,以使本领域的技术人员可以更好地理解本申请并能予以实施。
[0032]以下内容均是为了详细说明本申请要保护的技术方案所提供的具体实施过程的示例,但是本申请还可以采用不同于此的描述的其他方式实施,本领域技术人员可以在本申请构思的指引下,采用不同的技术手段实现本申请,因此本申请不受下面具体实施例的限制。
[0033]本申请提供的一种支持多个计算引擎的分布式查询计划生成方法,包括:在一个数据库中集成多种计算引擎;生成不同的物理计划,对物理计划的代价进行评估,在生成物理计划过程中,包括:为不同的计算引擎支持不同的代价模型,生成所有计算引擎都会支持
的物理计划和根据不同的计算引擎能力,为不同的计算引擎生成该引擎特有的物理计划;选择最优计划的同时确定执行该计划的最优计算引擎。本申请通过生成不同的物理计划化进行代价评估,相对以现有物理计划进行代价评估选出的物理计划,将更优越。
[0034]本申请中,分布式分析型数据库在进行数据分析时,需要先对用户的查询语句进行优化改写,然后根据改写后的语句生成各种物理计划,并根据表的统计信息,评估每种物理计划的执行代价,然后选择代价最小的物理计划交给执行器执行。
[0035]请参照图1所示,S101在一个数据库中集成多种计算引擎。
[0036]不同计算引擎实现的算子也具有不同的代价模型,例如Scan算子,使用向量指令SIMD的引擎和不使用向量指令的引擎在对同样数据量进行计算时的代价不同。不同计算引擎占用的CPU和内存等资源也不同,有些引擎也会支持其它引擎不支持的物理计划。
[0037]本申请在一个数据库中集成多种计算引擎,并能根据系统当前的资源情况,用户查询语句特点自动选择合适的计算引擎执行,既能充分利用资源,又能提高查询性能。
[0038]请参照图1所示,S102生成不同的物理计划,对物理计划的代价进行评估,在生成物理计划过程中,包括:为不同本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种支持多个计算引擎的分布式查询计划生成方法,其特征在于,包括:在一个数据库中集成多种计算引擎;生成不同的物理计划,对物理计划的代价进行评估,在生成物理计划过程中,包括:为不同的计算引擎支持不同的代价模型,生成所有计算引擎都会支持的物理计划和根据不同的计算引擎能力,为不同的计算引擎生成该引擎特有的物理计划;选择最优计划的同时确定执行该计划的最优计算引擎。2.根据权利要求1所述支持多个计算引擎的分布式查询计划生成方法,其特征在于,所述最优计算引擎,包括:根据系统当前的资源情况,用户查询语句特点选择最优的计算引擎。3.根据权利要求1所述支持多个计算引擎的分布式查询计划生成方法,其特征在于,还包括:根据待处理的数据量,代价模型,执行计划来评估每种执行计划以及使用不同的引擎的代价,选择代价最小的计划。4.根据权利要求1所述支持多个计算引擎的分布式查询计划生成方法,其特征在于,所述计算引擎包括:批量晚期物化计算引擎和向量化火山模型。5.一种支持多个计算引擎的分布式查询计划生成装置,其...

【专利技术属性】
技术研发人员:李晨光李宇豪刘梦真
申请(专利权)人:天津南大通用数据技术股份有限公司
类型:发明
国别省市:

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

1