异常值检索

异常值,即在数据集中的情况下,有一个或多个异常大或者异常小的观测值。检查异常值对于计算机特别是服务器或者应用来说,存在着很重要的意义。

标准化数值(z-分数)可以用来确认异常值。

概念:

z-分数:利用平均数和标准差,我们可以确定任何观测值的相对位置。假设我们有一个n个观测值的样本,并且假设样本的平均数和样本的标准差已经被计算出来。与任何一个数值x(i)有点的另一个数值叫做z-分数。

公式:

 

经验法则告诉我们,对于具有钟形分布的数据,几乎所有的数值与平均数的距离都在3个标准差之内,因此在利用z-分数检测异常值时,我们建议把z-分数小于-3或者大于+3的任何数值都视为异常值。

 

我们在日常监控的时候,主要针对应用,服务器,数据库,网络。拿应用举个例子,应用的主要指标是响应时间RT,调用次数TPS,和可用率。RT一般处理的时候会更加关注大于+3的情况,TPS在处理的时候会集中在大于+3和小于-3两个方向,可用率小于-3的重点关注。

一般会取至少一个月的数据作为样本数据,当然数据量越大越准确。

 

 

 

==============SQL示例===============================================
select STORY.KEY,STORY.AVG,STORY.STD,STORY.RT,STORY.SCORE,TIGER.UTRH_DAY as TIME from
(select m.key,m.AVG,m.STD,m.RT,m.score from
(select x.key,x.AVG,x.STD,y.RT,(y.RT-x.AVG)/x.STD as score from

(select Key,AVG(RT_maxValue)as AVG,STD(RT_maxValue) as STD
from AAABBB
where periodTime>='2014-01-01'
and KEY in
(A,B,C)
group by KEY
order by KEY asc) x
left outer join
(select UTRH_KEY,MAX(UTRH_TP99) as TP99 from CCCDDD
where UTRH_day >= '2015-04-27 16:00:00'
and UTRH_day <= '2015-04-28 16:00:00'
and UTRH_key in (A,B,C) group by UTRH_key)y
on x.Key=y.UTRH_key )m
where m.score>=3 or m.score<=-3)STORY
left outer join
(select * from CCCDDD
where UTRH_day >= '2015-04-27 16:00:00'
and UTRH_day <= '2015-04-28 16:00:00')TIGER
on STORY.MDM_MOTHODKEY=TIGER.UTRH_KEY and STORY.TP99=TIGER.UTRH_TP99
ORDER BY STORY.SCORE

 

posted on 2015-04-29 09:46  小麦粒  阅读(551)  评论(0编辑  收藏  举报

导航