
一次数据分析的全过程
刚下完班的时候,在公司无聊的坐着,一位同事拿了一些数据给我,说让我实现一个类似交叉表格的统计报表。
源数据就是个日志文本信息
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,d ORDER BY B,g) lastc,
LAG(b, 1, 0) OVER (partition by f,d ORDER BY B,g) lastb,
case when c - LAG(c, 1, 0) OVER (ORDER BY tt)>=0 then c - LAG(c, 1, 0) OVER (ORDER BY tt)
else c - LAG(c, 1, 0) OVER (ORDER BY tt)+1000 end aa
from test6 t
) a
where a.g='ToFront()=TRUE' and a.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导入时的数据顺序有问题,不过我想也许是我自己还没找解决问题的根本原因吧。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
t 检验与 Wilcoxon 检验:数据差异比较的两大统计利器 在数据分析中,“比较差异” 是核心需求之一 —— 如新药疗效是否优于旧药 ...
2025-08-26季节性分解外推法:解锁时间序列预测的规律密码 在商业决策、资源调度、政策制定等领域,准确的预测是规避风险、提升效率的关键 ...
2025-08-26CDA 数据分析师:数据治理驱动下的企业数据价值守护者 在数字经济时代,数据已成为企业核心战略资产,其价值的释放离不开高 ...
2025-08-26基于 SPSS 的 ROC 曲线平滑调整方法与实践指南 摘要 受试者工作特征曲线(ROC 曲线)是评估诊断模型或预测指标效能的核心工具, ...
2025-08-25神经网络隐藏层神经元个数的确定方法与实践 摘要 在神经网络模型设计中,隐藏层神经元个数的确定是影响模型性能、训练效率与泛 ...
2025-08-25CDA 数据分析师与数据思维:驱动企业管理升级的核心力量 在数字化浪潮席卷全球的当下,数据已成为企业继人力、物力、财力之后的 ...
2025-08-25CDA数据分析师与数据指标:基础概念与协同逻辑 一、CDA 数据分析师:数据驱动时代的核心角色 1.1 定义与行业价值 CDA(Certified ...
2025-08-22Power Query 移动加权平均计算 Power Query 移动加权平均设置全解析:从原理到实战 一、移动加权平均法的核心逻辑 移动加权平均 ...
2025-08-22描述性统计:CDA数据分析师的基础核心与实践应用 一、描述性统计的定位:CDA 认证的 “入门基石” 在 CDA(Certified Data Analy ...
2025-08-22基于 Python response.text 的科技新闻数据清洗去噪实践 在通过 Python requests 库的 response.text 获取 API 数据后,原始数据 ...
2025-08-21基于 Python response.text 的科技新闻综述 在 Python 网络爬虫与 API 调用场景中,response.text 是 requests 库发起请求后获取 ...
2025-08-21数据治理新浪潮:CDA 数据分析师的战略价值与驱动逻辑 一、数据治理的多维驱动引擎 在数字经济与人工智能深度融合的时代,数据治 ...
2025-08-21Power BI 热力地图制作指南:从数据准备到实战分析 在数据可视化领域,热力地图凭借 “直观呈现数据密度与分布趋势” 的核心优势 ...
2025-08-20PyTorch 矩阵运算加速库:从原理到实践的全面解析 在深度学习领域,矩阵运算堪称 “计算基石”。无论是卷积神经网络(CNN)中的 ...
2025-08-20数据建模:CDA 数据分析师的核心驱动力 在数字经济浪潮中,数据已成为企业决策的核心资产。CDA(Certified Data Analyst)数据分 ...
2025-08-20KS 曲线不光滑:模型评估的隐形陷阱,从原因到破局的全指南 在分类模型(如风控违约预测、电商用户流失预警、医疗疾病诊断)的评 ...
2025-08-20偏态分布:揭开数据背后的非对称真相,赋能精准决策 在数据分析的世界里,“正态分布” 常被视为 “理想模型”—— 数据围绕均值 ...
2025-08-19CDA 数据分析师:数字化时代的价值创造者与决策智囊 在数据洪流席卷全球的今天,“数据驱动” 已从企业战略口号落地为核心 ...
2025-08-19CDA 数据分析师:善用 Power BI 索引列,提升数据处理与分析效率 在 Power BI 数据分析流程中,“数据准备” 是决定后续分析质量 ...
2025-08-18CDA 数据分析师:巧用 SQL 多个聚合函数,解锁数据多维洞察 在企业数据分析场景中,单一维度的统计(如 “总销售额”“用户总数 ...
2025-08-18