计算引擎选择方法、装置及存储介质和电子设备制造方法及图纸

技术编号:32478698 阅读:33 留言:0更新日期:2022-03-02 09:41
本发明专利技术实施例提出计算引擎选择方法、装置及存储介质和电子设备。方法包括:获取待执行的SQL查询语句的SQL特征;获取SQL查询语句所要查询的表的数据特征;获取各计算引擎的状态特征;针对每个计算引擎,分别生成一个特征向量;将每个特征向量分别输入到资源消耗预测模型和耗时预测模型中进行计算,分别得到每个计算引擎执行SQL查询语句的预测资源消耗和预测耗时;根据每个计算引擎执行SQL查询语句的预测资源消耗和预测耗时,计算每个计算引擎执行所述SQL查询语句的预测代价;根据每个计算引擎执行SQL查询语句的预测代价,选择执行SQL查询语句的计算引擎。本发明专利技术实施例能够选择出执行SQL查询语句的性能最优的计算引擎。行SQL查询语句的性能最优的计算引擎。行SQL查询语句的性能最优的计算引擎。

【技术实现步骤摘要】
计算引擎选择方法、装置及存储介质和电子设备


[0001]本专利技术涉及大数据
,尤其涉及计算引擎选择方法、装置及可读存储介质和电子设备。

技术介绍

[0002]SQL(Structured Query Language,结构化查询语言)是一种高级的非过程化编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
[0003]查询调度是指将使用SQL编写的查询语句调度到大数据平台中合适的计算引擎中执行的过程,该调度过程会根据具体的查询特征和引擎的状态信息来进行。
[0004]公开号为CN110807145A的专利申请公开了一种查询引擎获取方法,该方法先获取SQL语句的特征,然后根据特征获取多个引擎中每个引擎执行包含该特征的查询语句的耗时的权重,最后根据权重大小选择引擎来执行SQL查询。
[0005]这种方法只是简单地对SQL特征进行提取,然后根据各种计算引擎对包含每种特征的SQL语句的查询的固有表现来选取计算引擎,由于仅仅考虑到SQL特征,因此并不能选出性能最优的计算引擎。

技术实现思路

[0006]本专利技术实施例提出计算引擎选择方法、装置及可读存储介质和电子设备,以选择出执行SQL查询语句的性能最优的计算引擎。
[0007]本专利技术实施例的技术方案是这样实现的:
[0008]一种计算引擎选择方法,该方法包括:
[0009]获取待执行的结构化查询语言SQL查询语句的SQL特征;
[0010]获取所述SQL查询语句所要查询的表的数据特征;
[0011]获取各计算引擎的状态特征;
[0012]针对每个计算引擎,分别生成一个特征向量,每个特征向量中包含:所述SQL查询语句的SQL特征、所述SQL查询语句所要查询的表的数据特征和对应计算引擎的状态特征;
[0013]将每个特征向量分别输入到资源消耗预测模型中进行计算,分别得到每个计算引擎执行所述SQL查询语句的预测资源消耗;
[0014]将每个特征向量分别输入到耗时预测模型中进行计算,分别得到每个计算引擎执行所述SQL查询语句的预测耗时;
[0015]根据所述每个计算引擎执行所述SQL查询语句的预测资源消耗,以及所述每个计算引擎执行所述SQL查询语句的预测耗时,计算每个计算引擎执行所述SQL查询语句的预测代价;
[0016]根据所述每个计算引擎执行所述SQL查询语句的预测代价,选择执行所述SQL查询语句的计算引擎。
[0017]所述获取待执行的SQL查询语句的SQL特征,包括:
[0018]抽取所述SQL查询语句所要查询的表名;
[0019]获取所述SQL查询语句包含的语法特征,并抽取每种语法特征涉及的特征值放入SQL特征中。
[0020]所述获取所述SQL查询语句包含的语法特征,并抽取每种语法特征涉及的特征值放入SQL特征中,包括:
[0021]判断所述SQL查询语句是否包含SELECT*语法特征,若是,则将SELECT语法特征标志放入SQL特征中;或/和,
[0022]抽取查询的project列的列数和列类型,将project列的列数和列类型放入SQL特征中;或/和,
[0023]判断所述SQL查询语句是否包含limit语法特征,若有,则抽取limit值,将limit语法特征标志和limit值放入SQL特征中;或/和,
[0024]判断所述SQL查询语句是否包含过滤条件,若包含,则抽取过滤表达式,将过滤条件标志和过滤表达式放入SQL特征中;或/和,
[0025]判断所述SQL查询语句是否包含union语法特征,若包含,则将union语法特征标志放入SQL特征中;或/和,
[0026]判断所述SQL查询语句是否有聚合函数,若有,则抽取聚合函数类型和聚合列,将聚合函数标志以及聚合函数类型和聚合列放入SQL特征中;或/和,
[0027]判断所述SQL查询语句是否包含groupby语法特征,若包含,则抽取groupby分组列,将groupby语法特征标志和groupby分组列放入SQL特征中;或/和,
[0028]判断所述SQL查询语句是否包含orderby语法特征,若包含,则抽取排序列,将orderby语法特征标志和排序列放入SQL特征中;或/和,
[0029]判断所述SQL查询语句是否包含join语法特征,若是,则抽取join类型,将join语法特征标志和join类型放入SQL特征中;或/和,
[0030]判断所述SQL查询语句是否包含子查询,若包含,则将子查询标志放入SQL特征中。
[0031]所述获取所述SQL查询语句所要查询的表的数据特征,包括:
[0032]获取表的如下信息之一或任意组合:
[0033]数据行数、每列数据的大小、空值比例、distinct值个数、每列的最小值、每列的最大值。
[0034]所述获取各计算引擎的状态特征,包括:
[0035]获取各计算引擎的总CPU数、可用CPU数、总内存数和可用内存数;
[0036]或者,获取各计算引擎的总CPU数、可用CPU数、总内存数、可用内存数,以及如下参数中的至少一个:在线状态、磁盘IO值、网络IO值。
[0037]所述获取各计算引擎的状态特征,进一步包括:
[0038]获取各计算引擎在最近连续预设日的与SQL查询语句的提交时刻同一时刻之后的预设多个时刻的状态特征。
[0039]所述资源消耗预测模型和耗时预测模型通过如下训练过程得到:
[0040]采集多个已经执行过的SQL查询语句;
[0041]针对每个SQL查询语句,分别构造一个特征向量,每个特征向量中包括:对应的SQL
查询语句的SQL特征、对应的SQL查询语句查询的表的数据特征、以及执行对应的SQL查询语句的计算引擎的状态特征;
[0042]获取执行每个SQL查询语句时计算引擎的实际资源消耗和实际耗时;
[0043]将每个特征向量依次输入到待训练的资源消耗预测模型,并将资源消耗预测模型输出的预测资源消耗和输入的特征向量对应的实际资源消耗进行比较,根据比较结果更新资源消耗预测模型参数,直至资源消耗预测模型收敛;
[0044]将每个特征向量依次输入到待训练的耗时预测模型,并将耗时预测模型输出的预测耗时和输入的特征向量对应的实际耗时进行比较,根据比较结果更新耗时预测模型参数,直至耗时预测模型收敛。
[0045]一种计算引擎选择装置,该装置包括:
[0046]特征采集模块,用于获取待执行的结构化查询语言SQL查询语句的SQL特征;获取所述SQL查询语句所要查询的表的数据特征;获取各计算引擎的状态特征;针对每个计算引擎,分别生成一个特征向量,每个特征向量中包含:所述SQL查询语句的SQL特征、所述SQL查询语句所要查询的表的数据特征和对应计算引擎的状态特征;
[0047]预测模块,用于将每个特征向量分本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种计算引擎选择方法,其特征在于,该方法包括:获取待执行的结构化查询语言SQL查询语句的SQL特征;获取所述SQL查询语句所要查询的表的数据特征;获取各计算引擎的状态特征;针对每个计算引擎,分别生成一个特征向量,每个特征向量中包含:所述SQL查询语句的SQL特征、所述SQL查询语句所要查询的表的数据特征和对应计算引擎的状态特征;将每个特征向量分别输入到资源消耗预测模型中进行计算,分别得到每个计算引擎执行所述SQL查询语句的预测资源消耗;将每个特征向量分别输入到耗时预测模型中进行计算,分别得到每个计算引擎执行所述SQL查询语句的预测耗时;根据所述每个计算引擎执行所述SQL查询语句的预测资源消耗,以及所述每个计算引擎执行所述SQL查询语句的预测耗时,计算每个计算引擎执行所述SQL查询语句的预测代价;根据所述每个计算引擎执行所述SQL查询语句的预测代价,选择执行所述SQL查询语句的计算引擎。2.根据权利要求1所述的方法,其特征在于,所述获取待执行的SQL查询语句的SQL特征,包括:抽取所述SQL查询语句所要查询的表名;获取所述SQL查询语句包含的语法特征,并抽取每种语法特征涉及的特征值放入SQL特征中。3.根据权利要求2所述的方法,其特征在于,所述获取所述SQL查询语句包含的语法特征,并抽取每种语法特征涉及的特征值放入SQL特征中,包括:判断所述SQL查询语句是否包含SELECT*语法特征,若是,则将SELECT语法特征标志放入SQL特征中;或/和,抽取查询的project列的列数和列类型,将project列的列数和列类型放入SQL特征中;或/和,判断所述SQL查询语句是否包含limit语法特征,若有,则抽取limit值,将limit语法特征标志和limit值放入SQL特征中;或/和,判断所述SQL查询语句是否包含过滤条件,若包含,则抽取过滤表达式,将过滤条件标志和过滤表达式放入SQL特征中;或/和,判断所述SQL查询语句是否包含union语法特征,若包含,则将union语法特征标志放入SQL特征中;或/和,判断所述SQL查询语句是否有聚合函数,若有,则抽取聚合函数类型和聚合列,将聚合函数标志以及聚合函数类型和聚合列放入SQL特征中;或/和,判断所述SQL查询语句是否包含groupby语法特征,若包含,则抽取groupby分组列,将groupby语法特征标志和groupby分组列放入SQL特征中;或/和,判断所述SQL查询语句是否包含orderby语法特征,若包含,则抽取排序列,将orderby语法特征标志和排序列放入SQL特征中;或/和,判断所述SQL查询语句是否包含join语法特征,若是,则抽取join类型,将join语法特
征标志和join类型放入SQL特征中;或/和,判断所述SQL查询语句是否包含子查询,若包含,则将子查询标志放入SQL特征中。4.根据权利要求1所述的方法,其特征在于,所述获取所述SQL查询语句所要查询的表的数据特征,包括:获取...

【专利技术属性】
技术研发人员:曾锐徐福生刘骏
申请(专利权)人:杭州海康威视数字技术股份有限公司
类型:发明
国别省市:

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

1