CN108052394B - 基于sql语句运行时间的资源分配的方法及计算机设备 - Google Patents

基于sql语句运行时间的资源分配的方法及计算机设备 Download PDF

Info

Publication number
CN108052394B
CN108052394B CN201711440945.5A CN201711440945A CN108052394B CN 108052394 B CN108052394 B CN 108052394B CN 201711440945 A CN201711440945 A CN 201711440945A CN 108052394 B CN108052394 B CN 108052394B
Authority
CN
China
Prior art keywords
sql
sql statement
resource allocation
resource
vector
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.)
Active
Application number
CN201711440945.5A
Other languages
English (en)
Other versions
CN108052394A (zh
Inventor
李昭阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujian Sinoregal Software Co ltd
Original Assignee
Fujian Sinoregal Software Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujian Sinoregal Software Co ltd filed Critical Fujian Sinoregal Software Co ltd
Priority to CN201711440945.5A priority Critical patent/CN108052394B/zh
Publication of CN108052394A publication Critical patent/CN108052394A/zh
Application granted granted Critical
Publication of CN108052394B publication Critical patent/CN108052394B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages

Abstract

本发明提供一种基于SQL语句运行时间的资源分配的方法,收集SQL历史的执行记录ID、SQL语句以及运行时间runtime;根据执行记录ID获取该SQL语句执行时所分派的资源,形成资源向量R,解析SQL语句获取运算符、表名以及列名,根据表名以及列名查询元数据信息,获取数据信息,并将其对应至运算符,形成运算向量OP;以运行时间runtime为目标变量,R和OP为预测变量,利用机器学习算法建立预测模块,训练预测模型;提交SQL语句和资源向量值R,通过预测模型预测出所需执行时间;根据所述执行时间,进行选择资源分配模式;本发明还提供一种计算机设备,有效降低系统开销,使得用户负担低,提升用户体验。

Description

基于SQL语句运行时间的资源分配的方法及计算机设备
技术领域
本发明涉及一种基于SQL语句运行时间的资源分配的方法及计算机设备。
背景技术
分布式计算资源分配模式分2种:批处理模式——计算资源(CPU,MEM等)分配和环境初始化在任务提交时进行,任务结束时收回资源和注销环境,再次提交任务时需重新分配资源和初始化环境。交互模式——计算资源分配和环境初始化在第一次任务执行时进行,之后的任务会不断重用已经分配好资源和环境配置。批处理模式缺陷是每次提交任务均有分配资源和初始化环境的开销,好处是任务结束就收回资源和初始化变量,适合长时间运行的任务。而交互模式优点是资源分配和初始化开销小,缺陷是如果不退出交互模式则资源一直占用不论是否有任务提交,适合短时间运行的任务。如何比较准确地判断任务运行时长,是正确选择资源分配模式和减少初始化动作的关键。通常做法是交给用户自己判断,后果是用户负担重(要了解执行引擎许多相关知识)又判断不准(决定因素多且关系复杂),造成系统开销大或资源浪费。
发明内容
本发明要解决的技术问题,在于提供一种基于SQL语句运行时间的资源分配的方法及计算机设备,有效降低系统开销,使得用户负担低,提升用户体验。
本发明之一是这样实现的:一种基于SQL语句运行时间的资源分配的方法,包括如下步骤:
步骤1、收集SQL历史的执行记录ID、SQL语句以及运行时间runtime;
步骤2、根据执行记录ID获取该SQL语句执行时所分派的资源,形成资源向量R,解析SQL语句获取运算符、表名以及列名,根据表名以及列名查询元数据信息,获取数据信息,并将其对应至运算符,形成运算向量OP;
步骤3、以运行时间runtime为目标变量,R和OP为预测变量,利用机器学习算法建立预测模块,并训练预测模型;
步骤4、向训练好的预测模型提交SQL语句和资源向量值R,通过预测模型预测出所需执行时间;
步骤5、根据所述执行时间,进行选择资源分配模式。
进一步地,所述步骤5进一步具体为:设定一运行时间阈值,将所述执行时间与阈值比较,若小于等于阈值,则资源分配模式采用交互模式,否则资源分配模式采用批处理模式。
进一步地,所述步骤2中资源向量R包括Executor数、每个Executor的CPU核数以及MEM大小。
本发明之二是这样实现的:一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
步骤1、收集SQL历史的执行记录ID、SQL语句以及运行时间runtime;
步骤2、根据执行记录ID获取该SQL语句执行时所分派的资源,形成资源向量R,解析SQL语句获取运算符、表名以及列名,根据表名以及列名查询元数据信息,获取数据信息,并将其对应至运算符,形成运算向量OP;
步骤3、以运行时间runtime为目标变量,R和OP为预测变量,利用机器学习算法建立预测模块,并训练预测模型;
步骤4、向训练好的预测模型提交SQL语句和资源向量值R,通过预测模型预测出所需执行时间;
步骤5、根据所述执行时间,进行选择资源分配模式。
进一步地,所述步骤5进一步具体为:设定一运行时间阈值,将所述执行时间与阈值比较,若小于等于阈值,则资源分配模式采用交互模式,否则资源分配模式采用批处理模式。
进一步地,所述步骤2中资源向量R包括Executor数、每个Executor的CPU核数以及MEM大小。
本发明具有如下优点:
1)有效降低系统开销。提取众多预测变量(信息),利用大量真实的历史执行数据来构建预测变量间与运行时间之间复杂的函数关系,提供较高的预测精度从而制定合理的资源提交模式并减少不必要的初始化开销。
2)用户负担低。只需设定运行阈值,无需考虑数据实际大小和各种底层引擎执行机制去人为估算运行时间。
3)提升用户体验。时间阈值既可以使用缺省设定值,也可依据个人喜好设置阈值,实现个性化,并将预测时间动态实时反馈(如进度条)给应用程序。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明方法执行流程图。
具体实施方式
本发明基于SQL语句运行时间的资源分配的方法,包括如下步骤:
步骤1、收集SQL历史的执行记录ID、SQL语句以及运行时间runtime;
步骤2、根据执行记录ID获取该SQL语句执行时所分派的资源,形成资源向量R,解析SQL语句获取运算符、表名以及列名,根据表名以及列名查询元数据信息,获取数据信息,并将其对应至运算符,形成运算向量OP,所述资源向量R包括Executor数、每个Executor的CPU核数以及MEM大小;
步骤3、以运行时间runtime为目标变量,R和OP为预测变量,利用机器学习算法建立预测模块,并训练预测模型;
步骤4、向训练好的预测模型提交SQL语句和资源向量值R,通过预测模型预测出所需执行时间;
步骤5、设定一运行时间阈值,将所述执行时间与阈值比较,若小于等于阈值,则资源分配模式采用交互模式,否则资源分配模式采用批处理模式。
本发明计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
步骤1、收集SQL历史的执行记录ID、SQL语句以及运行时间runtime;
步骤2、根据执行记录ID获取该SQL语句执行时所分派的资源,形成资源向量R,解析SQL语句获取运算符、表名以及列名,根据表名以及列名查询元数据信息,获取数据信息,并将其对应至运算符,形成运算向量OP,所述资源向量R包括Executor数、每个Executor的CPU核数以及MEM大小;
步骤3、以运行时间runtime为目标变量,R和OP为预测变量,利用机器学习算法建立预测模块,并训练预测模型;
步骤4、向训练好的预测模型提交SQL语句和资源向量值R,通过预测模型预测出所需执行时间;
步骤5、设定一运行时间阈值,将所述执行时间与阈值比较,若小于等于阈值,则资源分配模式采用交互模式,否则资源分配模式采用批处理模式。
本发明另一种具体具体实施方式如下:
本发明解决思路是机器学习的手段来自动预测SQL语句在具体平台的执行时间,依此形成资源分配模式和减少环境初始化的决策依据。本系统需要收集SQL语句的执行历史,包含执行时间,执行所耗资源(CPU,MEM),SQL操作类型,以及运算符操作所处理的数据及其大小。通过机器学习模型建立(训练)执行时间与所耗资源,操作类型和处理数据大小之间的函数关系。在需要实时判断决策时,输入所耗资源,操作类型,数据大小等变量预估SQL执行时间,从而为资源分配模式提供决策依据。
方案结构:训练系统,实时预测系统,应用程序,决策行动系统,日志系统,元数据系统,用户。
主要步骤:
A:训练阶段
1)从日志系统的任务执行日志中收集SQL历史执行记录id,获取SQL语句和运行时间runtime(记为run_t);
2)从日志系统的的资源管理日志中,根据执行记录id获取该SQL语句执行时所分派的资源大小(如Executor数,每个Executor的CPU核数,MEM大小),形成资源向量R=(r1,r2,r3)。例如,运行某SQL语句的Executor数为3,每个Executor的CPU核数为4,MEM大小为8G,则资源向量取值为R=(3,4,8);
3)解析SQL语句获取运算符,如关系运算符(Projection,Union,Intersection,difference,join等)、算术运算符(如加、减、乘、除等)、逻辑运算符(AND、BETWEEN、OR、EXISTS、IN、LIKE等)、比较运算符(大于、等于、小于、不等于等)、位运算符(左移、右移、补码、二进AND、二进制OR等);注1:可按运算符英文名称的字典顺序排列(如AND,BETWEEN,EXISTS,…),并对应到向量的不同维度中(向量第一维代表AND,第二维代表BETWEEN,依此类推)。注2:一个SQL语句很少会同时出现上述列举运算符,未出现则向量取值为0,可参6)的例子。
4)解析SQL语句获取表名和列名;
5)根据4)获取的表名和列名查询元数据信息,获取数据大小信息(如表记录数、列类型、列非空值行数);
6)根据SQL解析结果,将5)获取的数据大小信息对应到3)中所获取的运算符中,形成运算向量OP=(op1,op2,..opn)。例如op1操作表table_1的f1列,通过5)获取该列有值(非空)的有num_1个,则将num_1对应到op1。对op2,..opn做同样的操作,则运算向量取值为OP=(num_1,num_2,…num_n)。
以“select sum(f1),sum(f2)from table1”这个语句为例,通过3)可解析该语句获得运算符“sum”。通过4)可解析该语句获得表名”table1”,列名”f1”,”f2”。假设通过5)查得表table1的列f1总共有1000个数据,列f2有500个数据,则将形成(0,…,1500,…,0)这样的向量,“1500”出现在向量中的维度为3)注1所定义的顺序,该数值表示sum操作的数据量大小(即需要将列f1的1000个值进行累加运算,将列f2的500个值进行累加运算)。该语句没有其他运算符,所以向量其他维的值均为0。
7)以运行时间runtime为目标变量(因变量),以R,OP为预测变量(自变量),利用机器学习算法建立和训练预测模型runtime=f(R,OP)=f(r1,r2,r3,op1,op2,..opn)。
注:①建立预测模型的机器学习算法可以很多,如SVM,线性/非线性回归,人工神经网络、回归树等等,可选择预测准确度最高的。
②训练模型是确定模型参数的过程,以线性回归为例,其模型表达式为run_t=a1*r1+a2*r2+…an*opn,其中a1,a2,…an为模型参数,需要利用大量训练数据通过最小化损失函数(如误差平方)来确定这些参数取值。
③训练所需的数据,可从历史执行记录中依此执行1)-6)来获取。获取训练数据之后,执行7)即可确定模型参数,得到训练好的模型。
8)将训练好的预测模型生成服务(记为M),供实时预测系统调用。注:步骤1)至步骤7)为训练主要步骤,可在获取大量运行历史记录之后进行第一次训练。今后随着运行记录增加可重复训练模型,并部署到服务中去(步骤8)。
B:实时预测系统
1)应用程序提交SQL语句和资源向量值R;
2)实时预测系统解析SQL语句,执行A中的3)-6),获取操作向量值OP;
3)将资源向量值R和操作向量值OP通过服务接口送入训练好的预测模型M,得到预测执行时间;
4)将预测执行时间发送给决策系统。
C:决策实施阶段
1)决策系统的策略规则生成——可依据用户的偏好制定运行时间阈值(例如,运行时间如果超过2分钟,则采取批处理模式);
2)依据资源分配模式启动应用——将获取的预测时间代入1),获取资源分配模式,然后再以此模式执行SQL。同时将该时间反馈给应用程序。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

Claims (4)

1.一种基于SQL语句运行时间的资源分配的方法,其特征在于:包括如下步骤:
步骤1、收集SQL历史的执行记录ID、SQL语句以及运行时间runtime;
步骤2、根据执行记录ID获取该SQL语句执行时所分派的资源,形成资源向量R,解析SQL语句获取运算符、表名以及列名,根据表名以及列名查询元数据信息,获取数据信息,并将其对应至运算符,形成运算向量OP;
步骤3、以运行时间runtime为目标变量,R和OP为预测变量,利用机器学习算法建立预测模块,并训练预测模型;
步骤4、向训练好的预测模型提交SQL语句和资源向量值R,通过预测模型预测出所需执行时间;
步骤5、设定一运行时间阈值,将所述执行时间与阈值比较,若小于等于阈值,则资源分配模式采用交互模式,否则资源分配模式采用批处理模式。
2.根据权利要求1所述的一种基于SQL语句运行时间的资源分配的方法,其特征在于:所述步骤2中资源向量R包括Executor数、每个Executor的CPU核数以及MEM大小。
3.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:
步骤1、收集SQL历史的执行记录ID、SQL语句以及运行时间runtime;
步骤2、根据执行记录ID获取该SQL语句执行时所分派的资源,形成资源向量R,解析SQL语句获取运算符、表名以及列名,根据表名以及列名查询元数据信息,获取数据信息,并将其对应至运算符,形成运算向量OP;
步骤3、以运行时间runtime为目标变量,R和OP为预测变量,利用机器学习算法建立预测模块,并训练预测模型;
步骤4、向训练好的预测模型提交SQL语句和资源向量值R,通过预测模型预测出所需执行时间;
步骤5、设定一运行时间阈值,将所述执行时间与阈值比较,若小于等于阈值,则资源分配模式采用交互模式,否则资源分配模式采用批处理模式。
4.根据权利要求3所述的一种计算机设备,其特征在于:所述步骤2中资源向量R包括Executor数、每个Executor的CPU核数以及MEM大小。
CN201711440945.5A 2017-12-27 2017-12-27 基于sql语句运行时间的资源分配的方法及计算机设备 Active CN108052394B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711440945.5A CN108052394B (zh) 2017-12-27 2017-12-27 基于sql语句运行时间的资源分配的方法及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711440945.5A CN108052394B (zh) 2017-12-27 2017-12-27 基于sql语句运行时间的资源分配的方法及计算机设备

Publications (2)

Publication Number Publication Date
CN108052394A CN108052394A (zh) 2018-05-18
CN108052394B true CN108052394B (zh) 2021-11-30

Family

ID=62128281

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711440945.5A Active CN108052394B (zh) 2017-12-27 2017-12-27 基于sql语句运行时间的资源分配的方法及计算机设备

Country Status (1)

Country Link
CN (1) CN108052394B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6781191B2 (ja) * 2018-05-24 2020-11-04 ファナック株式会社 プログラマブルコントローラ及び機械学習装置
CN108763563A (zh) * 2018-06-04 2018-11-06 深圳市华傲数据技术有限公司 一种数据库查询方法、介质及设备
CN109324905B (zh) * 2018-09-30 2021-03-30 拉卡拉支付股份有限公司 数据库操作方法、装置、电子设备及存储介质
CN109460296B (zh) * 2018-10-23 2019-12-27 中科驭数(北京)科技有限公司 一种处理器的资源分配方法、装置和存储介质
CN110162672B (zh) * 2019-05-10 2021-07-27 上海赜睿信息科技有限公司 数据处理方法及装置、电子设备和可读存储介质
CN110956499B (zh) * 2019-11-27 2023-04-07 掌阅科技股份有限公司 页面展现方法、计算设备及计算机存储介质
CN111046059B (zh) * 2019-12-09 2023-06-30 中国建设银行股份有限公司 基于分布式数据库集群的低效sql语句分析方法及系统
CN111984630A (zh) * 2020-09-01 2020-11-24 深圳壹账通智能科技有限公司 日志关联方法、装置和计算机设备
CN112380237B (zh) * 2020-11-13 2024-03-01 深圳市兴海物联科技有限公司 数据库隐患sql的预测方法、装置、终端及存储介质
CN112783747A (zh) * 2021-02-09 2021-05-11 中国工商银行股份有限公司 一种应用程序的执行时间预测方法及装置
CN112948356B (zh) * 2021-03-10 2023-03-21 河海大学 一种基于资源感知的时间序列数据库可用性增强机制的构建方法
CN113177060B (zh) * 2021-05-25 2024-02-27 中国工商银行股份有限公司 一种管理sql语句的方法、装置及设备

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7539667B2 (en) * 2004-11-05 2009-05-26 International Business Machines Corporation Method, system and program for executing a query having a union operator
US8661024B2 (en) * 2010-01-21 2014-02-25 Oracle International Corporation Database query resource management using select statement condition
CN103092867B (zh) * 2011-11-03 2017-02-01 中国移动通信集团甘肃有限公司 一种数据管理方法及系统、数据分析装置
US8874548B2 (en) * 2012-02-27 2014-10-28 Nec Laboratories America, Inc. Predicting query execution time
CN102945256B (zh) * 2012-10-18 2016-02-03 福建省海峡信息技术有限公司 海量sql语句合并归类的方法及装置
CN103399851B (zh) * 2013-06-25 2017-02-08 上海携程商务有限公司 一种结构化查询语言(sql)脚本的性能分析与预测方法与系统
CN104820663A (zh) * 2014-01-30 2015-08-05 西门子公司 发现低性能的sql语句以及预测sql语句性能的方法和装置
CN104008007B (zh) * 2014-06-12 2018-06-01 深圳先进技术研究院 基于流式计算和批处理计算的互操作数据处理系统及方法
US9575536B2 (en) * 2014-08-22 2017-02-21 Intel Corporation Methods and apparatus to estimate power performance of a job that runs on multiple nodes of a distributed computer system
CN104834561B (zh) * 2015-04-29 2018-01-19 华为技术有限公司 一种数据处理方法及装置
CN106991322A (zh) * 2016-01-21 2017-07-28 北京启明星辰信息安全技术有限公司 一种结构化查询语言sql注入攻击的检测方法和装置
CN105868019B (zh) * 2016-02-01 2019-05-21 中国科学院大学 一种Spark平台性能自动优化方法
CN107168870B (zh) * 2017-04-28 2021-10-29 福建星瑞格软件有限公司 一种运行时程序信息获取方法

Also Published As

Publication number Publication date
CN108052394A (zh) 2018-05-18

Similar Documents

Publication Publication Date Title
CN108052394B (zh) 基于sql语句运行时间的资源分配的方法及计算机设备
Auer et al. Optimal project feature weights in analogy-based cost estimation: Improvement and limitations
CN108958721B (zh) 一种智能化持续集成与持续部署流水线方法及系统
US20090187534A1 (en) Transaction prediction modeling method
US20220405641A1 (en) Method for recommending information, recommendation server, and storage medium
US10013656B1 (en) Methods and apparatus for analytical processing of provenance data for HPC workflow optimization
US10402300B2 (en) System, controller, method, and program for executing simulation jobs
KR102299744B1 (ko) 지식 그래프 중의 데이터 모델을 획득하는 방법, 장치, 기기 및 저장 매체
EP3961413A1 (en) Method and device for determining database configuration parameters
CN110134738B (zh) 分布式存储系统资源预估方法、装置
CN113157421B (zh) 一种基于用户作业流程的分布式集群资源调度方法
CN110825522A (zh) Spark参数自适应优化方法及系统
JP2023545765A (ja) データベース管理システムのための学習ベースのワークロードリソース最適化
Benelallam et al. Efficient model partitioning for distributed model transformations
Lee et al. Patch reviewer recommendation in oss projects
CN115147020B (zh) 装修数据处理方法、装置、设备及存储介质
CN113434273B (zh) 数据处理方法、装置、系统及存储介质
CN112817560B (zh) 一种基于表函数的计算任务处理方法、系统及计算机可读存储介质
CN115686995A (zh) 一种数据监控处理方法及装置
CN114185938A (zh) 基于数字金融及大数据溯源的项目溯源分析方法及系统
CN110895529B (zh) 结构化查询语言的处理方法及相关装置
CN114610590A (zh) 作业运行时长确定方法、装置、设备及存储介质
KR102304321B1 (ko) 시뮬레이션 실행 시간 예측 장치 및 예측 방법
Bohlouli et al. Grid-HPA: Predicting resource requirements of a job in the grid computing environment
CN112860726A (zh) 结构化查询语句分类模型训练方法和装置

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 350000 21 / F, building 5, f District, Fuzhou Software Park, 89 software Avenue, Gulou District, Fuzhou City, Fujian Province

Applicant after: FUJIAN SINOREGAL SOFTWARE Co.,Ltd.

Address before: Floor 20-21, building 5, area F, Fuzhou Software Park, 89 software Avenue, Gulou District, Fuzhou City, Fujian Province 350000

Applicant before: FUJIAN SINOREGAL SOFTWARE Co.,Ltd.

GR01 Patent grant
GR01 Patent grant