CN113449037B - 基于ai的sql引擎调用方法、装置、设备及介质 - Google Patents
基于ai的sql引擎调用方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN113449037B CN113449037B CN202110725749.2A CN202110725749A CN113449037B CN 113449037 B CN113449037 B CN 113449037B CN 202110725749 A CN202110725749 A CN 202110725749A CN 113449037 B CN113449037 B CN 113449037B
- Authority
- CN
- China
- Prior art keywords
- sql
- query
- historical
- engine
- target
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000012549 training Methods 0.000 claims abstract description 98
- 230000007613 environmental effect Effects 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims description 42
- 238000013528 artificial neural network Methods 0.000 claims description 32
- 238000005457 optimization Methods 0.000 claims description 27
- 230000002159 abnormal effect Effects 0.000 claims description 22
- 238000012795 verification Methods 0.000 claims description 12
- 238000010606 normalization Methods 0.000 claims description 9
- 238000010276 construction Methods 0.000 claims description 5
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000000605 extraction Methods 0.000 claims description 4
- 238000010200 validation analysis Methods 0.000 claims description 4
- 238000013473 artificial intelligence Methods 0.000 abstract description 42
- 238000004364 calculation method Methods 0.000 abstract description 6
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000004590 computer program Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000012423 maintenance Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 239000000284 extract Substances 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 241000282813 Aepyceros melampus Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Abstract
本发明涉及人工智能及大数据领域,提供一种基于AI的SQL引擎调用方法、装置、设备及介质,能够对历史SQL特征及历史环境特征进行归一化处理,得到历史特征,通过编码将特征转化为机器语言,便于后续模型的训练,训练SQL引擎预测模型,优化待预测query的执行计划,使待预测query的执行更加快速,提高了运行效率,构建目标query的目标特征并输入至SQL引擎预测模型以确定与待预测query匹配的目标引擎,进而基于训练的AI模型对提交的待预测query查询执行进行自动管理,无需人工介入,用户不再需要了解各个大数据引擎的特性并做出选择,直接由训练得到的AI模型自动推荐,以辅助选择合适的计算引擎。此外,本发明还涉及区块链技术,训练得到的模型可存储于区块链节点中。
Description
技术领域
本发明涉及人工智能及大数据技术领域,尤其涉及一种基于AI的SQL引擎调用方法、装置、设备及介质。
背景技术
大数据生态有很多种不同的计算引擎,比如hive,sparksql,impala,presto等。不同的引擎有自己的特点,有的引擎稳定性高,但是执行速度慢。有的引擎速度快,但是消耗资源多,且容错性差。有的引擎支持高并发,资源隔离。有的引擎不支持资源隔离,一个badquery会导致整个引擎crash。一般的使用者很难准确把握这些大数据引擎的特点,往往使用不当,对自己的业务和整个大数据集群造成影响。
发明内容
鉴于以上内容,有必要提供一种基于AI的SQL引擎调用方法、装置、设备及介质,能够基于训练的AI模型对提交的待预测query查询执行进行自动管理,无需人工介入,用户不再需要了解各个大数据引擎的特性并做出选择,直接由训练得到的AI模型自动推荐,以辅助选择合适的计算引擎。
一种基于AI的SQL引擎调用方法,所述基于AI的SQL引擎调用方法包括:
获取历史SQL的执行数据,及获取执行所述历史SQL的集群;
解析所述历史SQL的执行数据,得到历史SQL特征;
提取所述历史SQL的集群的集群环境指标,得到历史环境特征;
对所述历史SQL特征及所述历史环境特征进行归一化处理,得到历史特征;
根据所述历史SQL的执行数据对所述历史特征进行标签处理,得到样本数据;
利用所述样本数据训练指定神经网络,得到SQL引擎预测模型;
响应于待预测query,对所述待预测query进行优化处理,得到目标query;
获取所述目标query的执行数据及执行所述目标query的集群,并根据所述目标query的执行数据及执行所述目标query的集群构建所述目标query的目标特征;
将所述目标特征输入至所述SQL引擎预测模型,并根据所述SQL引擎预测模型的输出确定与所述待预测query匹配的目标引擎。
根据本发明优选实施例,所述对所述历史SQL特征及所述历史环境特征进行归一化处理,得到历史特征包括:
拼接所述历史SQL特征及所述历史环境特征,得到拼接特征;
识别所述拼接特征中的数字特征及非数字特征;
对所述非数字特征进行编码处理,得到所述非数字特征的编码表示;
保持所述数字特征不变,并将所述非数字特征替换为所述非数字特征的编码表示,得到所述历史特征。
根据本发明优选实施例,所述利用所述样本数据训练指定神经网络,得到SQL引擎预测模型包括:
重复执行对所述样本数据的拆分,其中,对所述样本数据的拆分包括:将所述样本数据按照配置比例随机拆分为验证集及训练集,并将所述验证集及所述训练集确定为一组训练数据;
直至所述样本数据中的每个数据都曾作为所述验证集中的数据,及所述样本数据中的每个数据都曾作为所述训练集中的数据,停止执行对所述样本数据的拆分,得到多组训练数据;
将每组训练数据的训练集中的标签确定为训练目标,并利用每组训练数据的训练集训练所述指定神经网络;
采用每组训练数据的验证集验证所述指定神经网络;
当每组训练数据都曾被用于训练所述指定神经网络时,停止训练,得到所述SQL引擎预测模型。
根据本发明优选实施例,所述对所述待预测query进行优化处理,得到目标query包括:
启动优化模型,将所述待预测query输入至所述优化模型,并获取所述优化模型的输出作为所述待预测query的表关联方式,及对所述待预测query进行谓词上推,得到所述目标query。
根据本发明优选实施例,所述根据所述SQL引擎预测模型的输出确定与所述待预测query匹配的目标引擎包括:
从所述SQL引擎预测模型的输出中获取所述待预测query消耗的预测CPU、所述待预测query占用的预测内存及所述待预测query的预测SQL引擎;
获取所述预测SQL引擎的当前资源承载量;
根据所述预测CPU及所述预测内存确定所述待预测query所需的实际资源承载量;
当所述实际资源承载量小于或者等于所述当前资源承载量时,将所述预测SQL引擎确定为所述目标引擎。
根据本发明优选实施例,所述方法还包括:
当所述实际资源承载量大于所述当前资源承载量时,获取所述预测SQL引擎的状态数据;
当所述状态数据显示所述预测SQL引擎运行异常时,启动备用引擎作为所述目标引擎;或者
当所述状态数据显示所述预测SQL引擎运行正常时,将所述目标query添加至预先建立的等待队列中,直至所述预测SQL引擎的所述当前资源承载量被释放至大于或者等于所述实际资源承载量,从所述等待队列中移出所述目标query,并将所述预测SQL引擎确定为所述目标引擎。
根据本发明优选实施例,在根据所述SQL引擎预测模型的输出确定与所述待预测query匹配的目标引擎后,所述方法还包括:
调用执行所述目标query的集群的目标API接口;
通过所述目标API接口读取所述目标引擎对所述目标query的实时运行状态,并显示所述实时运行状态;
当所述实时运行状态显示当前占用的内存大于内存阈值时,使用kill命令处理所述目标query;及/或
当所述实时运行状态显示当前消耗的CPU大于CPU阈值时,降低所述目标引擎的CPU数量阈值;及/或
当所述实时运行状态显示所述目标query的执行时间大于执行时间阈值时,生成异常告警信息,并显示所述异常告警信息。
一种基于AI的SQL引擎调用装置,所述基于AI的SQL引擎调用装置包括:
获取单元,用于获取历史SQL的执行数据,及获取执行所述历史SQL的集群;
解析单元,用于解析所述历史SQL的执行数据,得到历史SQL特征;
提取单元,用于提取所述历史SQL的集群的集群环境指标,得到历史环境特征;
归一化单元,用于对所述历史SQL特征及所述历史环境特征进行归一化处理,得到历史特征;
标签单元,用于根据所述历史SQL的执行数据对所述历史特征进行标签处理,得到样本数据;
训练单元,用于利用所述样本数据训练指定神经网络,得到SQL引擎预测模型;
优化单元,用于响应于待预测query,对所述待预测query进行优化处理,得到目标query;
构建单元,用于获取所述目标query的执行数据及执行所述目标query的集群,并根据所述目标query的执行数据及执行所述目标query的集群构建所述目标query的目标特征;
确定单元,用于将所述目标特征输入至所述SQL引擎预测模型,并根据所述SQL引擎预测模型的输出确定与所述待预测query匹配的目标引擎。
一种计算机设备,所述计算机设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现所述基于AI的SQL引擎调用方法。
一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被计算机设备中的处理器执行以实现所述基于AI的SQL引擎调用方法。
由以上技术方案可以看出,本发明能够获取历史SQL的执行数据,及获取执行所述历史SQL的集群,解析所述历史SQL的执行数据,得到历史SQL特征,提取所述历史SQL的集群的集群环境指标,得到历史环境特征,对所述历史SQL特征及所述历史环境特征进行归一化处理,得到历史特征,通过编码将特征转化为机器语言,便于后续模型的训练,根据所述历史SQL的执行数据对所述历史特征进行标签处理,得到样本数据,利用所述样本数据训练指定神经网络,得到SQL引擎预测模型,响应于待预测query,对所述待预测query进行优化处理,得到目标query,优化了所述待预测query的执行计划,使所述待预测query的执行更加快速,提高了运行效率,获取所述目标query的执行数据及执行所述目标query的集群,并根据所述目标query的执行数据及执行所述目标query的集群构建所述目标query的目标特征,将所述目标特征输入至所述SQL引擎预测模型,并根据所述SQL引擎预测模型的输出确定与所述待预测query匹配的目标引擎,进而基于训练的AI模型对提交的待预测query查询执行进行自动管理,无需人工介入,用户不再需要了解各个大数据引擎的特性并做出选择,直接由训练得到的AI模型自动推荐,以辅助选择合适的计算引擎。
附图说明
图1是本发明基于AI的SQL引擎调用方法的较佳实施例的流程图。
图2是本发明基于AI的SQL引擎调用装置的较佳实施例的功能模块图。
图3是本发明实现基于AI的SQL引擎调用方法的较佳实施例的计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
如图1所示,是本发明基于AI的SQL引擎调用方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
所述基于AI的SQL引擎调用方法应用于一个或者多个计算机设备中,所述计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific IntegratedCircuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(Internet Protocol Television,IPTV)、智能式穿戴式设备等。
所述计算机设备还可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(CloudComputing)的由大量主机或网络服务器构成的云。
所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
S10,获取历史SQL(Structured Query Language,结构化查询语言)的执行数据,及获取执行所述历史SQL的集群。
在本发明的至少一个实施例中,所述历史SQL是指历史运行的query的SQL脚本。进一步地,调用适合的SQL引擎执行query的查询。
在本实施例中,所述历史SQL的执行数据包括,但不限于以下一种或者多种数据的组合:
执行时间、stage数量、扫描底层数据大小、记录条数、join方式和数量。
在本发明的至少一个实施例中,所述历史SQL的集群可以包括支持所述历史SQL的执行的hadoop集群。
S11,解析所述历史SQL的执行数据,得到历史SQL特征。
在本发明的至少一个实施例中,所述解析所述历史SQL的执行数据,得到历史SQL特征包括:
启动SQL解析器,并利用所述SQL解析器解析所述历史SQL的执行数据;
获取解析所述历史SQL的执行数据后得到的目标信息;
组合所述目标信息,得到所述历史SQL特征。
其中,所述目标信息包括,但不限于以下一种或者多种信息的组合:
stage数量,扫描底层数据大小,记录条数,join方式和数量,内存使用率,所用表的表名、表的大小、表的字段等表统计信息。
通过上述实施方式,能够基于SQL解析器自动且快速地解析所述历史SQL的执行数据。
S12,提取所述历史SQL的集群的集群环境指标,得到历史环境特征。
在本发明的至少一个实施例中,所述提取所述历史SQL的集群的集群环境指标,得到历史环境特征包括:
获取所述历史SQL的集群的API接口(Application Programming Interface,应用程序接口);
通过所述API接口读取所述历史SQL的集群的所述集群环境指标,并作为所述历史环境特征。
其中,所述集群环境指标包括,但不限于以下一种或者多种信息的组合:
正在运行的任务数、建立的连接数、CPU使用率。
通过上述实施方式,能够基于API接口自动且快速地读取所述历史SQL的集群的集群环境指标。
S13,对所述历史SQL特征及所述历史环境特征进行归一化处理,得到历史特征。
可以理解的是,为了使机器能够识别特征,还需要将特征转化为机器语言。
在本发明的至少一个实施例中,所述对所述历史SQL特征及所述历史环境特征进行归一化处理,得到历史特征包括:
拼接所述历史SQL特征及所述历史环境特征,得到拼接特征;
识别所述拼接特征中的数字特征及非数字特征;
对所述非数字特征进行编码处理,得到所述非数字特征的编码表示;
保持所述数字特征不变,并将所述非数字特征替换为所述非数字特征的编码表示,得到所述历史特征。
例如:当所述历史SQL特征中的所述记录条数为100时,100为数字特征,由于保持数字特征不变,则直接将100作为所述历史特征的元素;而对于非数字特征,如表名,则对表名进行编码处理,并将编码处理后得到的向量作为所述表名的替换特征。
在本实施例中,可以采用one-hot编码对所述非数字特征进行编码处理。
在本实施例中,可以随机拼接所述历史SQL特征及所述历史环境特征,本发明对拼接方式不做限制。
通过上述实施方式,能够通过编码对所述历史SQL特征及所述历史环境特征进行归一化处理,进而将特征转化为机器语言,便于后续模型的训练。
S14,根据所述历史SQL的执行数据对所述历史特征进行标签处理,得到样本数据。
在本发明的至少一个实施例中,在根据所述历史SQL的执行数据对所述历史特征进行标签处理时,从所述历史SQL的执行数据中获取query的SQL脚本的实际执行时间、消耗的CPU(central processing unit,中央处理器),占用的内存及根据历史执行数据能够确定的最优执行SQL大数据引擎。
根据所述query的SQL脚本的实际执行时间、所述消耗的CPU,所述占用的内存及根据历史执行数据能够确定的所述最优执行引擎对所述历史特征进行标签处理,得到所述样本数据。
S15,利用所述样本数据训练指定神经网络,得到SQL引擎预测模型。
在本发明的至少一个实施例中,所述利用所述样本数据训练指定神经网络,得到SQL引擎预测模型包括:
重复执行对所述样本数据的拆分,其中,对所述样本数据的拆分包括:将所述样本数据按照配置比例随机拆分为验证集及训练集,并将所述验证集及所述训练集确定为一组训练数据;
直至所述样本数据中的每个数据都曾作为所述验证集中的数据,及所述样本数据中的每个数据都曾作为所述训练集中的数据,停止执行对所述样本数据的拆分,得到多组训练数据;
将每组训练数据的训练集中的标签确定为训练目标,并利用每组训练数据的训练集训练所述指定神经网络;
采用每组训练数据的验证集验证所述指定神经网络;
当每组训练数据都曾被用于训练所述指定神经网络时,停止训练,得到所述SQL引擎预测模型。
其中,所述配置比例可以进行自定义配置,如5:3等。
所述指定神经网络可以为具有预测功能的任意神经网络,如:卷积神经网络,本发明不限制。
在上述实施方式中,通过对样本数据的不断循环拆分,能够在数据量有限的情况下充分利用每个数据训练模型,保证了模型的训练效果,进而提高了模型预测的准确性。
当然,在其他实施方式中,也可以每拆分一次就执行一次训练,这样通过多次循环不断地拆分及训练,直至所述指定神经网络的预测准确度达到要求,即可停止训练,得到所述SQL引擎预测模型。
S16,响应于待预测query,对所述待预测query进行优化处理,得到目标query。
其中,所述待预测query可以由用户上传,例如:当用户想要查询一个问题时,输入的问题即可作为所述待预测query。
在本发明的至少一个实施例中,所述对所述待预测query进行优化处理,得到目标query包括:
启动优化模型,将所述待预测query输入至所述优化模型,并获取所述优化模型的输出作为所述待预测query的表关联方式,及对所述待预测query进行谓词上推,得到所述目标query。
在本实施例中,所述优化模型是指根据经验配置的每种query的最优表关联方式。
因此,当将所述待预测query输入至所述优化模型后,所述优化模型即可通过匹配计算,输出所述待预测query的最佳的表关联方式。
进一步地,通过对所述待预测query进行谓词上推,能够将所述待预测query自动上推谓词至最贴近的表中。
通过上述实施方式,优化了所述待预测query的执行计划,使所述待预测query的执行更加快速,提高了运行效率。
S17,获取所述目标query的执行数据及执行所述目标query的集群,并根据所述目标query的执行数据及执行所述目标query的集群构建所述目标query的目标特征。
需要说明的是,本实施例中根据所述目标query的执行数据及执行所述目标query的集群构建所述目标query的目标特征的方式与前文构建所述历史特征的方式类似,在此不赘述。
S18,将所述目标特征输入至所述SQL引擎预测模型,并根据所述SQL引擎预测模型的输出确定与所述待预测query匹配的目标引擎。
在本发明的至少一个实施例中,所述根据所述SQL引擎预测模型的输出确定与所述待预测query匹配的目标引擎包括:
从所述SQL引擎预测模型的输出中获取所述待预测query消耗的预测CPU、所述待预测query占用的预测内存及所述待预测query的预测SQL引擎;
获取所述预测SQL引擎的当前资源承载量;
根据所述预测CPU及所述预测内存确定所述待预测query所需的实际资源承载量;
当所述实际资源承载量小于或者等于所述当前资源承载量时,将所述预测SQL引擎确定为所述目标引擎。
通过上述实施方式,能够基于训练的AI(Artificial Intelligence,人工智能)模型对提交的待预测query查询执行进行自动管理,无需人工介入,用户不再需要了解各个大数据引擎的特性并做出选择,直接由训练得到的AI模型自动推荐,以辅助选择合适的计算引擎。
进一步地,所述方法还包括:
当所述实际资源承载量大于所述当前资源承载量时,获取所述预测SQL引擎的状态数据;
当所述状态数据显示所述预测SQL引擎运行异常时,启动备用引擎作为所述目标引擎;或者
当所述状态数据显示所述预测SQL引擎运行正常时,将所述目标query添加至预先建立的等待队列中,直至所述预测SQL引擎的所述当前资源承载量被释放至大于或者等于所述实际资源承载量,从所述等待队列中移出所述目标query,并将所述预测SQL引擎确定为所述目标引擎。
在上述实施方式中,所述预测SQL引擎运行异常包括,但不限于:所述预测SQL引擎挂机、所述预测SQL引擎崩溃等情况。
此时,由于所述预测SQL引擎无法正常运行,因此,启动备用引擎代替所述预测SQL引擎,以保证正常运行。
并且,当所述状态数据显示所述预测SQL引擎运行正常时,说明所述预测SQL引擎时能够正常工作的,只是当前被其他任务占用,因此,可以等待所述预测SQL引擎释放了资源后再提交所述目标query,进一步确保了正常运行。
在本发明的至少一个实施例中,在根据所述SQL引擎预测模型的输出确定与所述待预测query匹配的目标引擎后,所述方法还包括:
调用执行所述目标query的集群的目标API接口;
通过所述目标API接口读取所述目标引擎对所述目标query的实时运行状态,并显示所述实时运行状态;
当所述实时运行状态显示当前占用的内存大于内存阈值时,使用kill命令处理所述目标query;及/或
当所述实时运行状态显示当前消耗的CPU大于CPU阈值时,降低所述目标引擎的CPU数量阈值;及/或
当所述实时运行状态显示所述目标query的执行时间大于执行时间阈值时,生成异常告警信息,并显示所述异常告警信息。
其中,所述内存阈值、所述CPU数量阈值及所述执行时间阈值可以进行自定义配置,本发明不限制。
其中,所述CPU数量阈值是指所述目标引擎能够同时运行的最大CPU数量,通过降低所述目标引擎的CPU数量阈值,能够限制当前运行的CPU数量,也就能够进一步避免CPU消耗过高的情况发生。
在上述实施方式中,通过实时采集并显示运行状态,能够使运行信息更加直观化,便于相关工作人员实时查看并处理,同时,在运行异常时,同时结合了自动处理与人工处理,以提高异常处理效率,进而实现有效的大数据资源利用,帮助运维保持大数据平台的稳定性。
当然,在其他实施例中,当所述实时运行状态显示当前消耗的CPU大于实时CPU阈值,或者当所述实时运行状态显示当前消耗的CPU大于实时CPU阈值时,也可以同步显示异常的告警信息,以提示相关运维人员及时跟进。
当所述实时运行状态显示所述目标query的执行时间大于所述执行时间阈值时,由于可能由多种原因导致执行超时,并不能简单的进行自动处理,因此,需要生成所述异常告警信息以提示尽快处理。另外,在生成所述异常告警信息的同时,还可以附带可能造成所述运行时间超时的原因及可能的处理方式,以供相关人员查看,进而辅助相关人员进行更加搞笑的运维。
例如:造成运行超时的原因可能包括数据量过大,则在所述异常告警信息中可以显示:可能的原因为数据量过大,建议解决方式为剪裁数据。
需要说明的是,为了进一步提高数据的安全性,避免数据被恶意篡改,训练得到的模型可存储于区块链节点中。
由以上技术方案可以看出,本发明能够获取历史SQL的执行数据,及获取执行所述历史SQL的集群,解析所述历史SQL的执行数据,得到历史SQL特征,提取所述历史SQL的集群的集群环境指标,得到历史环境特征,对所述历史SQL特征及所述历史环境特征进行归一化处理,得到历史特征,通过编码将特征转化为机器语言,便于后续模型的训练,根据所述历史SQL的执行数据对所述历史特征进行标签处理,得到样本数据,利用所述样本数据训练指定神经网络,得到SQL引擎预测模型,响应于待预测query,对所述待预测query进行优化处理,得到目标query,优化了所述待预测query的执行计划,使所述待预测query的执行更加快速,提高了运行效率,获取所述目标query的执行数据及执行所述目标query的集群,并根据所述目标query的执行数据及执行所述目标query的集群构建所述目标query的目标特征,将所述目标特征输入至所述SQL引擎预测模型,并根据所述SQL引擎预测模型的输出确定与所述待预测query匹配的目标引擎,进而基于训练的AI模型对提交的待预测query查询执行进行自动管理,无需人工介入,用户不再需要了解各个大数据引擎的特性并做出选择,直接由训练得到的AI模型自动推荐,以辅助选择合适的计算引擎。
如图2所示,是本发明基于AI的SQL引擎调用装置的较佳实施例的功能模块图。所述基于AI的SQL引擎调用装置11包括获取单元110、解析单元111、提取单元112、归一化单元113、标签单元114、训练单元115、优化单元116、构建单元117、确定单元118。本发明所称的模块/单元是指一种能够被处理器13所执行,并且能够完成固定功能的一系列计算机程序段,其存储在存储器12中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。
获取单元110获取历史SQL(Structured Query Language,结构化查询语言)的执行数据,及获取执行所述历史SQL的集群。
在本发明的至少一个实施例中,所述历史SQL是指历史运行的query的SQL脚本。进一步地,调用适合的SQL引擎执行query的查询。
在本实施例中,所述历史SQL的执行数据包括,但不限于以下一种或者多种数据的组合:
执行时间、stage数量、扫描底层数据大小、记录条数、join方式和数量。
在本发明的至少一个实施例中,所述历史SQL的集群可以包括支持所述历史SQL的执行的hadoop集群。
解析单元111解析所述历史SQL的执行数据,得到历史SQL特征。
在本发明的至少一个实施例中,所述解析单元111解析所述历史SQL的执行数据,得到历史SQL特征包括:
启动SQL解析器,并利用所述SQL解析器解析所述历史SQL的执行数据;
获取解析所述历史SQL的执行数据后得到的目标信息;
组合所述目标信息,得到所述历史SQL特征。
其中,所述目标信息包括,但不限于以下一种或者多种信息的组合:
stage数量,扫描底层数据大小,记录条数,join方式和数量,内存使用率,所用表的表名、表的大小、表的字段等表统计信息。
通过上述实施方式,能够基于SQL解析器自动且快速地解析所述历史SQL的执行数据。
提取单元112提取所述历史SQL的集群的集群环境指标,得到历史环境特征。
在本发明的至少一个实施例中,所述提取单元112提取所述历史SQL的集群的集群环境指标,得到历史环境特征包括:
获取所述历史SQL的集群的API接口(Application Programming Interface,应用程序接口);
通过所述API接口读取所述历史SQL的集群的所述集群环境指标,并作为所述历史环境特征。
其中,所述集群环境指标包括,但不限于以下一种或者多种信息的组合:
正在运行的任务数、建立的连接数、CPU使用率。
通过上述实施方式,能够基于API接口自动且快速地读取所述历史SQL的集群的集群环境指标。
归一化单元113对所述历史SQL特征及所述历史环境特征进行归一化处理,得到历史特征。
可以理解的是,为了使机器能够识别特征,还需要将特征转化为机器语言。
在本发明的至少一个实施例中,所述归一化单元113对所述历史SQL特征及所述历史环境特征进行归一化处理,得到历史特征包括:
拼接所述历史SQL特征及所述历史环境特征,得到拼接特征;
识别所述拼接特征中的数字特征及非数字特征;
对所述非数字特征进行编码处理,得到所述非数字特征的编码表示;
保持所述数字特征不变,并将所述非数字特征替换为所述非数字特征的编码表示,得到所述历史特征。
例如:当所述历史SQL特征中的所述记录条数为100时,100为数字特征,由于保持数字特征不变,则直接将100作为所述历史特征的元素;而对于非数字特征,如表名,则对表名进行编码处理,并将编码处理后得到的向量作为所述表名的替换特征。
在本实施例中,可以采用one-hot编码对所述非数字特征进行编码处理。
在本实施例中,可以随机拼接所述历史SQL特征及所述历史环境特征,本发明对拼接方式不做限制。
通过上述实施方式,能够通过编码对所述历史SQL特征及所述历史环境特征进行归一化处理,进而将特征转化为机器语言,便于后续模型的训练。
标签单元114根据所述历史SQL的执行数据对所述历史特征进行标签处理,得到样本数据。
在本发明的至少一个实施例中,在根据所述历史SQL的执行数据对所述历史特征进行标签处理时,从所述历史SQL的执行数据中获取query的SQL脚本的实际执行时间、消耗的CPU(central processing unit,中央处理器),占用的内存及根据历史执行数据能够确定的最优执行SQL大数据引擎。
根据所述query的SQL脚本的实际执行时间、所述消耗的CPU,所述占用的内存及根据历史执行数据能够确定的所述最优执行引擎对所述历史特征进行标签处理,得到所述样本数据。
训练单元115利用所述样本数据训练指定神经网络,得到SQL引擎预测模型。
在本发明的至少一个实施例中,所述训练单元115利用所述样本数据训练指定神经网络,得到SQL引擎预测模型包括:
重复执行对所述样本数据的拆分,其中,对所述样本数据的拆分包括:将所述样本数据按照配置比例随机拆分为验证集及训练集,并将所述验证集及所述训练集确定为一组训练数据;
直至所述样本数据中的每个数据都曾作为所述验证集中的数据,及所述样本数据中的每个数据都曾作为所述训练集中的数据,停止执行对所述样本数据的拆分,得到多组训练数据;
将每组训练数据的训练集中的标签确定为训练目标,并利用每组训练数据的训练集训练所述指定神经网络;
采用每组训练数据的验证集验证所述指定神经网络;
当每组训练数据都曾被用于训练所述指定神经网络时,停止训练,得到所述SQL引擎预测模型。
其中,所述配置比例可以进行自定义配置,如5:3等。
所述指定神经网络可以为具有预测功能的任意神经网络,如:卷积神经网络,本发明不限制。
在上述实施方式中,通过对样本数据的不断循环拆分,能够在数据量有限的情况下充分利用每个数据训练模型,保证了模型的训练效果,进而提高了模型预测的准确性。
当然,在其他实施方式中,也可以每拆分一次就执行一次训练,这样通过多次循环不断地拆分及训练,直至所述指定神经网络的预测准确度达到要求,即可停止训练,得到所述SQL引擎预测模型。
响应于待预测query,优化单元116对所述待预测query进行优化处理,得到目标query。
其中,所述待预测query可以由用户上传,例如:当用户想要查询一个问题时,输入的问题即可作为所述待预测query。
在本发明的至少一个实施例中,所述优化单元116对所述待预测query进行优化处理,得到目标query包括:
启动优化模型,将所述待预测query输入至所述优化模型,并获取所述优化模型的输出作为所述待预测query的表关联方式,及对所述待预测query进行谓词上推,得到所述目标query。
在本实施例中,所述优化模型是指根据经验配置的每种query的最优表关联方式。
因此,当将所述待预测query输入至所述优化模型后,所述优化模型即可通过匹配计算,输出所述待预测query的最佳的表关联方式。
进一步地,通过对所述待预测query进行谓词上推,能够将所述待预测query自动上推谓词至最贴近的表中。
通过上述实施方式,优化了所述待预测query的执行计划,使所述待预测query的执行更加快速,提高了运行效率。
构建单元117获取所述目标query的执行数据及执行所述目标query的集群,并根据所述目标query的执行数据及执行所述目标query的集群构建所述目标query的目标特征。
需要说明的是,本实施例中根据所述目标query的执行数据及执行所述目标query的集群构建所述目标query的目标特征的方式与前文构建所述历史特征的方式类似,在此不赘述。
确定单元118将所述目标特征输入至所述SQL引擎预测模型,并根据所述SQL引擎预测模型的输出确定与所述待预测query匹配的目标引擎。
在本发明的至少一个实施例中,所述确定单元118根据所述SQL引擎预测模型的输出确定与所述待预测query匹配的目标引擎包括:
从所述SQL引擎预测模型的输出中获取所述待预测query消耗的预测CPU、所述待预测query占用的预测内存及所述待预测query的预测SQL引擎;
获取所述预测SQL引擎的当前资源承载量;
根据所述预测CPU及所述预测内存确定所述待预测query所需的实际资源承载量;
当所述实际资源承载量小于或者等于所述当前资源承载量时,将所述预测SQL引擎确定为所述目标引擎。
通过上述实施方式,能够基于训练的AI(Artificial Intelligence,人工智能)模型对提交的待预测query查询执行进行自动管理,无需人工介入,用户不再需要了解各个大数据引擎的特性并做出选择,直接由训练得到的AI模型自动推荐,以辅助选择合适的计算引擎。
进一步地,当所述实际资源承载量大于所述当前资源承载量时,获取所述预测SQL引擎的状态数据;
当所述状态数据显示所述预测SQL引擎运行异常时,启动备用引擎作为所述目标引擎;或者
当所述状态数据显示所述预测SQL引擎运行正常时,将所述目标query添加至预先建立的等待队列中,直至所述预测SQL引擎的所述当前资源承载量被释放至大于或者等于所述实际资源承载量,从所述等待队列中移出所述目标query,并将所述预测SQL引擎确定为所述目标引擎。
在上述实施方式中,所述预测SQL引擎运行异常包括,但不限于:所述预测SQL引擎挂机、所述预测SQL引擎崩溃等情况。
此时,由于所述预测SQL引擎无法正常运行,因此,启动备用引擎代替所述预测SQL引擎,以保证正常运行。
并且,当所述状态数据显示所述预测SQL引擎运行正常时,说明所述预测SQL引擎时能够正常工作的,只是当前被其他任务占用,因此,可以等待所述预测SQL引擎释放了资源后再提交所述目标query,进一步确保了正常运行。
在本发明的至少一个实施例中,在根据所述SQL引擎预测模型的输出确定与所述待预测query匹配的目标引擎后,调用执行所述目标query的集群的目标API接口;
通过所述目标API接口读取所述目标引擎对所述目标query的实时运行状态,并显示所述实时运行状态;
当所述实时运行状态显示当前占用的内存大于内存阈值时,使用kill命令处理所述目标query;及/或
当所述实时运行状态显示当前消耗的CPU大于CPU阈值时,降低所述目标引擎的CPU数量阈值;及/或
当所述实时运行状态显示所述目标query的执行时间大于执行时间阈值时,生成异常告警信息,并显示所述异常告警信息。
其中,所述内存阈值、所述CPU数量阈值及所述执行时间阈值可以进行自定义配置,本发明不限制。
其中,所述CPU数量阈值是指所述目标引擎能够同时运行的最大CPU数量,通过降低所述目标引擎的CPU数量阈值,能够限制当前运行的CPU数量,也就能够进一步避免CPU消耗过高的情况发生。
在上述实施方式中,通过实时采集并显示运行状态,能够使运行信息更加直观化,便于相关工作人员实时查看并处理,同时,在运行异常时,同时结合了自动处理与人工处理,以提高异常处理效率,进而实现有效的大数据资源利用,帮助运维保持大数据平台的稳定性。
当然,在其他实施例中,当所述实时运行状态显示当前消耗的CPU大于实时CPU阈值,或者当所述实时运行状态显示当前消耗的CPU大于实时CPU阈值时,也可以同步显示异常的告警信息,以提示相关运维人员及时跟进。
当所述实时运行状态显示所述目标query的执行时间大于所述执行时间阈值时,由于可能由多种原因导致执行超时,并不能简单的进行自动处理,因此,需要生成所述异常告警信息以提示尽快处理。另外,在生成所述异常告警信息的同时,还可以附带可能造成所述运行时间超时的原因及可能的处理方式,以供相关人员查看,进而辅助相关人员进行更加搞笑的运维。
例如:造成运行超时的原因可能包括数据量过大,则在所述异常告警信息中可以显示:可能的原因为数据量过大,建议解决方式为剪裁数据。
需要说明的是,为了进一步提高数据的安全性,避免数据被恶意篡改,训练得到的模型可存储于区块链节点中。
由以上技术方案可以看出,本发明能够获取历史SQL的执行数据,及获取执行所述历史SQL的集群,解析所述历史SQL的执行数据,得到历史SQL特征,提取所述历史SQL的集群的集群环境指标,得到历史环境特征,对所述历史SQL特征及所述历史环境特征进行归一化处理,得到历史特征,通过编码将特征转化为机器语言,便于后续模型的训练,根据所述历史SQL的执行数据对所述历史特征进行标签处理,得到样本数据,利用所述样本数据训练指定神经网络,得到SQL引擎预测模型,响应于待预测query,对所述待预测query进行优化处理,得到目标query,优化了所述待预测query的执行计划,使所述待预测query的执行更加快速,提高了运行效率,获取所述目标query的执行数据及执行所述目标query的集群,并根据所述目标query的执行数据及执行所述目标query的集群构建所述目标query的目标特征,将所述目标特征输入至所述SQL引擎预测模型,并根据所述SQL引擎预测模型的输出确定与所述待预测query匹配的目标引擎,进而基于训练的AI模型对提交的待预测query查询执行进行自动管理,无需人工介入,用户不再需要了解各个大数据引擎的特性并做出选择,直接由训练得到的AI模型自动推荐,以辅助选择合适的计算引擎。
如图3所示,是本发明实现基于AI的SQL引擎调用方法的较佳实施例的计算机设备的结构示意图。
所述计算机设备1可以包括存储器12、处理器13和总线,还可以包括存储在所述存储器12中并可在所述处理器13上运行的计算机程序,例如基于AI的SQL引擎调用程序。
本领域技术人员可以理解,所述示意图仅仅是计算机设备1的示例,并不构成对计算机设备1的限定,所述计算机设备1既可以是总线型结构,也可以是星形结构,所述计算机设备1还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置,例如所述计算机设备1还可以包括输入输出设备、网络接入设备等。
需要说明的是,所述计算机设备1仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
其中,存储器12至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器12在一些实施例中可以是计算机设备1的内部存储单元,例如该计算机设备1的移动硬盘。存储器12在另一些实施例中也可以是计算机设备1的外部存储设备,例如计算机设备1上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,存储器12还可以既包括计算机设备1的内部存储单元也包括外部存储设备。存储器12不仅可以用于存储安装于计算机设备1的应用软件及各类数据,例如基于AI的SQL引擎调用程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器13在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。处理器13是所述计算机设备1的控制核心(Control Unit),利用各种接口和线路连接整个计算机设备1的各个部件,通过运行或执行存储在所述存储器12内的程序或者模块(例如执行基于AI的SQL引擎调用程序等),以及调用存储在所述存储器12内的数据,以执行计算机设备1的各种功能和处理数据。
所述处理器13执行所述计算机设备1的操作系统以及安装的各类应用程序。所述处理器13执行所述应用程序以实现上述各个基于AI的SQL引擎调用方法实施例中的步骤,例如图1所示的步骤。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器12中,并由所述处理器13执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机程序在所述计算机设备1中的执行过程。例如,所述计算机程序可以被分割成获取单元110、解析单元111、提取单元112、归一化单元113、标签单元114、训练单元115、优化单元116、构建单元117、确定单元118。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、计算机设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述基于AI的SQL引擎调用方法的部分。
所述计算机设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指示相关的硬件设备来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。
其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器等。
进一步地,计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,在图3中仅用一根直线表示,但并不表示仅有一根总线或一种类型的总线。所述总线被设置为实现所述存储器12以及至少一个处理器13等之间的连接通信。
尽管未示出,所述计算机设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器13逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述计算机设备1还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
进一步地,所述计算机设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该计算机设备1与其他计算机设备之间建立通信连接。
可选地,该计算机设备1还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在计算机设备1中处理的信息以及用于显示可视化的用户界面。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
图3仅示出了具有组件12-13的计算机设备1,本领域技术人员可以理解的是,图3示出的结构并不构成对所述计算机设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
结合图1,所述计算机设备1中的所述存储器12存储多个指令以实现一种基于AI的SQL引擎调用方法,所述处理器13可执行所述多个指令从而实现:
获取历史SQL的执行数据,及获取执行所述历史SQL的集群;
解析所述历史SQL的执行数据,得到历史SQL特征;
提取所述历史SQL的集群的集群环境指标,得到历史环境特征;
对所述历史SQL特征及所述历史环境特征进行归一化处理,得到历史特征;
根据所述历史SQL的执行数据对所述历史特征进行标签处理,得到样本数据;
利用所述样本数据训练指定神经网络,得到SQL引擎预测模型;
响应于待预测query,对所述待预测query进行优化处理,得到目标query;
获取所述目标query的执行数据及执行所述目标query的集群,并根据所述目标query的执行数据及执行所述目标query的集群构建所述目标query的目标特征;
将所述目标特征输入至所述SQL引擎预测模型,并根据所述SQL引擎预测模型的输出确定与所述待预测query匹配的目标引擎。
具体地,所述处理器13对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。本发明中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一、第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (9)
1.一种基于AI的SQL引擎调用方法,其特征在于,所述基于AI的SQL引擎调用方法包括:
获取历史SQL的执行数据,及获取执行所述历史SQL的集群;
解析所述历史SQL的执行数据,得到历史SQL特征;
提取所述历史SQL的集群的集群环境指标,得到历史环境特征;
对所述历史SQL特征及所述历史环境特征进行归一化处理,得到历史特征;
根据所述历史SQL的执行数据对所述历史特征进行标签处理,得到样本数据;
利用所述样本数据训练指定神经网络,得到SQL引擎预测模型;
响应于待预测query,对所述待预测query进行优化处理,得到目标query;
获取所述目标query的执行数据及执行所述目标query的集群,并根据所述目标query的执行数据及执行所述目标query的集群构建所述目标query的目标特征;
将所述目标特征输入至所述SQL引擎预测模型,并根据所述SQL引擎预测模型的输出确定与所述待预测query匹配的目标引擎;其中,
所述对所述历史SQL特征及所述历史环境特征进行归一化处理,得到历史特征包括:
拼接所述历史SQL特征及所述历史环境特征,得到拼接特征;
识别所述拼接特征中的数字特征及非数字特征;
对所述非数字特征进行编码处理,得到所述非数字特征的编码表示;
保持所述数字特征不变,并将所述非数字特征替换为所述非数字特征的编码表示,得到所述历史特征。
2.如权利要求1所述的基于AI的SQL引擎调用方法,其特征在于,所述利用所述样本数据训练指定神经网络,得到SQL引擎预测模型包括:
重复执行对所述样本数据的拆分,其中,对所述样本数据的拆分包括:将所述样本数据按照配置比例随机拆分为验证集及训练集,并将所述验证集及所述训练集确定为一组训练数据;
直至所述样本数据中的每个数据都曾作为所述验证集中的数据,及所述样本数据中的每个数据都曾作为所述训练集中的数据,停止执行对所述样本数据的拆分,得到多组训练数据;
将每组训练数据的训练集中的标签确定为训练目标,并利用每组训练数据的训练集训练所述指定神经网络;
采用每组训练数据的验证集验证所述指定神经网络;
当每组训练数据都曾被用于训练所述指定神经网络时,停止训练,得到所述SQL引擎预测模型。
3.如权利要求1所述的基于AI的SQL引擎调用方法,其特征在于,所述对所述待预测query进行优化处理,得到目标query包括:
启动优化模型,将所述待预测query输入至所述优化模型,并获取所述优化模型的输出作为所述待预测query的表关联方式,及对所述待预测query进行谓词上推,得到所述目标query。
4.如权利要求1所述的基于AI的SQL引擎调用方法,其特征在于,所述根据所述SQL引擎预测模型的输出确定与所述待预测query匹配的目标引擎包括:
从所述SQL引擎预测模型的输出中获取所述待预测query消耗的预测CPU、所述待预测query占用的预测内存及所述待预测query的预测SQL引擎;
获取所述预测SQL引擎的当前资源承载量;
根据所述预测CPU及所述预测内存确定所述待预测query所需的实际资源承载量;
当所述实际资源承载量小于或者等于所述当前资源承载量时,将所述预测SQL引擎确定为所述目标引擎。
5.如权利要求4所述的基于AI的SQL引擎调用方法,其特征在于,所述方法还包括:
当所述实际资源承载量大于所述当前资源承载量时,获取所述预测SQL引擎的状态数据;
当所述状态数据显示所述预测SQL引擎运行异常时,启动备用引擎作为所述目标引擎;或者
当所述状态数据显示所述预测SQL引擎运行正常时,将所述目标query添加至预先建立的等待队列中,直至所述预测SQL引擎的所述当前资源承载量被释放至大于或者等于所述实际资源承载量,从所述等待队列中移出所述目标query,并将所述预测SQL引擎确定为所述目标引擎。
6.如权利要求1所述的基于AI的SQL引擎调用方法,其特征在于,在根据所述SQL引擎预测模型的输出确定与所述待预测query匹配的目标引擎后,所述方法还包括:
调用执行所述目标query的集群的目标API接口;
通过所述目标API接口读取所述目标引擎对所述目标query的实时运行状态,并显示所述实时运行状态;
当所述实时运行状态显示当前占用的内存大于内存阈值时,使用kill命令处理所述目标query;及/或
当所述实时运行状态显示当前消耗的CPU大于CPU阈值时,降低所述目标引擎的CPU数量阈值;及/或
当所述实时运行状态显示所述目标query的执行时间大于执行时间阈值时,生成异常告警信息,并显示所述异常告警信息。
7.一种基于AI的SQL引擎调用装置,其特征在于,所述基于AI的SQL引擎调用装置包括:
获取单元,用于获取历史SQL的执行数据,及获取执行所述历史SQL的集群;
解析单元,用于解析所述历史SQL的执行数据,得到历史SQL特征;
提取单元,用于提取所述历史SQL的集群的集群环境指标,得到历史环境特征;
归一化单元,用于对所述历史SQL特征及所述历史环境特征进行归一化处理,得到历史特征;
标签单元,用于根据所述历史SQL的执行数据对所述历史特征进行标签处理,得到样本数据;
训练单元,用于利用所述样本数据训练指定神经网络,得到SQL引擎预测模型;
优化单元,用于响应于待预测query,对所述待预测query进行优化处理,得到目标query;
构建单元,用于获取所述目标query的执行数据及执行所述目标query的集群,并根据所述目标query的执行数据及执行所述目标query的集群构建所述目标query的目标特征;
确定单元,用于将所述目标特征输入至所述SQL引擎预测模型,并根据所述SQL引擎预测模型的输出确定与所述待预测query匹配的目标引擎;其中,
所述对所述历史SQL特征及所述历史环境特征进行归一化处理,得到历史特征包括:
拼接所述历史SQL特征及所述历史环境特征,得到拼接特征;
识别所述拼接特征中的数字特征及非数字特征;
对所述非数字特征进行编码处理,得到所述非数字特征的编码表示;
保持所述数字特征不变,并将所述非数字特征替换为所述非数字特征的编码表示,得到所述历史特征。
8.一种计算机设备,其特征在于,所述计算机设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现如权利要求1至6中任意一项所述的基于AI的SQL引擎调用方法。
9.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被计算机设备中的处理器执行以实现如权利要求1至6中任意一项所述的基于AI的SQL引擎调用方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110725749.2A CN113449037B (zh) | 2021-06-29 | 2021-06-29 | 基于ai的sql引擎调用方法、装置、设备及介质 |
PCT/CN2021/108782 WO2023272853A1 (zh) | 2021-06-29 | 2021-07-28 | 基于ai的sql引擎调用方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110725749.2A CN113449037B (zh) | 2021-06-29 | 2021-06-29 | 基于ai的sql引擎调用方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113449037A CN113449037A (zh) | 2021-09-28 |
CN113449037B true CN113449037B (zh) | 2024-04-12 |
Family
ID=77813784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110725749.2A Active CN113449037B (zh) | 2021-06-29 | 2021-06-29 | 基于ai的sql引擎调用方法、装置、设备及介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113449037B (zh) |
WO (1) | WO2023272853A1 (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020029844A1 (zh) * | 2018-08-08 | 2020-02-13 | 华为技术有限公司 | 一种区块链节点和交易方法 |
CN111046059A (zh) * | 2019-12-09 | 2020-04-21 | 中国建设银行股份有限公司 | 基于分布式数据库集群的低效sql语句分析方法及系统 |
CN111630497A (zh) * | 2018-03-22 | 2020-09-04 | 斯诺弗雷克公司 | 在数据库系统中的增量特征开发和工作负荷捕获 |
CN112148566A (zh) * | 2020-11-09 | 2020-12-29 | 中国平安人寿保险股份有限公司 | 计算引擎的监控方法、装置、电子设备及存储介质 |
CN112347126A (zh) * | 2021-01-05 | 2021-02-09 | 平安科技(深圳)有限公司 | 大数据处理方法、装置、设备及介质 |
CN112698943A (zh) * | 2020-12-29 | 2021-04-23 | 北京顺达同行科技有限公司 | 资源分配方法、装置、计算机设备以及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9773041B2 (en) * | 2013-03-06 | 2017-09-26 | Oracle International Corporation | Methods and apparatus of shared expression evaluation across RDBMS and storage layer |
US10740358B2 (en) * | 2013-04-11 | 2020-08-11 | Oracle International Corporation | Knowledge-intensive data processing system |
US11386058B2 (en) * | 2017-09-29 | 2022-07-12 | Oracle International Corporation | Rule-based autonomous database cloud service framework |
CN108985367A (zh) * | 2018-07-06 | 2018-12-11 | 中国科学院计算技术研究所 | 计算引擎选择方法和基于该方法的多计算引擎平台 |
CN111104419A (zh) * | 2019-12-24 | 2020-05-05 | 上海众源网络有限公司 | 一种数据查询方法及装置 |
-
2021
- 2021-06-29 CN CN202110725749.2A patent/CN113449037B/zh active Active
- 2021-07-28 WO PCT/CN2021/108782 patent/WO2023272853A1/zh unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111630497A (zh) * | 2018-03-22 | 2020-09-04 | 斯诺弗雷克公司 | 在数据库系统中的增量特征开发和工作负荷捕获 |
WO2020029844A1 (zh) * | 2018-08-08 | 2020-02-13 | 华为技术有限公司 | 一种区块链节点和交易方法 |
CN111046059A (zh) * | 2019-12-09 | 2020-04-21 | 中国建设银行股份有限公司 | 基于分布式数据库集群的低效sql语句分析方法及系统 |
CN112148566A (zh) * | 2020-11-09 | 2020-12-29 | 中国平安人寿保险股份有限公司 | 计算引擎的监控方法、装置、电子设备及存储介质 |
CN112698943A (zh) * | 2020-12-29 | 2021-04-23 | 北京顺达同行科技有限公司 | 资源分配方法、装置、计算机设备以及存储介质 |
CN112347126A (zh) * | 2021-01-05 | 2021-02-09 | 平安科技(深圳)有限公司 | 大数据处理方法、装置、设备及介质 |
Non-Patent Citations (2)
Title |
---|
SQL注入行为实时在线智能检测技术研究;李铭;邢光升;王芝辉;王晓东;;湖南大学学报(自然科学版);20200825(第08期);全文 * |
轩辕:AI原生数据库系统;李国良;周煊赫;;软件学报;20200315(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113449037A (zh) | 2021-09-28 |
WO2023272853A1 (zh) | 2023-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2023056943A1 (zh) | 基于物联网规则引擎的终端控制方法、装置、设备及介质 | |
CN111949708B (zh) | 基于时序特征提取的多任务预测方法、装置、设备及介质 | |
CN111639153A (zh) | 基于法律知识图谱的查询方法、装置、电子设备及介质 | |
CN111754123B (zh) | 数据监控方法、装置、计算机设备及存储介质 | |
CN115146865A (zh) | 基于人工智能的任务优化方法及相关设备 | |
CN111950621A (zh) | 基于人工智能的目标数据检测方法、装置、设备及介质 | |
WO2023040145A1 (zh) | 基于人工智能的文本分类方法、装置、电子设备及介质 | |
CN112380454A (zh) | 培训课程推荐方法、装置、设备及介质 | |
CN112948275A (zh) | 测试数据生成方法、装置、设备及存储介质 | |
CN115129753A (zh) | 数据血缘关系分析方法、装置、电子设备及存储介质 | |
CN111950707B (zh) | 基于行为共现网络的行为预测方法、装置、设备及介质 | |
CN112651782B (zh) | 基于缩放点积注意力的行为预测方法、装置、设备及介质 | |
CN113282854A (zh) | 数据请求响应方法、装置、电子设备及存储介质 | |
CN113449037B (zh) | 基于ai的sql引擎调用方法、装置、设备及介质 | |
CN111429085A (zh) | 合同数据生成方法、装置、电子设备及存储介质 | |
CN116823437A (zh) | 基于配置化风控策略的准入方法、装置、设备及介质 | |
CN116434934A (zh) | 基于消息队列的患者候诊方法、装置、电子设备及介质 | |
CN114239538A (zh) | 断言处理方法、装置、计算机设备及存储介质 | |
CN112396547A (zh) | 基于无监督学习的课程推荐方法、装置、设备及介质 | |
CN116976821B (zh) | 企业问题反馈信息处理方法、装置、设备及介质 | |
CN113722590B (zh) | 基于人工智能的医学信息推荐方法、装置、设备及介质 | |
CN115964307B (zh) | 交易数据自动化测试方法、装置、设备及介质 | |
CN116934263B (zh) | 产品批量准入方法、装置、设备及介质 | |
CN116630048B (zh) | 基于期货行情k线的交易方法、装置、设备及介质 | |
CN112183630B (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20240315 Address after: 200120, Room 2250, Building 2, No. 3601 Dongfang Road, Pudong New Area, Shanghai Applicant after: Cloud Rich (Shanghai) Data Service Co.,Ltd. Country or region after: China Address before: Floor 15, no.1333, Lujiazui Ring Road, pilot Free Trade Zone, Pudong New Area, Shanghai Applicant before: Weikun (Shanghai) Technology Service Co.,Ltd. Country or region before: China |
|
GR01 | Patent grant | ||
GR01 | Patent grant |