一种基于机器学习的数据库健康度打分方法和打分系统与流程

文档序号:16736314发布日期:2019-01-28 12:39阅读:566来源:国知局
一种基于机器学习的数据库健康度打分方法和打分系统与流程

本发明属于数据库的运维领域,具体涉及一种采用人工智能方法对数据库健康度进行打分和预测的方法和系统。



背景技术:

目前大型数据库系统的运维主要靠高端dba(databaseadministrator,数据库管理员)来维护,dba通过查看数据库的各项指标,可以对数据库的整体运行情况进行健康度打分,这种方法被称为“专家模型”。专家模型是依赖具有多年数据库运维经验的专家,人工选取对数据库健康程度影响最大的指标,采用人工设定的阈值,对各项指标进行打分,最终将各项得分总和起来,得到最终的健康得分。但是只依赖专家dba的经验,难以应对数据库运维的各项困境。数据库的监控指标数量十分庞大,靠人工分析成本太高;不同的指标之间的关联关系很复杂,人工分析很难找到规律;依赖人工容易发现问题,但是很难定位问题;不同数据库软件的监控指标各不相同;系统复杂程度不断增加,关联关系更加复杂。总结起来,专家模型的主要缺点有:1、指标是由专家依靠经验选取的,还有大量的指标未被选取,这些未被选取的指标是否对数据库健康重要,专家也无法给出答案,未被选取的指标分析工作量十分巨大,靠人工无法完成;2、专家模型无法分析出各项指标之间的关联关系;各个指标之间是孤立的;3、专家模型无法给出未来一段时间的健康得分预测,只能根据当前得到的指标计算当前得分。



技术实现要素:

发明目的:针对现有技术中存在的问题,本发明提供了一种利用机器学习对数据库健康度进行打分和预测的方法,该方法可以对大量的数据库监控指标进行分析,通过建立回归预测模型,可以得到当前或未来时刻的数据库健康度打分结果。

技术方案:本发明一方面提供了一种基于机器学习的数据库健康度打分方法,包括如下步骤:

(1)采集数据库监控指标,并通过专家模型得到健康度打分;采集到的原始数据和打分作为样本集;

(2)对样本集中的数据进行去噪、归一化等预处理,并将样本集中的数据分为训练数据、验证数据和测试数据;

(3)采用回归预测算法建立回归预测模型,利用训练数据训练模型参数,利用验证数据调整模型参数,利用测试数据测试模型的效果;

(4)读取数据库一段时间内的监控指标,采用与步骤(2)相同的方法进行预处理,预处理后的数据作为回归预测模型的输入,模型的输出即为当前或未来某一时刻数据库健康度打分结果。

作为一种优选,步骤(2)中对样本集中的数据进行去噪后还包括特征选取,之后再进行归一化处理;所述特征选取为计算监控指标的重要度,删除样本集中重要度最小的前n个监控指标;具体包括如下步骤:

(2.1)建立gbm回归模型,设置提升树个数m和学习率ρ,损失函数为均方误差;

(2.2)将去噪后的样本集分为gbm训练集和gbm测试集,用gbm训练集训练gbm回归模型;训练过程中如果n轮训练的损失函数不再减少,则训练停止;否则继续训练直到损失函数不再减少;训练停止后得到样本集中每个监控指标的重要度值;

(2.3)重复步骤(2.1)和(2.2)w次,每个监控指标得到w个重要度值,取其平均值作为所述监控指标的重要度值;

(2.4)对每个监控指标的重要度值进行排序,将重要度值最小的前n个监控指标删除。

步骤(3)中采用lstmrnn算法构建lstmrnn回归预测模型,所述lstmrnn回归预测模型包括1个输入层,3个lstm层,1个全连接层和1个输出层,所述3个lstm层均包括32个lstm单元;所述全连接层包括32个单元,采用relu激活函数;所述输出层包括4个单元,采用sigmoid激活函数;

步骤(3)中也可以采用随机森林算法构建随机森林回归预测模型;所述随机森林回归预测模型中包括p棵决策树,决策树的深度q的确定步骤为:

设置决策树深度的上限值q,令t从1到q进行q次训练,并计算每次训练的损失函数值,取q次训练中损失函数值最小的t的取值作为决策树深度q。

另一方面,本发明提供了一种基于机器学习的数据库健康度打分系统,包括数据库监控指标采集模块、专家模型打分模块、预处理模块、回归预测模型;所述数据库监控指标采集模块采集数据库监控指标,并通过专家模型打分模块进行健康度打分;预处理模块对采集到的数据库监控指标和健康度打分所组成的样本集进行去噪、归一化等预处理,并将样本集中的数据分为训练数据、验证数据和测试数据;回归预测模型利用训练数据训练模型参数,利用验证数据整模型参数,利用测试数据测试模型的效果。

进一步地,还包括特征选取模块,所述特征选取模块对预处理模块中去噪后的数据进行特征选取,之后再进行归一化处理。

进一步地,回归预测模型为lstmrnn回归预测模型,所述lstmrnn回归预测模型包括1个输入层,3个lstm层,1个全连接层和1个输出层,所述3个lstm层均包括32个lstm单元;所述全连接层包括32个单元,采用relu激活函数;所述输出层包括4个单元,采用sigmoid激活函数。

回归预测模型也可以采用随机森林回归预测模型;所述随机森林回归预测模型中包括p棵决策树,决策树的深度q的确定步骤为:

设置决策树深度的上限值q,令t从1到q进行q次训练,并计算每次训练的损失函数值,取q次训练中损失函数值最小的t的取值作为决策树深度q。

有益效果:与现有技术相比,本发明公开的基于机器学习的数据库健康度打分方法与系统利用大量的数据库监控指标训练并调整回归预测模型,能够对当前或未来一段时间内的数据库健康度进行打分和预测。

附图说明

图1为本发明公开的数据库健康度打分方法的流程图;

图2为本发明公开的数据库健康度打分系统的组成框图。

具体实施方式

下面结合附图和具体实施方式,进一步阐明本发明。

实施例1:

一种基于机器学习的数据库健康度打分方法,如图1所示,包括如下步骤:

步骤1、采集数据库监控指标,并通过专家模型得到健康度打分;采集到的原始数据和打分作为样本集;

本实施例中采集数据库运行的250种指标作为监控指标,包括数据库连接状态、cpu使用率、内存使用率、磁盘读写、缓存大小、延迟、响应时间等;健康度打分的分值从0到100;通过专家模型进行打分,作为人工标记的样本集数据;

步骤2、对样本集中的数据进行去噪、归一化等预处理,并将样本集中的数据分为训练数据、验证数据和测试数据;

对样本集中的数据进行去噪,包括去除异常值和缺失值,去除只有单一值的指标。在各种指标中,有些指标对数据库的健康度影响非常小或基本没有影响,为了去除这些指标,本实施例中对去噪后的数据进行特征选取,之后再进行归一化处理;所述特征选取为计算监控指标的重要度,删除样本集中重要度最小的前n个监控指标;具体步骤为:

(2.1)建立gbm回归模型,设置提升树个数m和学习率ρ,损失函数为均方误差;

(2.2)将去噪后的样本集分为gbm训练集和gbm测试集,用gbm训练集训练gbm回归模型;训练过程中如果n轮训练的损失函数不再减少,则训练停止;否则继续训练直到损失函数不再减少;训练停止后得到样本集中每个监控指标的重要度值;

(2.3)重复步骤(2.1)和(2.2)w次,每个监控指标得到w个重要度值,取其平均值作为所述监控指标的重要度值;

(2.4)对每个监控指标的重要度值进行排序,将重要度值最小的前n个监控指标删除。

本实施例中,提升树设置为1000个,学习率为0.05,训练过程中当进行100轮训练损失函数不再减少,则训练停止。共进行10次训练,即重复步骤(2.1)和(2.2)10次,建立了10个gbm回归模型,每个监控指标得到10个重要度值,取10次的平均作为最终的重要度值。

对于一些分类特征,采用one-hot编码。经过去噪和特征选取,250维指标减少至141维。为了使模型的计算更加准确和高效,对各项指标进行归一化,即将各项指标值缩放在0~1之间。

步骤3、采用回归预测算法建立回归预测模型,利用训练数据训练模型参数,利用验证数据调整模型参数,利用测试数据测试模型的效果;

本实施例中采用lstmrnn算法构建lstmrnn回归预测模型,所述lstmrnn回归预测模型包括1个输入层,3个lstm层,1个全连接层和1个输出层,所述3个lstm层均包括32个lstm单元;所述全连接层包括32个单元,采用relu激活函数;所述输出层包括4个单元,采用sigmoid激活函数;所述lstmrnn回归预测模型损失函数采用均方误差(mse),优化器采用rmsprop,batch大小是128。训练在50epochs。

训练数据是按照时间进行排序的,模型会根据一段时间周期内的数据进行打分和预测,因此顺序不可打乱。采用递归神经网络的算法,是因为递归神经网络可以保留一段时间内的信息,将其信息加入到最终结果的计算当中。模型同时输出输入数据的当前得分和未来一段时间的得分;输入的时间序列长度和预测的时间长度均可作为参数调节。

步骤4、读取数据库一段时间内的监控指标,采用与步骤(2)相同的方法进行预处理,预处理后的数据作为回归预测模型的输入,输入数据按照时间顺序排序,不能打乱;模型的输出即为当前或未来某一时刻数据库健康度打分结果。

如图2所示,为本发明公开的数据库健康度打分系统的组成框图,包括数据库监控指标采集模块、专家模型打分模块、预处理模块、回归预测模型;所述数据库监控指标采集模块采集数据库监控指标,并通过专家模型打分模块进行健康度打分;预处理模块对采集到的数据库监控指标和健康度打分所组成的样本集进行去噪、归一化等预处理,并将样本集中的数据分为训练数据、验证数据和测试数据;回归预测模块利用训练数据训练模型参数,利用验证数据和测试数据调整模型参数。系统不断读取新的指标数据,按照模型训练时的特征选择和缩放方法对新数据进行处理,然后送入模型进行打分和预测,模型输出打分和预测结果,

预处理模块中还包括特征选取模块,所述特征选取模块对预处理模块中去噪后的数据进行特征选取,之后再进行归一化处理。

本实施例中回归预测模型为lstmrnn回归预测模型,所述lstmrnn回归预测模型包括1个输入层,3个lstm层,1个全连接层和1个输出层,所述3个lstm层均包括32个lstm单元;所述全连接层包括32个单元,采用relu激活函数;所述输出层包括4个单元,采用sigmoid激活函数。

实施例2:

本实施例与实施例1的区别在于:步骤(3)中采用随机森林算法构建随机森林回归预测模型;所述随机森林回归预测模型中包括p棵决策树,决策树的深度q的确定步骤为:

设置决策树深度的上限值q,令t从1到q进行q次训练,并计算每次训练的损失函数值,取q次训练中损失函数值最小的t的取值作为决策树深度q。

本实施例中,随机森林回归预测模型包括100棵决策树,决策树深度的上限值设置为10,经过10次训练测试,最佳决策树深度为3。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1