1.本技术涉及金融科技(fintech)领域,尤其涉及一种数据量异常检测方法、装置、介质及程序产品。
背景技术:
::2.随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(fintech)转变。3.目前,数据异常值的检测或者数据异常的检测对于很多金融领域的互联网系统来说是非常重要的,因为及时发现数据的异常值并即时通知有关人员跟进处理,能够避免或者挽回不必要的损失,所以数据异常监测是各种互联网系统运维工具中的重要组成部分。4.现有的数据异常监测技术走向了两个极端,一种是监测逻辑过于简单,通过对比前后两个数据点的数值变化,如果其变化量超出了阈值范围则认为出现了异常,这种方法仅能识别某一个时点的异常,对于连续的多时点异常则无法识别;另一种如极值学生分布离群值检验算法或者其它改进算法,逻辑复杂,监测效率低,且无法适用于趋势性、周期性、季节性的时间序列的监测。5.因此,现有的数据异常监测存在无法甄别连续几个时间点出现异常,且无法适用于趋势性、周期性、季节性的时间序列的技术问题。技术实现要素:6.本技术提供一种数据量异常检测方法、装置、介质及程序产品,以解决现有的数据异常监测存在无法甄别连续几个时间点出现异常,且无法适用于趋势性、周期性、季节性的时间序列的技术问题。7.第一个方面,本技术提供一种数据量异常检测方法,包括:8.获取初始时间序列,初始时间序列包括:数据库中至少一个目标数据表在不同时间点的数据量;9.根据预设时间间隔计算初始时间序列的多个变化率;10.根据预设底数计算各个变化率的对数值;11.根据变化率对应的时间顺序将对数值组合成第一时间序列;12.判断第一时间序列中的各个数据是否落入异常区间;13.若是,则确定第一时间序列存在异常离群值;14.根据异常离群值对应的异常类型,输出对应的告警信息。15.在一种可能的设计中,预设底数与变化率所服从的预测分布形态相对应,预设底数包括自然常数e。16.在一种可能的设计中,判断第一时间序列中的各个数据是否落入异常区间,包括:17.根据移动平均周期计算第一时间序列对应的多个移动平均值,并将各个移动平均值组合成第二时间序列;18.判断第二时间序列中的各个移动平均值是否落入异常区间。19.在一种可能的设计中,异常类型包括:单点冲击异常、周期性波动异常以及趋势性波动异常中的至少一种;20.对应的,输出对应的告警信息,包括:21.当只发生了一种异常时,将异常类型记录到定时或即刻通知信息中;22.当发生了两种以上的异常时,立即向运维人员发送告警信息。23.在一种可能的设计中,单点冲击异常对应的预设时间间隔至少为一个时间单位,移动平均周期至少为预设时间间隔的两倍,时间单位包括:分钟、小时、天、周、月、季度、年。24.在一种可能的设计中,周期性波动异常对应的预设时间间隔大于或等于两个时间单位,移动平均周期大于预设时间间隔,时间单位包括:分钟、小时、天、周、月、季度、年。25.在一种可能的设计中,趋势性波动异常对应的预设时间间隔至少为一个时间单位,移动平均周期大于预设时间间隔,且至少为7至10个时间单位,时间单位包括:分钟、小时、天、周、月、季度、年。26.第二方面,本技术提供一种数据量异常检测装置,包括:27.获取模块,用于获取初始时间序列,初始时间序列包括:数据库中至少一个目标数据表在不同时间点的数据量;28.处理模块,用于:29.根据预设时间间隔计算初始时间序列的多个变化率;30.根据预设底数计算各个变化率的对数值;31.根据变化率对应的时间顺序将对数值组合成第一时间序列;32.判断第一时间序列中的各个数据是否落入异常区间;33.若是,则确定第一时间序列存在异常离群值;34.根据异常离群值对应的异常类型,输出对应的告警信息。35.在一种可能的设计中,预设底数与变化率所服从的预测分布形态相对应,预设底数包括自然常数e。36.在一种可能的设计中,处理模块,用于:37.根据移动平均周期计算第一时间序列对应的多个移动平均值,并将各个移动平均值组合成第二时间序列;38.判断第二时间序列中的各个移动平均值是否落入异常区间。39.在一种可能的设计中,异常类型包括:单点冲击异常、周期性波动异常以及趋势性波动异常中的至少一种;40.对应的,处理模块,用于:41.当只发生了一种异常时,将异常类型记录到定时或即刻通知信息中;42.当发生了两种以上的异常时,立即向运维人员发送告警信息。43.在一种可能的设计中,单点冲击异常对应的预设时间间隔至少为一个时间单位,移动平均周期至少为预设时间间隔的两倍,时间单位包括:分钟、小时、天、周、月、季度、年。44.在一种可能的设计中,周期性波动异常对应的预设时间间隔大于或等于两个时间单位,移动平均周期大于预设时间间隔,时间单位包括:分钟、小时、天、周、月、季度、年。45.在一种可能的设计中,趋势性波动异常对应的预设时间间隔至少为一个时间单位,移动平均周期大于预设时间间隔,且至少为7至10个时间单位,时间单位包括:分钟、小时、天、周、月、季度、年。46.第三个方面,本技术提供一种电子设备,包括:47.存储器,用于存储程序指令;48.处理器,用于调用并执行所述存储器中的程序指令,执行第一方面所提供的任意一种可能的方法。49.第四方面,本技术提供一种存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序用于执行第一方面所提供的任意一种可能的数据量异常检测方法。50.第五方面,本技术还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面所提供的任意一种可能的数据量异常检测方法。51.本技术提供了一种数据量异常检测方法、装置、介质及程序产品,通过获取初始时间序列,初始时间序列包括:数据库中至少一个目标数据表在不同时间点的数据量;根据预设时间间隔计算初始时间序列的多个变化率;根据预设底数计算各个变化率的对数值;根据变化率对应的时间顺序将对数值组合成第一时间序列;判断第一时间序列中的各个数据是否落入异常区间;若是,则确定第一时间序列存在异常离群值;根据异常离群值对应的异常类型,输出对应的告警信息。实现了周期性校验和趋势性校验,并且不止判断当前时点的数据是否离群,还可以检测整个时间序列所有离群点,解决了现有的数据异常监测存在无法甄别连续几个时间点出现异常,且无法适用于趋势性、周期性、季节性的时间序列的技术问题。附图说明52.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。53.图1a-1b为本技术提供的一种现有的数据量异常检测方法的检测效果示意图;54.图2为本技术实施例提供的一种数据量异常检测方法的流程示意图;55.图3为本技术实施例提供的时间序列结构示意图;56.图4为本技术提供的一种周期性变化的时间序列的统计曲线图;57.图5为本技术实施例提供的一种趋势性变化的时间序列的曲线图;58.图6为本技术实施提供的另一种数据量异常检测方法的流程示意图;59.图7为本技术实施例提供的一种初始时间序列的曲线图;60.图8为本技术实施例提供的图7所示初始时间序列对应的第一时间序列的曲线图;61.图9为本技术实施例提供的第二时间序列的曲线图;62.图10为本技术实施例提供的一种数据量异常检测装置的结构示意图;63.图11为本技术提供的一种电子设备的结构示意图。64.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。具体实施方式65.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,包括但不限于对多个实施例的组合,都属于本技术保护的范围。66.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。67.下面对本技术所涉及到的专业名词作出解释:68.时间序列:对一个变量按时间顺序的观察值,如内存占用率对应时刻t1,t2,…,tn的动态值,其中,t1《t2《…《tn。69.数据库:按照一定数据结构来组织、存储和管理数据的仓库。70.表:是数据库中用来存储数据的对象,是有结构的数据的集合,是整个数据库系统的基础。71.时点值:时间序列中某一时点t对应的数值。72.离群值:指时间序列中的异常波动时点。73.n(μ,σ2):表示数学期望为μ、方差为σ2的正态分布。74.对数正态分布:若x的自然对数ln(x)服从正态分布,则x服从对数正态分布。75.ln(x)或ln(x):表示自然对数函数。76.extremestudentizeddeviate(esd)test:twitter提出的极值学生分布离群值检验算法。77.均值μ:概率学中表示样本或整体的平均值。78.标准差σ:概率学中表示个体对整体平均值的偏离程度。79.interval:预设时间间隔,用于标识两个时点的间隔,如:间隔7天,interval=7。80.period:移动平均周期,用于标识取移动平均的区间,如:取五日移动平均则,period=5。81.p_threshold:预设概率阈值,用于标识边际概率的阈值。82.alpha_value:用于标识p_threshold对应的概率分位点。83.数据异常值或者数据异常波动的检测对很多it(internettechnology,互联网技术)系统尤为重要,如果能及时发现数据的异常值并即时通知有关人员跟进处理,则极有可能挽回不必要的损失。所以数据异常监测是各种it系统运维工具中最基础也最重要的组成部分,而且绝大多数数据异常监测场景都是对时间序列进行检验,比如对服务器cpu(centralprocessingunit,中央处理器)或内存使用情况的时序监测。84.很多it系统对于数据库中一些数据表的数据量的波动都要被监控,通常是按时间序列的,可以按分钟、按小时、按日统计,如果有异常波动,则会发出告警信息,运维或相关人员会跟进处理。85.现有的数据异常检测方案主要有以下两种:86.方案1:现有一种简单直接的检验方式是当前时点的数值与上一个时点的数值做比较,得到两个时点间的数值变化量,如果该数值变化量超出一个预设的阈值则认为是一个异常数据点。87.方案2:extremestudentizedeviate(esd)test:titter提出的算法,其假设时间序列上各个时点的数据值整体上服从正态分布,则可以利用t分布检测出1个离群点。88.对于方案1来说,其检测方式过于简单粗暴,确切的说只能检测出某一时个点(上一个时点数据正常)的异常。89.图1a-1b为本技术提供的一种现有的数据量异常检测方法的检测效果示意图。如图1a所示,前一个时间点的数据为d1,下一个时间点的数据为d2,上述方案1可以检测到此种异常情况。但是,如图1b所示,如果前一个时间点的数据d1已经是一个异常离群值,下一个时间点的数据d2页是一个异常离群值,接下来再下一个时间点的数据d3回归正常,但是由于方案1是对比相邻的前后两个数据的变化量,使得数据d1能够被识别出来是异常离群值,但是数据d2却无法识别出来是异常离群值,而数据d3本应该是正常值却被误判成了异常离群值。90.对于方案2来说,其只检测一个离群点,虽然现有技术中存在一些改进算法能够检测多个离群点,但是这些方法都非常复杂,降低了检测效率,并且,仍然无法避免方案1的缺陷,因为其假设时间序列中的数据值服从正态分布,这就无法对有趋势性、周期性、季节性的时间序列进行异常检测。91.为解决上述问题,本技术的发明构思是:92.本技术发明人经过对上述两个现有技术的方案进行分析,发现方案1只能解决单一场景且出错概率较大,方案2基本假设不符合现实情况,且忽略了数据的趋势性和周期性,需要引进其他方法加以解决,提高了监测成本。并且,如果采用有监督的机器学习算法,需要人为判断打标,还要引进外部数据,比如是否为周末,是否节假日的认为判断,模型参数要不断的迭代且计算复杂度极高。93.本技术采用表数据量在两个时点变化率作为基本计算单元,即跨时间段的变化率,结合移动平均、正态分布和偏态分布的基本原理的区别,巧妙的解决了趋势性和周期性的问题,且算法时间复杂度低。94.本技术提出一套运维工具的解决方案,该工具可以对各种时序数据做实时的异常值或离群值检测,主要对生产数据库中的表数据量时序波动变化监测,包括三个部分:数据实时采集器、离群值波动探测器、实时告警平台。95.其中,数据实时采集器用于实时收集数据库中一个或多个数据表的数据量,并组合成时间序列。离群值波动探测器用于检测时间序列是否出现异常离群值,若有,则通过实时告警平台向用户发出预警,本技术的数据量异常检测方法有如下特性:96.(1)周期性检验,可检测对有周期表现的时间序列的波动异常。97.(2)趋势校验,可检测带有趋势性的时间序列的波动异常。98.(3)不仅能判断当前时点是否离群,还能检测整个时间序列所有离群点。99.(4)简单、高效,算法简单,统计时间复杂度为o(n2),判断单一时时间复杂度点为o(1),判断所有时点为o(n)。100.(5)可以做到对数据库指定表数据量变化的实时监测、实时报告。101.下面具体介绍本技术提供的数据量异常检测方法:102.图2为本技术实施例提供的一种数据量异常检测方法的流程示意图。如图2所示,该数据量异常检测方法,用于对数据库中数据表的数量或数据量的波动变化进行时序监测,具体步骤包括:103.s201、获取初始时间序列。104.在本步骤中,初始时间序列包括:数据库中至少一个目标数据表在不同时间点的数据量。105.在本实施例中,通过数据实时采集器获取初始时间序列。可以预先指定数据库中的至少一个数据表为目标数据表,并定时获取目标数据表的数据量,或者是以其它非定时的方式实时获取目标数据表的数据量,在按照时间先后将这些数据量组合成初始时间序列。106.具体的,首先与数据库建立连接,如利用java语言,通过jdbc(javadatabaseconnectivity,java数据库连接接口)建立连接池,该连接池可以适配各种类型的数据库。然后响应于时间序列的采集指令,按需或者定时通过连接池读取目标数据表的数据量,比如每个小时执行一次数据采集sql语句:selectcount(*)fromtable。再将所读取到的目标数据表的数据量、目标数据表的名称、当前采集时间记录到预先定义好的结果表中,该结果表的示例性结构如表一所示:107.表名数值时间tbl1123132021/01/0121:00:00tbl1132312021/01/0122:00:00………108.表一109.然后,读取实时数据采集器的输出的初始时间序列:x(x1,x2,x3,……,xn-2,xn-1,xn)。110.图3为本技术实施例提供的时间序列结构示意图。如图3所示,时间序列x中的任意一个值xi是一个键值对,如:(数据值i,时间i),图3中的箭头方向代表时间的先后顺序。111.s202、根据预设时间间隔计算初始时间序列的多个变化率。112.在本步骤中,预设时间间隔interval可以预先由运维人员输入,如:e.g.interval=1(天)。即一个时间点对前interval个时间点的变化率,如对上一天或7天前的变化率等。113.需要说明的是,预设时间间隔是预设的时间单位的整数倍,时间单位可以设置为:分钟、小时、天、周、月、季度、年等等。114.还需要说明的是,本技术采用的变化率为前后两个时间点的数据值的比值,即xn/xn-interval,如,当interval=1时,变化率就是x2/x1。而不是现有技术的变化量,即前后两个时间点的数据值的差值,即xn-xn-interval。115.本技术可以通过调整预设时间间隔interval的大小和/或对应的时间单元的单位来调整所需要从时间序列中抓取的周期性,或者说通过时间序列的周期性来调整预设时间间隔。比如,实际的数据呈现月周期性,周周期性,甚至每半天的周期性,即数据按这些周期有规律的变化。因此可按实际的周期性来确定预设时间间隔interval的大小和/或对应的时间单元的单位。116.图4为本技术提供的一种周期性变化的时间序列的统计曲线图。如图4所示,曲线1为数据库中目标数据表的数据量随时间变化的曲线,即初始时间序列,数据量的单位是百万,时间单位是天,从图4上可以知道,曲线1按周呈现周期性波动变化,即预设时间间隔interval=7。曲线2表示对初始时间序列按预设时间间隔计算出的变化率随时间变化的情况。可以看出,曲线2平滑了周期性的波动干扰。即取变化率可以解决现有技术中对周期性变化的时间序列无法准确判断异常离群值的技术问题,打破了现有技术仅利用差值变化量的惯性思维,更为准确地识别出数据量异常波动。117.图5为本技术实施例提供的一种趋势性变化的时间序列的曲线图。如图5所示,曲线3为数据库中目标数据表的数据量随时间变化的曲线,即初始时间序列,数据量的单位是百万,时间单位是天,从图5上可以知道,曲线3呈现趋势性波动增长。对于这种类型的时间序列,现有技术的方案1和方案2都会出现误判,并且这个时候,方案2中假设整个时间序列符合正态分布,显然是不适用的。曲线4是本技术提出的初始时间序列的变化率曲线,可以看到曲线4排除了趋势性波动的干扰。118.s203、根据预设底数计算各个变化率的对数值,并根据变化率对应的时间顺序将对数值组合成第一时间序列。119.在本步骤中,不同于现有技术extremestudentizedeviate(esd)test中假设时间序列服从正态分布,本技术通过变化率破除了周期性或趋势性的波动干扰,这时候,我们所检测的对象就从初始时间序列转换到了变化率所形成的序列,而本技术发明人发现变化率在各类型实际使用场景中并不服从正态分布,反而更为接近的偏态分布,即变化率一般更集中在某个区域或者称为偏向均值的某一侧来分布,而不像正态分布是完全对称地分布在均值的两侧或者称为无偏的分布。因此,对变化率取对数运算,可以消除变化率的偏向影响,或者说消除变化率的异方差性所导致的不服从正态分布的特性,或者不符合线性回归特性。120.这样所形成的第一时间序列就解决了现有技术不考虑变化率的偏态特性引起异常离群值判定不够准确的技术问题。121.s204、判断第一时间序列中的各个数据是否落入异常区间。122.在本步骤中,异常区间是由第一时间序列所服从的概率分布情况相对应的,例如,第一时间序列服从对数正态分布,则可以通过设定对应的概率阈值,来确定概率分位点。123.在本实施例中,若是,则执行s205,若否,则返回s201。124.具体的,预先训练好的偏态分布模型对数据量的变化率的偏态分布情况进行了分析和区域划分,可以理解为在变化率分布图上的某个区域,变化率出现在该区域的概率大于或等于预设概率阈值。125.在本实施例中,预设概率阈值分为上限阈值和下限阈值,上限阈值和下限阈值分别对应着变化率分布图上坐标轴上的某个数值,即概率分位点,因此,本步骤具体包括:126.根据预设概率阈值确定偏态分布模型中的概率分位点;127.根据概率分位点确定异常区间;128.判断第一时间序列中的各个数据是否落入异常区间;129.若是,则确定数据为异常离群值。130.s205、根据异常离群值对应的异常类型,输出对应的告警信息。131.在本步骤中,异常类型包括:单点冲击异常、周期性波动异常以及趋势性波动异常中的至少一种。对应的,输出对应的告警信息,包括:132.当只发生了一种异常时,将异常类型记录到定时或即刻通知信息中;133.当发生了两种以上的异常时,立即向运维人员发送告警信息。134.在本实施例中,异常级别分为四级:135.无异常:n/a,即无需任何处理,不发告警136.通知级别:info,只作为通知信息记录,是否发给告警路由由运维人员设定。137.警告级别:warning,被认定极可能出现数据异常,需要引擎运维人员重视,必须告警。138.错误级别:error,即判定数据异常出错,必须发送告警。139.对于上述四个级别,发送告警的具体分配方式,如表二所示:140.数值冲击周期性趋势性告警级别正常正常正常n/a异常正常正常info正常异常正常info正常正常异常info异常异常正常warning正常异常异常warning异常正常异常warning异常异常异常error141.表二142.本技术实施例提供了一种数据量异常检测方法,通过获取初始时间序列,初始时间序列包括:数据库中至少一个目标数据表在不同时间点的数据量;根据预设时间间隔计算初始时间序列的多个变化率;根据预设底数计算各个变化率的对数值;根据变化率对应的时间顺序将对数值组合成第一时间序列;判断第一时间序列中的各个数据是否落入异常区间;若是,则确定第一时间序列存在异常离群值;根据异常离群值对应的异常类型,输出对应的告警信息。实现了周期性校验和趋势性校验,并且不止判断当前时点的数据是否离群,还可以检测整个时间序列所有离群点,解决了现有的数据异常监测存在无法甄别连续几个时间点出现异常,且无法适用于趋势性、周期性、季节性的时间序列的技术问题。143.图6为本技术实施提供的另一种数据量异常检测方法的流程示意图。如图6所示,该数据量异常检测方法的具体步骤包括:144.s601、获取初始时间序列。145.在本步骤中,初始时间序列包括:数据库中至少一个目标数据表在不同时间点的数据量。146.在本实施例中,为了便于理解,假设初始时间序列x在各个采样时间所采集到的目标数据表的数据量(单位:百万)如下:147.x=(122.2,123.3,123.1,124.5,123.7,122.9,122.1,121.7,122.6,123.1,122.5,123.4,123,124.6,123.8,122.6,122.3,121.8,122.7,123.2,122.2,123.3,123.1,124.5,123.7,122.9,122.1,121.7,122.6,123.1,122.2,123.3,123.1,124.5,123.7,122.9,122.1,121.7,122.6,129.1)。148.图7为本技术实施例提供的一种初始时间序列的曲线图。如图7所示,该初始时间序列既有周期性,也在一个周期中表现出了趋势性。149.s602、根据预设时间间隔计算初始时间序列的多个变化率。150.在本步骤中,根据公式(1)求取初始时间序列的各个变化率,公式(1)如下所示:[0151][0152]其中,interval为预设时间间隔。[0153]s603、根据预设底数计算各个变化率的对数值。[0154]在本步骤中,预设底数大于零,例如为自然常数e,或者为10。对数值的作用是消除各个变化率之间的异方差性,因为本技术发明人发现变化率对应的序列在实际应用中不符合正态分布的对称性特征,而是集中偏向于某个区域,带有非对称的偏向特性,而对数运算就是为了能够利用这一偏向特性,为后续采用对数正态分布来判断异常离群值奠定基础,而对数正态分布就是一种偏态分布。[0155]s604、根据各个对数值对应的时间顺序,确定第一时间序列。[0156]对于步骤s603和s604,具体的,可以假设预设底数为a(a》0),则第一时间序列x’中的任意一个数据x′i可以用公式(2)来计算:[0157]x′i=logabiꢀꢀꢀꢀ(2)[0158]其中,bi为变化率。[0159]需要说明的是,预设底数可以根据偏态分布模型的不同而取不同的数值,或者是根据所检测的对象的不同而设置为不同的数值。[0160]为了便于理解,假设取自然常数e为预设底数,则第一时间序列x'(x'k,x'k+1,…,x'n-2,x'n-1,x'n),其中,[0161]值得注意的是,因为初始时间序列x的前interval个点算不到变化率,所以这里的k从初始时间序列x的第interval个时点开始计数。[0162]图8为本技术实施例提供的图7所示初始时间序列对应的第一时间序列的曲线图。如图8所示,通过对数变化率将初始时间序列的周期性和趋势性波动进行了有效过滤,取对数则是因为变化率更加符合偏态分布。[0163]s605、根据预设概率阈值确定偏态分布模型中的概率分位点,并根据概率分位点确定异常区间。[0164]在本实施例中,偏态分布模型包括:对数正态分布模型。[0165]s606、利用移动平均算法,根据移动平均周期以及第一时间序列,确定第二时间序列。[0166]本步骤的作用是为了平滑第一时间序列的正常波动,以便于更加明显地发现异常离群值。[0167]具体的,可以通过移动平均转化器moveaveragetimeseriesconverter输出新的对数移动平均序列x”,即第二时间序列。按移动平均周期period算出移动平均序列x”,其中:[0168]x”i是x'i和之前连续period个时点的平均值。x”i=∑ii-period+1x'j,生成新的序列x”((x”m,x”m+1,………x”n-2,x”n-1,x”n)。[0169]值得注意的是,因为x'前period个点算不到移动平均,所以这里的m从第一时间序列x'的第period个时间点开始计数。[0170]s607、判断第二时间序列中的各个均值是否落入异常区间。[0171]在本步骤中,若是,则确定数据为异常离群值,执行s608,若否,则继续判断下一个数值,若第二时间序列全部完毕没有发现异常离群值,则返回s601。[0172]图9为本技术实施例提供的第二时间序列的曲线图。如图9所示,对数变化率基本都在±0.005之间,而超出这个区域就是异常区间,则图中最后一个数据点为异常离群值。[0173]s608、根据异常离群值对应的异常类型,输出对应的告警信息。[0174]在本步骤中,异常类型包括:单点冲击异常、周期性波动异常以及趋势性波动异常中的至少一种。[0175]在本实施例中,(1)单点冲击异常对应的预设时间间隔至少为一个时间单位,移动平均周期至少为预设时间间隔的两倍;[0176](2)周期性波动异常对应的预设时间间隔大于或等于两个时间单位,移动平均周期大于预设时间间隔;[0177](3)趋势性波动异常对应的预设时间间隔至少为一个时间单位,移动平均周期大于预设时间间隔,且至少为7至10个时间单位。[0178]需要说明的是,时间单位包括:分钟、小时、天、周、月、季度、年。[0179]具体的,为了更准确识别到目标数据表的数据量异常,要综合考虑数据的周期性、趋势性,因此要对时间序列数据做出按周期性、趋势性等情景探测,所以把离群值波动分三种情景:[0180]单点冲击异常:即跟上一时间点的数据相比,当前时间点的数据急剧波动。[0181]周期性波动异常:在某个时间周期中,出现非周期性的异常波动点。[0182]趋势性波动异常:在有趋势(增长趋势或下跌趋势)时间序列中,出现了明显脱离趋势的异常波动点。[0183]在本实施例中,实时告警平台中的计算指令模块以json格式将上述各个场景的计算参数所对应的计算参数指令发送给波动探测器。由波动探测器识别出不同的异常类型。[0184]例如,单点异常冲击场景(singledetect):此场景时点值变化跟上一个比较就可以,即计算指令为:interval=1.e.g.:{“p_threshold”:“0.99”,“period”:“5”,“interval”:“1”}。[0185]周期性波动异常场景(frequencydetect):在周期表现中的异常波动点,interval要体现周期频率,比如数据带有以“周”为周期的特点,则interval=7天,移动区间要大于interval。计算指令为:e.g.:{“p_threshold”:“0.99”,“period”:“14”,“interval”:“7”}。[0186]趋势性波动异常场景(trenddetect)):在有趋势(增长趋势或下跌趋势)的异常波动点,趋势性的参数为移动平均周期period,比如进一个月都在增长趋势中,则计算指令为:移动平均周期period=30天,e.g.:{“p_threshold”:“0.99”,“period”:“50”,“interval”:“1”}。[0187]对应的,输出对应的告警信息,包括:[0188]当只发生了一种异常时,将异常类型记录到定时或即刻通知信息中;[0189]当发生了两种以上的异常时,立即向运维人员发送告警信息。[0190]本技术实施例提供了一种数据量异常检测方法,通过获取初始时间序列,初始时间序列包括:数据库中至少一个目标数据表在不同时间点的数据量;根据预设时间间隔计算初始时间序列的多个变化率;根据预设底数计算各个变化率的对数值;根据变化率对应的时间顺序将对数值组合成第一时间序列;判断第一时间序列中的各个数据是否落入异常区间;若是,则确定第一时间序列存在异常离群值;根据异常离群值对应的异常类型,输出对应的告警信息。实现了周期性校验和趋势性校验,并且不止判断当前时点的数据是否离群,还可以检测整个时间序列所有离群点,解决了现有的数据异常监测存在无法甄别连续几个时间点出现异常,且无法适用于趋势性、周期性、季节性的时间序列的技术问题。[0191]图10为本技术实施例提供的一种数据量异常检测装置的结构示意图。该数据量异常检测装置1000可以通过软件、硬件或者两者的结合实现。[0192]如图10所示,该数据量异常检测装置1000包括:[0193]获取模块1001,用于获取初始时间序列,初始时间序列包括:数据库中至少一个目标数据表在不同时间点的数据量;[0194]处理模块1002,用于:[0195]根据预设时间间隔计算初始时间序列的多个变化率;[0196]根据预设底数计算各个变化率的对数值;[0197]根据变化率对应的时间顺序将对数值组合成第一时间序列;[0198]判断第一时间序列中的各个数据是否落入异常区间;[0199]若是,则确定第一时间序列存在异常离群值;[0200]根据异常离群值对应的异常类型,输出对应的告警信息。[0201]在一种可能的设计中,预设底数与变化率所服从的预测分布形态相对应,预设底数包括自然常数e。[0202]在一种可能的设计中,处理模块1002,用于:[0203]根据移动平均周期计算第一时间序列对应的多个移动平均值,并将各个移动平均值组合成第二时间序列;[0204]判断第二时间序列中的各个移动平均值是否落入异常区间。[0205]在一种可能的设计中,异常类型包括:单点冲击异常、周期性波动异常以及趋势性波动异常中的至少一种;[0206]对应的,处理模块1002,用于:[0207]当只发生了一种异常时,将异常类型记录到定时或即刻通知信息中;[0208]当发生了两种以上的异常时,立即向运维人员发送告警信息。[0209]在一种可能的设计中,单点冲击异常对应的预设时间间隔至少为一个时间单位,移动平均周期至少为预设时间间隔的两倍,时间单位包括:分钟、小时、天、周、月、季度、年。[0210]在一种可能的设计中,周期性波动异常对应的预设时间间隔大于或等于两个时间单位,移动平均周期大于预设时间间隔,时间单位包括:分钟、小时、天、周、月、季度、年。[0211]在一种可能的设计中,趋势性波动异常对应的预设时间间隔至少为一个时间单位,移动平均周期大于预设时间间隔,且至少为7至10个时间单位,时间单位包括:分钟、小时、天、周、月、季度、年。[0212]值得说明的是,图10所示实施例提供的装置,可以执行上述任一方法实施例中所提供的方法,其具体实现原理、技术特征、专业名词解释以及技术效果类似,在此不再赘述。[0213]图11为本技术实施例提供的一种电子设备的结构示意图。如图11所示,该电子设备1100,可以包括:至少一个处理器1101和存储器1102。图11示出的是以一个处理器为例的电子设备。[0214]存储器1102,用于存放程序。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。[0215]存储器1102可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。[0216]处理器1101用于执行存储器1102存储的计算机执行指令,以实现以上各方法实施例所述的方法。[0217]其中,处理器1101可能是一个中央处理器(centralprocessingunit,简称为cpu),或者是特定集成电路(applicationspecificintegratedcircuit,简称为asic),或者是被配置成实施本技术实施例的一个或多个集成电路。[0218]可选地,存储器1102既可以是独立的,也可以跟处理器1101集成在一起。当所述存储器1102是独立于处理器1101之外的器件时,所述电子设备1100,还可以包括:[0219]总线1103,用于连接所述处理器1101以及所述存储器1102。总线可以是工业标准体系结构(industrystandardarchitecture,简称为isa)总线、外部设备互连(peripheralcomponent,pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。[0220]可选的,在具体实现上,如果存储器1102和处理器1101集成在一块芯片上实现,则存储器1102和处理器1101可以通过内部接口完成通信。[0221]本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁盘或者光盘等各种可以存储程序代码的介质,具体的,该计算机可读存储介质中存储有程序指令,程序指令用于上述各方法实施例中的方法。[0222]本技术实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的方法。[0223]本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本
技术领域:
:中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由本技术的权利要求书指出。[0224]应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求书来限制。当前第1页12当前第1页12