CN113704286A - 引擎选择方法、装置及计算设备 - Google Patents
引擎选择方法、装置及计算设备 Download PDFInfo
- Publication number
- CN113704286A CN113704286A CN202010429439.1A CN202010429439A CN113704286A CN 113704286 A CN113704286 A CN 113704286A CN 202010429439 A CN202010429439 A CN 202010429439A CN 113704286 A CN113704286 A CN 113704286A
- Authority
- CN
- China
- Prior art keywords
- variables
- engine
- training
- characteristic
- sql
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000010187 selection method Methods 0.000 title claims abstract description 23
- 238000012549 training Methods 0.000 claims abstract description 173
- 238000013145 classification model Methods 0.000 claims abstract description 55
- 238000000034 method Methods 0.000 claims abstract description 20
- 230000002776 aggregation Effects 0.000 claims description 16
- 238000004220 aggregation Methods 0.000 claims description 16
- 238000004891 communication Methods 0.000 claims description 15
- 238000012163 sequencing technique Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/244—Grouping and aggregation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例涉及大数据技术领域,公开了一种引擎选择方法、装置及计算设备。该方法包括:获取若干SQL训练语句;获取所述SQL训练语句在Hive引擎上运行的第一运行时间,以及所述SQL训练语句在Spark引擎上运行的第二运行时间;根据所述第一运行时间和所述第二运行时间,确定推荐引擎信息;根据预设特征变量,在所述SQL训练语句中获取训练特征变量,并确定所述训练特征变量对应的特征值;根据所述训练特征变量、所述训练特征变量对应的特征值以及所述推荐引擎信息,训练预设分类模型,并将训练后的所述预设分类模型作为引擎推荐模型;根据所述引擎推荐模型,进行引擎选择。通过上述方式,本发明实施例能够合理选择执行引擎,从而提高程序的执行效率。
Description
技术领域
本发明实施例涉及大数据技术领域,具体涉及一种引擎选择方法、装置及计算设备。
背景技术
Hadoop是一个用于对大量数据进行分布式处理的软件框架,其能够以一种可靠、高效、可伸缩的方式进行数据处理。Hadoop一般包含HDFS、Zookeeper、YARN、Mapreduct(简称MR)、Hive和Spark等组件,常用的Hive和Spark都部署在YARN上,对前端开发人员是无感知的,开发人员可以自主选择运行的方式。
目前,开发人员一般根据自己的经验选择Hive或Spark作为Hadoop的执行引擎,若选择不当,则容易导致开发的程序效率较低。
发明内容
鉴于上述问题,本发明实施例提供了一种引擎选择方法、装置及计算设备,能够合理选择执行引擎,从而提高程序的执行效率。
根据本发明实施例的第一方面,提供了一种引擎选择方法,包括:获取若干SQL训练语句;获取所述SQL训练语句在Hive引擎上运行的第一运行时间,以及所述SQL训练语句在Spark引擎上运行的第二运行时间;根据所述第一运行时间和所述第二运行时间,确定推荐引擎信息;根据预设特征变量,在所述SQL训练语句中获取训练特征变量,并确定所述训练特征变量对应的特征值;根据所述训练特征变量、所述训练特征变量对应的特征值以及所述推荐引擎信息,训练预设分类模型,并将训练后的所述预设分类模型作为引擎推荐模型;根据所述引擎推荐模型,进行引擎选择。
在一种可选的方式中,所述根据所述第一运行时间和所述第二运行时间,确定推荐引擎信息,具体包括:若所述第一运行时间小于所述第二运行时间,则确定所述推荐引擎信息为所述Hive引擎的标识信息;若所述第一运行时间大于所述第二运行时间,则确定所述推荐引擎信息为所述Spark引擎的标识信息。
在一种可选的方式中,所述预设特征变量包括关联变量、聚合变量、统计变量、求和变量、排序变量、合并变量、去重变量;所述根据预设特征变量,在所述SQL训练语句中获取训练特征变量,并确定所述训练特征变量对应的特征值,具体包括:在所述SQL训练语句中获取与所述关联变量、所述聚合变量、所述统计变量、所述求和变量、所述排序变量、所述合并变量、所述去重变量相同的所述训练特征变量;将所述关联变量的个数、所述聚合变量的个数、所述统计变量的个数、所述求和变量的个数、所述排序变量的个数、所述合并变量的个数、所述去重变量的个数确定为所述训练特征变量对应的特征值。
在一种可选的方式中,所述预设特征变量还包括表大小;所述将所述关联变量、所述聚合变量、所述统计变量、所述求和变量、所述排序变量、所述合并变量、所述去重变量的个数确定为所述训练特征变量对应的特征值,具体包括:将所述关联变量的个数、所述聚合变量的个数、所述统计变量的个数、所述求和变量的个数、所述排序变量的个数、所述合并变量的个数、所述去重变量的个数、所述表大小的值确定为所述训练特征变量对应的特征值。
在一种可选的方式中,所述根据所述训练特征变量、所述训练特征变量对应的特征值以及所述推荐引擎信息,训练预设分类模型,具体包括:将所述训练特征变量、所述训练特征变量对应的特征值输入所述预设分类模型,并获取所述预设分类模型输出的所述Hive引擎的概率值以及所述Spark引擎的概率值;根据所述推荐引擎信息、所述Hive引擎的概率值以及所述Spark引擎的概率值,调整所述预设分类模型的参数,以训练所述预设分类模型。
在一种可选的方式中,所述预设分类模型为Softmax分类器。
在一种可选的方式中,所述根据所述引擎推荐模型,进行引擎选择,具体包括:获取待预测SQL语句;根据所述预设特征变量,在所述待预测SQL语句中获取预测特征变量,并确定所述预测特征变量对应的特征值;将所述预测特征变量以及所述预测特征变量对应的特征值输入所述引擎推荐模型,以获取所述引擎推荐模型输出的所述Hive引擎的预测概率值以及所述Spark引擎的预测概率值;根据所述Hive引擎的预测概率值以及所述Spark引擎的预测概率值,进行引擎选择。
根据本发明实施例的第二方面,提供了一种引擎选择装置,包括:第一获取模块,用于获取若干SQL训练语句;
第二获取模块,用于获取所述SQL训练语句在Hive引擎上运行的第一运行时间,以及所述SQL训练语句在Spark引擎上运行的第二运行时间;确定模块,用于根据所述第一运行时间和所述第二运行时间,确定推荐引擎信息;特征值确定模块,用于根据预设特征变量,在所述SQL训练语句中获取训练特征变量,并确定所述训练特征变量对应的特征值;训练模块,用于根据所述训练特征变量、所述训练特征变量对应的特征值以及所述推荐引擎信息,训练预设分类模型,并将训练后的所述预设分类模型作为引擎推荐模型;引擎选择模块,用于根据所述引擎推荐模型,进行引擎选择。
根据本发明实施例的第三方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述的引擎选择方法的操作。
根据本发明实施例的第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令在计算设备上运行时,使得计算设备执行执行上述的引擎选择方法。
本发明实施例通过获取若干SQL训练语句,获取SQL训练语句在Hive引擎上运行的第一运行时间,以及SQL训练语句在Spark引擎上运行的第二运行时间,根据第一运行时间和所述第二运行时间,确定推荐引擎信息,根据预设特征变量,在SQL训练语句中获取训练特征变量,并确定训练特征变量对应的特征值,根据训练特征变量、训练特征变量对应的特征值以及推荐引擎信息,训练预设分类模型,并将训练后的预设分类模型作为引擎推荐模型,根据引擎推荐模型,进行引擎选择,能够在开发和运维人员再技能存在不足的情况下,依靠人工智能快速而准确的选择一个合理的执行引擎,从而能够合理选择执行引擎,提高程序的执行效率。
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
附图仅用于示出实施方式,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的引擎选择方法的流程示意图;
图2示出了本发明实施例提供的SQL语句的语法树示意图;
图3示出了图1中的步骤160的流程示意图;
图4示出了本发明实施例提供的引擎选择装置的结构示意图;
图5示出了本发明实施例提供的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。
结构化查询语言(Structured Query Language,SQL)是一种用于数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系型数据库。由于Hive平台和Spark平台的设计机制不一样,Hive采用Mapreduce的机制进行数据的运算,而Spark采用RDD的机制进行SQL的解析和执行,执行不同的SQL语句,速度不同。
本发明人对现有技术进行分析后发现,目前,开发人员一般根据自己的经验选择Hive或Spark作为Hadoop的执行引擎,若选择不当,则容易导致开发的程序效率较低。
基于此,本发明实施例提供了一种引擎选择方法、装置及计算设备,能够合理选择执行引擎,从而提高程序的执行效率。
具体地,下面结合附图,对本发明实施例作进一步阐述。
其中,应当理解的是,本发明提供的下述实施例之间,只要不冲突,均可相互结合以形成新的实施方式。
图1示出了本发明实施例提供的引擎选择方法的流程示意图。该方法可以应用于计算设备。如图1所示,该方法包括:
步骤110、获取若干SQL训练语句。
其中,SQL训练语句是指用于进行模型训练的SQL语句。SQL训练语句的数量可以为若干,例如可以为五千条。当SQL训练语句的数量越多时,训练得到的模型的准确率越高,但是同时训练时间会延迟,因此,需要选择适量的SQL训练语句。SQL训练语句可以包括应用在各类系统的SQL语句,从而使得训练样本具有代表性。
步骤120、获取SQL训练语句在Hive引擎上运行的第一运行时间,以及SQL训练语句在Spark引擎上运行的第二运行时间。
具体实施方式可以为:在系统上分别设置Hive引擎和Spark引擎,将SQL训练语句输入系统,并记录系统的运行时间,从而获取到SQL训练语句在Hive引擎上运行的第一运行时间,以及SQL训练语句在Spark引擎上运行的第二运行时间。例如,SQL训练语句:selectcount(distinct id)from a left outer join b on a.id=b.id,分别在设置Hive引擎和Spark引擎的系统运行,并获取到SQL训练语句在Hive引擎上运行的第一运行时间为30秒,SQL训练语句在Spark引擎上运行的第二运行时间为10秒。
步骤130、根据第一运行时间和第二运行时间,确定推荐引擎信息。
其中,推荐引擎信息是指推荐使用某个引擎的信息。具体地,步骤130包括:步骤131、若第一运行时间小于第二运行时间,则确定推荐引擎信息为Hive引擎的标识信息;步骤132、若第一运行时间大于第二运行时间,则确定推荐引擎信息为Spark引擎的标识信息。
当第一运行时间小于第二运行时间,即SQL训练语句在Hive引擎上运行较快,推荐使用Hive引擎,则确定推荐引擎信息为Hive引擎的标识信息;当第一运行时间大于第二运行时间,即SQL训练语句在Spark引擎上运行较快,推荐使用Spark引擎,则确定推荐引擎信息为Spark引擎的标识信息。其中,可以设置Hive引擎的标识信息为0、Spark引擎的标识信息为1,则当推荐使用Hive引擎时显示0,推荐使用Spark引擎时显示1。
步骤140、根据预设特征变量,在SQL训练语句中获取训练特征变量,并确定训练特征变量对应的特征值。
其中,预设特征变量是指SQL语句中表示关键操作的标识。预设特征变量可以包括关联变量、聚合变量、统计变量、求和变量、排序变量、合并变量、去重变量。在SQL语句中,关联变量为join,聚合变量为group by,统计变量为count,求和变量为sun,排序变量为order,合并变量为union,去重变量为distinct。在本实施例中,由于大数据Hadoop的平台一般使用在一次写入数据多次读取的场景,常用的SQL语句为查询语句,查询的语法树可以如图2所示,可以通过ANTLR(Another Tool for Language Recognition)对SQL训练语句进行解析,从而得到预设特征变量。其中,ANTLR是一种可以根据输入自动生成语法树并可视化的显示出来的开源语法分析器。
可选地,由于数据量对SQL的执行效率影响较大,预设特征变量还可以包括表大小。表大小可以包括表行数,即当前SQL训练语句所使用的表的行数。
具体地,步骤140可以包括:
步骤141、在SQL训练语句中获取与关联变量、聚合变量、统计变量、求和变量、排序变量、合并变量、去重变量相同的训练特征变量。
其中,可以根据预设特征变量,在SQL训练语句中识别是否存在join、group by、count、sun、order、union或distinct,若存在,则获取到训练特征变量。例如,若SQL训练语句为select count(distinct id)from a left outer join b on a.id=b.id,则获取到训练特征变量为count、distinct、join。
步骤142、在SQL训练语句中获取表大小的值。
可以通过查询当前SQL训练语句所使用的表对应的数据行数,从而得到表大小的值。
步骤143、将关联变量的个数、聚合变量的个数、统计变量的个数、求和变量的个数、排序变量的个数、合并变量的个数、去重变量的个数、表大小的值确定为训练特征变量对应的特征值。
即,特征值包括:表大小的值、join的个数、group by的个数、count的个数、sun的个数、order的个数、union的个数、distinct的个数。
在一些实施例中,由于SQL训练语句中可能包括Hadoop数据库中的多个表,则表大小还可以包括表个数,则表行数为SQL训练语句获取的所有表的总行数。
步骤150、根据训练特征变量、训练特征变量对应的特征值以及推荐引擎信息,训练预设分类模型,并将训练后的预设分类模型作为引擎推荐模型。
其中,预设分类模型可以为Softmax分类器。Softmax分类器是logistic模型在多分类问题上的推广,将目标变量分为多类的算法。
具体地,步骤150包括:
步骤151、将训练特征变量、训练特征变量对应的特征值输入预设分类模型,并获取预设分类模型输出的Hive引擎的概率值以及Spark引擎的概率值。
其中,将训练特征变量、训练特征变量对应的特征值作为由m个已标记的样本构成的训练集,并记为{(x(1),y(1)),…(x(m),y(m))},其中输入的第i个样例即特征向量x的维度为n+1,并且,有y(i)∈{1,2,…,k},对于输入的每一个样例输出其属于每一类别j的概率值p(y=j|x),即输出一个k维向量(向量元素的和为1)来表示这k个估计的概率值。Softmax分类器的假设函数可以为:
在本实施例中,由于待选择的引擎只有Hive引擎和Spark引擎,因此,k=2。
步骤152、根据推荐引擎信息、Hive引擎的概率值以及Spark引擎的概率值,调整预设分类模型的参数,以训练预设分类模型。
其中,计算得到Hive引擎的概率值以及Spark引擎的概率值后,根据推荐引擎信息调整预设分类模型的参数,例如,假设预设分类模型分为0和1两个类别,0代表Hive引擎,1代表Spark引擎,计算得到0的概率值大于1的概率值,而推荐引擎信息为1,则调整预设分类模型的参数装置0的概率值小于1的概率值。
其中,可以通过损失函数进行模型的参数的调整。Softmax分类器的损失函数可以为:
其中,1{·}为指示函数,有:
步骤153、将训练后的预设分类模型作为引擎推荐模型。
将训练后的预设分类模型作为引擎推荐模型,并存储引擎推荐模型在内存中。在一些其他实施例中,还可以将引擎推荐模型封装成应用程序接口(ApplicationProgramming Interface,API),以方便hadoop平台的用户调用。
步骤160、根据引擎推荐模型,进行引擎选择。
具体地,如图3所示,步骤160包括:
步骤161、获取待预测SQL语句。
其中,带预测SQL语句是指需要进行引擎推荐的SQL语句。
步骤162、根据预设特征变量,在待预测SQL语句中获取预测特征变量,并确定预测特征变量对应的特征值。
具体实施方式可以为:根据预设特征变量,在待预测SQL语句中获取与预设特征变量相同的预测特征变量,并确定预测特征变量对应的特征值。例如,预设特征变量为表大小、join、group by、count、sun、order、union、distinct,对待预测SQL语句进行分析后,获取待预测SQL语句中表大小的值、join的个数、group by的个数、count的个数、sun的个数、order的个数、union的个数、distinct的个数,从而确定预测特征变量对应的特征值。
步骤163、将预测特征变量以及预测特征变量对应的特征值输入引擎推荐模型,以获取引擎推荐模型输出的Hive引擎的预测概率值以及Spark引擎的预测概率值。
步骤164、根据Hive引擎的预测概率值以及Spark引擎的预测概率值,进行引擎选择。
其中,若Hive引擎的预测概率值大于Spark引擎的预测概率值,则确定选择的引擎为Hive引擎;若Hive引擎的预测概率值小于Spark引擎的预测概率值则确定选择的引擎为Spark引擎。
本发明实施例通过获取若干SQL训练语句,获取SQL训练语句在Hive引擎上运行的第一运行时间,以及SQL训练语句在Spark引擎上运行的第二运行时间,根据第一运行时间和所述第二运行时间,确定推荐引擎信息,根据预设特征变量,在SQL训练语句中获取训练特征变量,并确定训练特征变量对应的特征值,根据训练特征变量、训练特征变量对应的特征值以及推荐引擎信息,训练预设分类模型,并将训练后的预设分类模型作为引擎推荐模型,根据引擎推荐模型,进行引擎选择,能够在开发和运维人员再技能存在不足的情况下,依靠人工智能快速而准确的选择一个合理的执行引擎,从而能够合理选择执行引擎,提高程序的执行效率。
图4示出了本发明实施例提供的引擎选择装置的结构示意图。该方法可以应用于计算设备。如图4所示,该装置包括:第一获取模块210、第二获取模块220、确定模块230、特征值确定模块240、训练模块250和引擎选择模块260。
其中,第一获取模块210用于获取若干SQL训练语句;第二获取模块220用于获取所述SQL训练语句在Hive引擎上运行的第一运行时间,以及所述SQL训练语句在Spark引擎上运行的第二运行时间;确定模块230用于根据所述第一运行时间和所述第二运行时间,确定推荐引擎信息;特征值确定模块240用于根据预设特征变量,在所述SQL训练语句中获取训练特征变量,并确定所述训练特征变量对应的特征值;训练模块250用于根据所述训练特征变量、所述训练特征变量对应的特征值以及所述推荐引擎信息,训练预设分类模型,并将训练后的所述预设分类模型作为引擎推荐模型;引擎选择模块260用于根据所述引擎推荐模型,进行引擎选择。
在一种可选的方式中,确定模块230具体用于:若所述第一运行时间小于所述第二运行时间,则确定所述推荐引擎信息为所述Hive引擎的标识信息;若所述第一运行时间大于所述第二运行时间,则确定所述推荐引擎信息为所述Spark引擎的标识信息。
在一种可选的方式中,所述预设特征变量包括关联变量、聚合变量、统计变量、求和变量、排序变量、合并变量、去重变量;特征值确定模块240具体用于:在所述SQL训练语句中获取与所述关联变量、所述聚合变量、所述统计变量、所述求和变量、所述排序变量、所述合并变量、所述去重变量相同的所述训练特征变量;将所述关联变量的个数、所述聚合变量的个数、所述统计变量的个数、所述求和变量的个数、所述排序变量的个数、所述合并变量的个数、所述去重变量的个数确定为所述训练特征变量对应的特征值。
在一种可选的方式中,所述预设特征变量还包括表大小;特征值确定模块240具体用于:将所述关联变量的个数、所述聚合变量的个数、所述统计变量的个数、所述求和变量的个数、所述排序变量的个数、所述合并变量的个数、所述去重变量的个数、所述表大小的值确定为所述训练特征变量对应的特征值。
在一种可选的方式中,训练模块250具体用于:将所述训练特征变量、所述训练特征变量对应的特征值输入所述预设分类模型,并获取所述预设分类模型输出的所述Hive引擎的概率值以及所述Spark引擎的概率值;根据所述推荐引擎信息、所述Hive引擎的概率值以及所述Spark引擎的概率值,调整所述预设分类模型的参数,以训练所述预设分类模型。
在一种可选的方式中,所述预设分类模型为Softmax分类器。
在一种可选的方式中,引擎选择模块260具体用于:获取待预测SQL语句;根据所述预设特征变量,在所述待预测SQL语句中获取预测特征变量,并确定所述预测特征变量对应的特征值;将所述预测特征变量以及所述预测特征变量对应的特征值输入所述引擎推荐模型,以获取所述引擎推荐模型输出的所述Hive引擎的预测概率值以及所述Spark引擎的预测概率值;根据所述Hive引擎的预测概率值以及所述Spark引擎的预测概率值,进行引擎选择。
需要说明的是,本发明实施例提供引擎选择装置是能够执行上述引擎选择方法的装置,则上述引擎选择方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。
本发明实施例通过获取若干SQL训练语句,获取SQL训练语句在Hive引擎上运行的第一运行时间,以及SQL训练语句在Spark引擎上运行的第二运行时间,根据第一运行时间和所述第二运行时间,确定推荐引擎信息,根据预设特征变量,在SQL训练语句中获取训练特征变量,并确定训练特征变量对应的特征值,根据训练特征变量、训练特征变量对应的特征值以及推荐引擎信息,训练预设分类模型,并将训练后的预设分类模型作为引擎推荐模型,根据引擎推荐模型,进行引擎选择,能够在开发和运维人员再技能存在不足的情况下,依靠人工智能快速而准确的选择一个合理的执行引擎,从而能够合理选择执行引擎,提高程序的执行效率。
图5示出了本发明实施例提供的计算设备的结构示意图。本发明具体实施例并不对计算设备的具体实现做限定。
如图5所示,该计算设备可以包括:处理器(processor)302、通信接口(Communications Interface)304、存储器(memory)306、以及通信总线308。
其中:处理器302、通信接口304、以及存储器306通过通信总线308完成相互间的通信。通信接口304,用于与其它设备比如网元或其它服务器等的网元通信。处理器302,用于执行程序310,具体可以执行上述用于引擎选择方法实施例中的相关步骤。
具体地,程序310可以包括程序代码,该程序代码包括计算机可执行指令。
处理器302可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器306,用于存放程序310。存储器306可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序310具体可以被处理器302调用使计算设备执行上述实施例中的引擎选择方法中的操作。
本发明实施例通过获取若干SQL训练语句,获取SQL训练语句在Hive引擎上运行的第一运行时间,以及SQL训练语句在Spark引擎上运行的第二运行时间,根据第一运行时间和所述第二运行时间,确定推荐引擎信息,根据预设特征变量,在SQL训练语句中获取训练特征变量,并确定训练特征变量对应的特征值,根据训练特征变量、训练特征变量对应的特征值以及推荐引擎信息,训练预设分类模型,并将训练后的预设分类模型作为引擎推荐模型,根据引擎推荐模型,进行引擎选择,能够在开发和运维人员再技能存在不足的情况下,依靠人工智能快速而准确的选择一个合理的执行引擎,从而能够合理选择执行引擎,提高程序的执行效率。
本发明实施例提供了一种计算机可读存储介质,所述存储介质存储有至少一可执行指令,该可执行指令在计算设备上运行时,使得计算设备执行上述任意方法实施例中的引擎选择方法。可执行指令具体可以用于使得计算设备执行上述实施例中的引擎选择方法中的操作。
本发明实施例通过获取若干SQL训练语句,获取SQL训练语句在Hive引擎上运行的第一运行时间,以及SQL训练语句在Spark引擎上运行的第二运行时间,根据第一运行时间和所述第二运行时间,确定推荐引擎信息,根据预设特征变量,在SQL训练语句中获取训练特征变量,并确定训练特征变量对应的特征值,根据训练特征变量、训练特征变量对应的特征值以及推荐引擎信息,训练预设分类模型,并将训练后的预设分类模型作为引擎推荐模型,根据引擎推荐模型,进行引擎选择,能够在开发和运维人员再技能存在不足的情况下,依靠人工智能快速而准确的选择一个合理的执行引擎,从而能够合理选择执行引擎,提高程序的执行效率。
本发明实施例提供一种引擎选择装置,用于执行上述引擎选择方法。
本发明实施例提供了一种计算机程序,所述计算机程序可被处理器调用使计算设备执行上述任意方法实施例中的引擎选择方法。
本发明实施例提供了一种计算机程序产品,计算机程序产品包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令在计算机上运行时,使得所述计算机执行上述任意方法实施例中的引擎选择方法。
在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。
Claims (10)
1.一种引擎选择方法,其特征在于,包括:
获取若干SQL训练语句;
获取所述SQL训练语句在Hive引擎上运行的第一运行时间,以及所述SQL训练语句在Spark引擎上运行的第二运行时间;
根据所述第一运行时间和所述第二运行时间,确定推荐引擎信息;
根据预设特征变量,在所述SQL训练语句中获取训练特征变量,并确定所述训练特征变量对应的特征值;
根据所述训练特征变量、所述训练特征变量对应的特征值以及所述推荐引擎信息,训练预设分类模型,并将训练后的所述预设分类模型作为引擎推荐模型;
根据所述引擎推荐模型,进行引擎选择。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一运行时间和所述第二运行时间,确定推荐引擎信息,具体包括:
若所述第一运行时间小于所述第二运行时间,则确定所述推荐引擎信息为所述Hive引擎的标识信息;
若所述第一运行时间大于所述第二运行时间,则确定所述推荐引擎信息为所述Spark引擎的标识信息。
3.根据权利要求1所述的方法,其特征在于,所述预设特征变量包括关联变量、聚合变量、统计变量、求和变量、排序变量、合并变量、去重变量;
所述根据预设特征变量,在所述SQL训练语句中获取训练特征变量,并确定所述训练特征变量对应的特征值,具体包括:
在所述SQL训练语句中获取与所述关联变量、所述聚合变量、所述统计变量、所述求和变量、所述排序变量、所述合并变量、所述去重变量相同的所述训练特征变量;
将所述关联变量的个数、所述聚合变量的个数、所述统计变量的个数、所述求和变量的个数、所述排序变量的个数、所述合并变量的个数、所述去重变量的个数确定为所述训练特征变量对应的特征值。
4.根据权利要求3所述的方法,其特征在于,所述预设特征变量还包括表大小;
所述将所述关联变量、所述聚合变量、所述统计变量、所述求和变量、所述排序变量、所述合并变量、所述去重变量的个数确定为所述训练特征变量对应的特征值,具体包括:
将所述关联变量的个数、所述聚合变量的个数、所述统计变量的个数、所述求和变量的个数、所述排序变量的个数、所述合并变量的个数、所述去重变量的个数、所述表大小的值确定为所述训练特征变量对应的特征值。
5.根据权利要求1所述的方法,其特征在于,所述根据所述训练特征变量、所述训练特征变量对应的特征值以及所述推荐引擎信息,训练预设分类模型,具体包括:
将所述训练特征变量、所述训练特征变量对应的特征值输入所述预设分类模型,并获取所述预设分类模型输出的所述Hive引擎的概率值以及所述Spark引擎的概率值;
根据所述推荐引擎信息、所述Hive引擎的概率值以及所述Spark引擎的概率值,调整所述预设分类模型的参数,以训练所述预设分类模型。
6.根据权利要求1所述的方法,其特征在于,所述预设分类模型为Softmax分类器。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述根据所述引擎推荐模型,进行引擎选择,具体包括:
获取待预测SQL语句;
根据所述预设特征变量,在所述待预测SQL语句中获取预测特征变量,并确定所述预测特征变量对应的特征值;
将所述预测特征变量以及所述预测特征变量对应的特征值输入所述引擎推荐模型,以获取所述引擎推荐模型输出的所述Hive引擎的预测概率值以及所述Spark引擎的预测概率值;
根据所述Hive引擎的预测概率值以及所述Spark引擎的预测概率值,进行引擎选择。
8.一种引擎选择装置,其特征在于,包括:
第一获取模块,用于获取若干SQL训练语句;
第二获取模块,用于获取所述SQL训练语句在Hive引擎上运行的第一运行时间,以及所述SQL训练语句在Spark引擎上运行的第二运行时间;
确定模块,用于根据所述第一运行时间和所述第二运行时间,确定推荐引擎信息;
特征值确定模块,用于根据预设特征变量,在所述SQL训练语句中获取训练特征变量,并确定所述训练特征变量对应的特征值;
训练模块,用于根据所述训练特征变量、所述训练特征变量对应的特征值以及所述推荐引擎信息,训练预设分类模型,并将训练后的所述预设分类模型作为引擎推荐模型;
引擎选择模块,用于根据所述引擎推荐模型,进行引擎选择。
9.一种计算设备,其特征在于,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7任一项所述的引擎选择方法的操作。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一可执行指令,所述可执行指令在计算设备上运行时,使得计算设备执行如权利要求1-7任一项所述的引擎选择方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010429439.1A CN113704286A (zh) | 2020-05-20 | 2020-05-20 | 引擎选择方法、装置及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010429439.1A CN113704286A (zh) | 2020-05-20 | 2020-05-20 | 引擎选择方法、装置及计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113704286A true CN113704286A (zh) | 2021-11-26 |
Family
ID=78645512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010429439.1A Pending CN113704286A (zh) | 2020-05-20 | 2020-05-20 | 引擎选择方法、装置及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113704286A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763573A (zh) * | 2018-06-06 | 2018-11-06 | 众安信息技术服务有限公司 | 一种基于机器学习的olap引擎路由方法及系统 |
CN109634989A (zh) * | 2018-11-16 | 2019-04-16 | 百度在线网络技术(北京)有限公司 | 一种hive任务执行引擎选择方法和系统 |
CN110222072A (zh) * | 2019-06-06 | 2019-09-10 | 江苏满运软件科技有限公司 | 数据查询平台、方法、设备和存储介质 |
US20190286731A1 (en) * | 2018-03-14 | 2019-09-19 | International Business Machines Corporation | Selecting an optimal combination of systems for query processing |
CN110807145A (zh) * | 2018-07-20 | 2020-02-18 | 中兴通讯股份有限公司 | 查询引擎获取方法、设备和计算机可读存储介质 |
CN110825767A (zh) * | 2019-11-15 | 2020-02-21 | 江苏满运软件科技有限公司 | 数据查询方法、平台、设备及存储介质 |
CN111104419A (zh) * | 2019-12-24 | 2020-05-05 | 上海众源网络有限公司 | 一种数据查询方法及装置 |
-
2020
- 2020-05-20 CN CN202010429439.1A patent/CN113704286A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190286731A1 (en) * | 2018-03-14 | 2019-09-19 | International Business Machines Corporation | Selecting an optimal combination of systems for query processing |
CN108763573A (zh) * | 2018-06-06 | 2018-11-06 | 众安信息技术服务有限公司 | 一种基于机器学习的olap引擎路由方法及系统 |
CN110807145A (zh) * | 2018-07-20 | 2020-02-18 | 中兴通讯股份有限公司 | 查询引擎获取方法、设备和计算机可读存储介质 |
CN109634989A (zh) * | 2018-11-16 | 2019-04-16 | 百度在线网络技术(北京)有限公司 | 一种hive任务执行引擎选择方法和系统 |
CN110222072A (zh) * | 2019-06-06 | 2019-09-10 | 江苏满运软件科技有限公司 | 数据查询平台、方法、设备和存储介质 |
CN110825767A (zh) * | 2019-11-15 | 2020-02-21 | 江苏满运软件科技有限公司 | 数据查询方法、平台、设备及存储介质 |
CN111104419A (zh) * | 2019-12-24 | 2020-05-05 | 上海众源网络有限公司 | 一种数据查询方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9633045B2 (en) | Image ranking based on attribute correlation | |
CN106611052B (zh) | 文本标签的确定方法及装置 | |
WO2022126810A1 (zh) | 文本聚类方法 | |
CN107844533A (zh) | 一种智能问答系统及分析方法 | |
CN110737805B (zh) | 图模型数据的处理方法、装置和终端设备 | |
US20220277188A1 (en) | Systems and methods for classifying data sets using corresponding neural networks | |
CN111581086B (zh) | 一种基于RankNet的混合软件错误定位方法及系统 | |
CN105320764A (zh) | 一种基于增量慢特征的3d模型检索方法及其检索装置 | |
CN108197656A (zh) | 一种基于cuda的属性约简方法 | |
CN112685374B (zh) | 日志分类方法、装置及电子设备 | |
CN111145026B (zh) | 一种反洗钱模型的训练方法及装置 | |
US10614031B1 (en) | Systems and methods for indexing and mapping data sets using feature matrices | |
CN113792084A (zh) | 数据热度的分析方法、装置、设备及存储介质 | |
US20160063394A1 (en) | Computing Device Classifier Improvement Through N-Dimensional Stratified Input Sampling | |
CN113704286A (zh) | 引擎选择方法、装置及计算设备 | |
US20160217386A1 (en) | Computer implemented classification system and method | |
CN112052365B (zh) | 一种跨境场景画像构建方法和装置 | |
US20220351087A1 (en) | Feature pruning and algorithm selection for machine learning | |
Doğan et al. | Use of data mining techniques in advance decision making processes in a local firm | |
She et al. | Text Classification Research Based on Improved SoftMax Regression Algorithm | |
AU2021103444A4 (en) | AIML Based Smart Classifier in a Shared Memory Multiprocessor System | |
CN110532384A (zh) | 一种多任务字典单分类方法、系统、装置及存储介质 | |
Kamath et al. | A composite classification model for web services based on semantic & syntactic information integration | |
CN109787784A (zh) | 群组推荐方法、装置、存储介质和计算机设备 | |
US20230206673A1 (en) | Document review assistance method, document review assistance system, and non-transitory computer readable medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |