刚下完班的时候,在公司无聊的坐着,一位同事拿了一些数据给我,说让我实现一个类似交叉表格的统计报表。
我原以为是最多十几分钟就搞定的事情,没想到花了2个小时,所以印象比较深,就把全过程记录了下来
源数据就是个日志文本信息
2008/1/11 02:14:33:181 181 00001c68 SeqID 418370 ToBack()=TRUE Len=154 MsgID=x00000202
2008/1/11 02:14:33:181 181 00001c68 SeqID 418370 ToFront()=TRUE Len=260 MsgID=x08000202 BEIP=192.168.1.162 BEPort=22049
2008/1/11 03:05:42:330 330 00004110 SeqID 418370 ToBack()=TRUE Len=154 MsgID=x00000202
2008/1/11 03:05:42:346 346 00004110 SeqID 418370 ToFront()=TRUE Len=261 MsgID=x08000202 BEIP=192.168.1.163 BEPort=22049
要的结果是统计一下,各时段对应的超时毫秒的数量
理论上也不复杂,能找出数据规律,进行分组统计而已,但问题在于:
首先统计是上下文相关的,即通过上下文的数据相计算才能获取到相应的指标
其次如何判断上下文的场景,根据几组字段判断都有问题,即得不到唯一的标示
原来想着应该是轻而易举的事情,先把数据导入oracle吧
有日期有时间,需要把文本的日期时间处理成oracle的date类型,可偏偏date类型不支持毫秒运算,第一个问题出来了,依赖于日志中已有的毫秒进行上下文计算又有一定的问题。
先统计了再说吧
select b.hours,
case when overlap<10 then '<10ms'
when overlap<20 then '10-20'
when overlap<30 then '20-30'
when overlap<40 then '30-40'
when overlap<50 then '40-50'
when overlap<60 then '50-60'
when overlap<70 then '60-70'
when overlap<80 then '70-80'
when overlap<90 then '80-90'
else '>90ms'
end tt,
count(*)
from
(
select a.f,a.d from
(
select k,a,b,f,d,g,c,
LAG(c, 1, 0) OVER (partition by f,dORDER BY B,g) lastc,
LAG(b, 1, 0) OVER (partition by f,dORDER BY B,g) lastb,
case when c - LAG(c, 1, 0) OVER (ORDER BY tt)>=0then c - LAG(c, 1, 0) OVER (ORDER BY tt)
else c - LAG(c, 1, 0) OVER (ORDER BY tt)+1000 end aa
fromtest6 t
) a
where a.g='ToFront()=TRUE' anda.aa>90 )
order by f,d,b,g
) b
group by b.hours,
case when overlap<10 then '<10ms'
when overlap<20 then '10-20'
when overlap<30 then '20-30'
when overlap<40 then '30-40'
when overlap<50 then '40-50'
when overlap<60 then '50-60'
when overlap<70 then '60-70'
when overlap<80 then '70-80'
when overlap<90 then '80-90'
else '>90ms'
end
结果统计出来了,结果非预期的,又对几条数据进行了统计和明细的对比,发现确实有些小问题,可问题出在哪里,也说不清楚。
为了解释清楚这个问题,还是对数据加上行号吧,再次进行对比,发现数据的位置变化了,和原本的日志顺序是不一样的。
为了解决这个问题,还是用rownum加上表数据生成到另外一张测试表吧,再去看看行号和日志的顺序是否能够对应,却发现日志的插入顺序和行号是不一致的!
又问了下同事,业务逻辑到底是怎样的,答曰:日志中上下文的顺序是很严格的
看来需要彻底解决行号问题了。
又在Excel中做了一下测试,Excel做测试很容易,先获取上条记录的毫秒信息,再进行排序,再把数据进行筛选,然后再进行分组判断,最后进行交叉表的生成。
对应大数据量来说,Excel的拖拉显然就满了很多,其次还需要函数、排序、复制数据,总的来说还是比较耗时的。
还是想想怎么解决行号问题吧,确保行号就是数据的原始顺序,首先加了一个sequence,后来又在该表中增加了一个触发器,然后把数据重新导入一遍
create or replace trigger trigger_test6
before insert on test6
for each row
declare
begin
select tt.nextval into :new.tt from dual;
end trigger_test6;
再去验证数据的顺序,这次才算正常了
数据正常了,业务逻辑就简单多了,只需要把最内核的部分修改一下,按行号排序即可
select rr,k,a,b,f,d,g,c,
LAG(c, 1, 0) OVER (ORDER BY tt)lastc,
LAG(b, 1, 0) OVER (ORDER BY tt)lastb
from test6 t
统计完成后,再拷贝到Excel中进行数据透视表转换,再把表格数据拷贝出来,加一些美观信息即可。
该件事情还是没有得到完美解决
主要是毫秒的处理,理论上是时间的直接相减即可,可由于Oracle的date类型无法直接处理,只能采用日志中的毫秒字段进行相减了,碰到相减为负的,则再加回来1000,多少有些问题。
再其次,oracle导入时的数据顺序有问题,不过我想也许是我自己还没找解决问题的根本原因吧。
分享到:
相关推荐
本资源为SPSS数据分析课程 的一次作业文件,包含完整的解题文档和题目照片,以及输出结果文档,你想要的我都给你准备好啦!! 题目: (1)根据变量bdate生成一个新变量“年龄”。 (2)根据jobcat分组计算salary的...
数据分析和数据建模 大数据应用有几个方面, 一个是效率提升, 帮助企业提升数据处理效率, 降低数据存储成本。 另外一个是对业务作出指导,例如精准营销,反欺诈,风险管理以及业务提升。过去企业都 是通过线下渠道...
生产大数据分析,是在传统生产制造及生产调度理论和技术的基础上,融入大数据分析关键技术,全方位考虑生产运行全过程及上下游产业链的各项影响因素,更为合理的设置各类约束条件并进行参数优化,更为高效地完成...
通过当前数据库的值来进行数据分析,并且以图标的形式展现出来。 素有数据均做到了最低负载查询,最大化的...3、全过程数据挖掘通过最简单的计算方式得出,全程只用一次SQL查询,降低服务器负载,更方便二次开发。
扫一扫 看全文 2018 年第 23 期 理论 探索 本文 DOI: 10.16675/j.cnki.cn14-1065/f.2018.23.003 浅议大数据时代经济... 另一方面, 借助大数据技术可以对 经济普查数据分析过程进行实时关联和动态监控。 对 数据变化情
营销总经理要每天按 照固定的数据分析模型对当日发货量、累计业绩进度、发货客户数、发货品项数、产品 结构、区域结构等关键指标进行全方位多维次的实时监控。随时关注整体业绩达成的数 量和质量。 如果公司整体业绩...
此外,信息系统也可以帮助企业实现数据的一次录入全程共享,将多维度的分析结果实时高效地提供给管理者,企业的管理思想得以充分地发挥。例如,王立要求部门的全部营销人员,跟踪的市场项目信息全部录入信息系统,...
, 从始至终,数据分析者都在数据层面上思考问题,而不是拿着水彩笔和调色板在那里一笔一划作图,而计算机程序员则倾向于画点画线。Leland Wilkinson的著作在理论上改善了这种状况,他提出了一套图形语法,让我们在...
本文介绍了基于微信小程序的一次性环保餐具销售系统的开发全过程。通过分析基于微信小程序的一次性环保餐具销售系统管理的不足,创建了一个计算机管理基于微信小程序的一次性环保餐具销售系统的方案。文章介绍了基于...
本文介绍了基于微信小程序的一次性环保餐具销售系统的开发全过程。通过分析基于微信小程序的一次性环保餐具销售系统管理的不足,创建了一个计算机管理基于微信小程序的一次性环保餐具销售系统的方案。文章介绍了基于...
要想确保数据 质量就要做数据治理,而做数据治理,并非一次性的工作。 "它绝对不是一个毕其功于一役的事,它需要一个长期的过程,也需要很好的平 台。"王轩认为,"很多项目分析结果出来以后,项目是失败的,主要原因...
要想确保数据质量就要做数据治理, 而做数据治理,并非一次性的工作。 "它绝对不是一个毕其功于一役的事,它需要一个长期的过程,也需要很好的平台。"王轩认为,"很多项目分析结果出来以后,项目是失败的,主要原因...
微信小程序农场管理系统是一款专为现代农业设计的智能管理工具,通过微信小程序实现远程监控、数据分析与自动化管理。系统具备以下核心功能: 1. 实时监控:利用物联网技术,用户可通过小程序随时查看农场环境参数...
前言 之前接触到的数据库死锁,都是批量更新时加锁顺序不一致而导致的死锁,但是上周却遇到了一...先介绍一下数据库和表情况,因为涉及到公司内部真是的数据,所以以下都做了模拟,不会影响具体的分析。 我们采用的是5
Freeman分解是一种基于散射模型的目标相关矩阵分解,在1988年,外国学者Freeman和Durden在Van Zyl研究特征分解并提出自己的相关理论的基础上,利用组成地表物体目标散射模型的方法完成合成孔径雷达影像的分解,在这...
根据工作面倾向顶板断裂特征,将工作面分为上、中、下3个区,区域内支架数据按单支架顶板运动规律分析方法把符合来压判据的循环数据筛选后,按时间序列拟合,再一次判断是否符合来压条件,即多支架联合分析顶板运动规律。...
利用断层两盘岩层的电性差异,采用瞬变电磁法进行探测,在数据分析和处理过程中,选择滤波校正对随机噪声进行处理,全区视电阻率计算消除一次场对早期数据的影响,拟地震的反演方法进行深度和视电阻率反演计算的综合处理...
毕业设计是高等教育阶段对学生综合运用所学知识、独立分析和解决问题能力的一次全方位考核,其资源构成多元化且丰富。首先,最重要的资源是导师资源,他们是毕业设计过程中的引领者和指导者,提供专业理论指导、研究...