服务调用风险模型生成方法、预测方法及各自装置
技术领域
本申请涉及计算机领域,特别涉及一种服务调用风险模型生成方法、预测方法及各自装置。
背景技术
随着互联网技术的发展,满足人们各种需求的服务系统日益庞大,从而导致服务是否能够被正确调用,成为了人们关注的问题。目前,主要由系统管理人员根据人工经验分析出服务调用的风险,通过编写脚本对分析出的服务风险进行核对。但是,这种方式主要依赖于人工经验,不仅风险预测效率低,实现难度也比较大。
发明内容
有鉴于此,本申请实施例提供了一种服务调用风险模型生成方法、预测方法及各自装置,以解决现有技术中存在的技术缺陷。
根据本申请实施例的第一方面,提供了一种服务调用风险模型生成方法,包括:收集服务被调用时生成的日志流;从所述日志流中提取服务调用结果样本及对应服务被调用时涉及的数据库链路数据样本加入训练样本集;将所述服务调用结果样本作为线性回归方程的输出,将所述数据库链路数据样本作为对应的输入,基于线性回归算法对所述训练样本集进行训练,得到服务调用风险预测模型。
可选地,所述线性回归算法为正则化线性回归算法,所述正则化线性回归算法通过调节正则化参数来寻找最小化代价函数的参数。
可选地,所述数据库链路数据样本包括:数据库链路中涉及的数据库的表、表的相关字段及字段值。
根据本申请实施例的第二方面,提供了一种服务调用风险模型生成装置,包括:收集模块,被配置为收集服务被调用时生成的日志流;样本集生成模块,被配置为从所述日志流中提取服务调用结果样本及对应服务被调用时涉及的数据库链路数据样本加入训练样本集;训练模块,被配置为将所述服务调用结果样本作为线性回归方程的输出,将所述数据库链路数据样本作为对应的输入,基于线性回归算法对所述训练样本集进行训练,得到服务调用风险预测模型。
可选地,所述训练模块中的线性回归算法为正则化线性回归算法,所述正则化线性回归算法通过调节正则化参数来寻找最小化代价函数的参数。
可选地,所述样本集生成模块,被配置为从所述日志流中提取服务调用结果样本及对应服务被调用时涉及的数据库的表、表的相关字段及字段值加入训练样本集。
根据本申请实施例的第三方面,提供了一种服务调用风险预测方法,包括:响应于服务被调用,获取所述服务被调用时的数据库链路数据;将所述数据库链路数据输入到基于本申请实施例第一个方面任意一项服务调用风险模型生成方法训练得到的服务调用风险预测模型中进行预测;输出所述服务调用风险预测模型针对所述服务预测出的服务调用结果。
根据本申请实施例的第四方面,提供了一种服务调用风险预测装置,包括:获取模块,被配置为响应于服务被调用,获取所述服务被调用时的数据库链路数据。预测模块,被配置为将所述数据库链路数据输入到基于本申请实施例第一个方面任意一项服务调用风险模型生成方法训练得到的服务调用风险预测模型中进行预测。输出模块,被配置为输出所述服务调用风险预测模型针对所述服务预测出的服务调用结果。
根据本申请实施例的第五方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述本申请实施例第一方面中服务调用风险模型生成方法或第三方面中服务调用风险模型预测方法的步骤。
根据本申请实施例的第六方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述本申请实施例第一方面中服务调用风险模型生成方法或第三方面中服务调用风险模型预测方法的步骤。
本申请实施例中,一方面通过收集服务被调用时生成的日志流,从日志流中提取服务调用结果样本及对应服务被调用时涉及的数据库链路数据样本加入训练样本集,将服务调用结果样本作为线性回归方程的输出,将数据库链路数据样本作为对应的输入,基于线性回归算法对所述训练样本集进行训练,得到服务调用风险预测模型,另一方面基于该服务调用风险预测模型针对实时收到的服务预测出服务调用结果,从而实现了不依赖于人工经验,预测效率高,实现难度低的风险预测。
附图说明
图1是本申请实施例提供的计算设备的结构框图;
图2是本申请实施例提供的服务调用风险模型生成方法的流程图;
图3是本申请实施例提供的日志流的示意图;
图4是本申请实施例提供的服务调用风险模型生成装置的框图;
图5是本申请实施例提供的服务调用风险预测方法的流程图;
图6是本申请实施例提供的服务调用风险预测装置的框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本申请一个或多个实施例涉及的名词术语进行解释。
日志流:由于用户使用程序而生成的日志,包括系统中硬件、软件和系统问题的信息,同时还包括监视系统中发生的事件所产生的事件信息,是随时间延续而增长的动态数据集合。
服务:在后台运行的应用程序,可以由用户操作某种行为产生调用。
数据库链路数据:服务被调用时涉及的数据库表存储的链路中的数据,可以包括数据库的表、表的相关字段及字段值、等等。
线性回归算法:是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。
在本申请中,提供了一种服务调用风险模型生成方法、预测方法及各自装置,在下面的实施例中逐一进行详细说明。
图1示出了根据本申请一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本申请的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
其中,处理器120可以执行图2所示服务调用风险模型生成方法中的步骤。处理器120也可以执行图5所示服务调用风险预测方法中的步骤。图2示出了根据本申请一实施例的服务调用风险模型生成方法的流程图,包括步骤202至步骤206。
步骤202:收集服务被调用时生成的日志流。
例如,可以利用Spark,一种专为大规模数据处理而设计的快速通用的计算引擎来进行日志流的收集。例如,收集到的部分日志流如图3所示,包含服务调用结果“活动参与用户频次超限”及数据库链路数据中的部分因子如“xxxFacade.quey”、“AE151160202224xx”、“179ms”等。
步骤204:从所述日志流中提取服务调用结果样本及对应服务被调用时涉及的数据库链路数据样本加入训练样本集。
通过收集到的日志流,可以从中提取出大量样本数据。其中,数据库链路数据样本可以包括若干因子,比如数据库链路中涉及的数据库的表、表的相关字段及字段值。由于数据库链路中涉及的数据库的表、表的相关字段及字段值是能够表现库链路状态的典型数据,因此,采用这三个因子作为数据库链路数据样本能够有效训练出预测效果更好的服务调用风险预测模型。另外,还可以从日志流中提取服务方案,服务传入参数,服务输出结果加入训练样本集,作为线性回归方程的输入进行训练,以便训练出预测效果更好的服务调用风险预测模型。
步骤206:将所述服务调用结果样本作为线性回归方程的输出,将所述数据库链路数据样本作为对应的输入,基于线性回归算法对所述训练样本集进行训练,得到服务调用风险预测模型。
为了参与线性回归计算,可以将服务调用结果样本集数据库链路数据样本通过枚举值或者数值标准化方式进行数据转换。
为了提高训练效果,本申请还可以进行特征选择,也称特征子集选择,从原始特征中选择出一些最有效特征以降低数据集维度,从而提高学习算法性能的。
在本申请中,可以基于线性回归算法的基本线性回归方程f(Xi)=θ0X0+θ1X1+…+θiXi进行训练。其中,X1~Xi是线性回归方程各输入因子。θ1~θi是可变参数,也就是线性回归方程各输入因子的权重。基于线性回归算法对训练样本集进行训练就是通过调整各输入因子的权重找到一条直线尽可能的拟合所有的点,以此来表示数据库链路数据与服务调用结果之间的定量关系。
采用线性回归进行机器学习,可能会产生欠拟合或过拟合的情况,本申请采用正则化的线性回归算法进行训练,以解决这一问题。正则化的线性回归算法通过调节正则化参数来寻找最小化代价函数的参数,能够平衡拟合训练的目的和保持参数值较小的目的,也就是控制欠拟合和过拟合之间的平衡。其中,最小化代价函数为minJ(θ)。其中,hθ(x(i))为线性回归基本方程预测的值,y(i)为真实值,λ即为正则化参数,通过调节λ去找到最小化代价函数的参数θ。
本申请的申请人发现数据库链路数据与服务调用结果之间存在相互依赖的定量关系,因此,通过收集服务被调用时生成的日志流,从日志流中提取服务调用结果样本及对应服务被调用时涉及的数据库链路数据样本加入训练样本集,将服务调用结果样本作为线性回归方程的输出,将数据库链路数据样本作为对应的输入,基于线性回归算法对所述训练样本集进行训练,得到服务调用风险预测模型。
与上述服务调用风险模型生成方法实施例相对应,本申请还提供了服务调用风险模型生成装置实施例,图4示出了本申请一个实施例的服务调用风险模型生成装置的结构示意图。如图4所示,该装置可以包括:收集模块410、样本集生成模块420、训练模块430。
该收集模块410,可以被配置为收集服务被调用时生成的日志流。
该样本集生成模块420,可以被配置为从所述日志流中提取服务调用结果样本及对应服务被调用时涉及的数据库链路数据样本加入训练样本集。
该训练模块430,可以被配置为将所述服务调用结果样本作为线性回归方程的输出,将所述数据库链路数据样本作为对应的输入,基于线性回归算法对所述训练样本集进行训练,得到服务调用风险预测模型。
本申请的申请人发现数据库链路数据与服务调用结果之间存在相互依赖的定量关系,因此,通过收集服务被调用时生成的日志流,从日志流中提取服务调用结果样本及对应服务被调用时涉及的数据库链路数据样本加入训练样本集,将服务调用结果样本作为线性回归方程的输出,将数据库链路数据样本作为对应的输入,基于线性回归算法对所述训练样本集进行训练,得到服务调用风险预测模型。
考虑到采用线性回归进行机器学习,可能会产生欠拟合或过拟合的情况,本申请一可能的实施方式中,所述训练模块430中的线性回归算法为正则化线性回归算法,所述正则化线性回归算法通过调节正则化参数来寻找最小化代价函数的参数。能够平衡拟合训练的目的和保持参数值较小的目的,也就是控制欠拟合和过拟合之间的平衡。
又一可能的实施方式中,所述样本集生成模块420可以被配置为从所述日志流中提取服务调用结果样本及对应服务被调用时涉及的数据库的表、表的相关字段及字段值加入训练样本集。由于数据库链路中涉及的数据库的表、表的相关字段及字段值是能够表现库链路状态的典型数据,因此,采用这三个因子作为数据库链路数据样本能够有效训练出预测效果更好的服务调用风险预测模型。
图5示出了根据本申请一实施例的服务调用风险预测方法的流程图,包括步骤502至步骤506。
步骤502:响应于服务被调用,获取所述服务被调用时的数据库链路数据。
步骤504:将所述数据库链路数据输入到基于本申请实施例所述的服务调用风险模型生成方法训练得到的服务调用风险预测模型中进行预测。
步骤506:输出所述服务调用风险预测模型针对所述服务预测出的服务调用结果。
由于数据库链路数据与服务调用结果之间存在相互依赖的定量关系,本申请基于线性回归算法训练得到服务调用风险预测模型,从而能够基于该服务调用风险预测模型进行服务调用风险的预测,实现了不依赖于人工经验,预测效率高,实现难度低的风险预测。
与上述服务调用风险预测方法实施例相对应,本申请还提供了服务调用风险预测装置实施例,图6示出了本申请一个实施例的服务调用风险预测装置的结构示意图。如图6所示,该装置可以包括:获取模块610、预测模块620、输出模块630。
该获取模块610,可以被配置为响应于服务被调用,获取所述服务被调用时的数据库链路数据。
该预测模块620,可以被配置为将所述数据库链路数据输入到基于本申请实施例所述服务调用风险模型生成方法训练得到的服务调用风险预测模型中进行预测。
该输出模块630,可以被配置为输出所述服务调用风险预测模型针对所述服务预测出的服务调用结果。
由于数据库链路数据与服务调用结果之间存在相互依赖的定量关系,本申请基于线性回归算法训练得到服务调用风险预测模型,从而能够基于该服务调用风险预测模型进行服务调用风险的预测,实现了不依赖于人工经验,预测效率高,实现难度低的风险预测。
本申请一实施例中还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述的服务调用风险模型生成方法的步骤,也可以执行所述指令时实现所述的服务调用风险预测方法的步骤。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述服务调用风险模型生成方法的步骤,也可以执行时实现如前所述服务调用风险预测方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的服务调用风险模型生成方法的技术方案属于同一构思,也可以与上述的服务调用风险预测方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述服务调用风险模型生成方法或服务调用风险预测方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。