目录
1. CsvQuery插件安装
2. CsvQuery简单说明
2.1 以表格的形式展示数据
2.2 执行SQL查询语句
2.3 将查询结果保存为新文件
2.4 数据处理
EXCEL打开csv文件日期、文本形式的大数会被自动转换成科学计数,用编辑器打开csv文件可以避免这种情况,但是没有EXCEL的表格形式易于阅读。一些编辑器插件可解决这个问题 ,例如:
NotePad++ 的插件 CsvQuery
1. CsvQuery插件安装
Plugins -> CsvQuery (如果没有,选择Plugins Admin...)
搜索要安装的插件,然后安装
2. CsvQuery简单说明
2.1 以表格的形式展示数据
可以以表格的形式打开csv文件,并指定分隔符
打开一个文件,CsvQuery -> Toggle CSV Query window
一般以逗号分隔,读文件可以指定分隔符、指定第一行是否为标题
2.2 执行SQL查询语句
读文件默认语句 SELECT * FROM THIS,切换文件浏览点击右侧 ReadFile 刷新读取
点击列标题可以按列正序、倒序排序
也可以执行其它SQL语句,在查询框中输入语句然后点击右侧 Execute 执行语句
2.3 将查询结果保存为新文件
可以通过创建新的csv替换分隔符;
可以将查询结果保存为新的csv文件
在CSV Query区域右键,选择 Create new CSV...
指定分隔符
然后会在新的标签创建新的文件
2.4 数据处理
现在考虑一个系统分为采集、计算、上报几个环境,每个步骤均为多线程。
采集、计算、上报会记录每个周期每个任务的开始和结束时间,通过找到每个周期中最早的任务采集开始时间和最晚的任务结束时间,可以得到每个周期的采集任务总时长;同理,可以得出每个周期计算任务总时长和上报任务总时长;求出每个周期上报任务最晚的结束时间和采集任务最早的开始时间,就可以得到每个周期端到端的总时长。
(1)以采集任务三分钟统计文件为例,时间单位ms
ROP|taskName|taskType|beginTime|endTime|TimeCost
202211291300|A1_01_X|AAA|2022-11-29T13:02:18.080589970|2022-11-29T13:02:18.175409973|95
202211291300|B_Y|BBB|2022-11-29T13:02:19.163168962|2022-11-29T13:02:19.416363723|253
202211291300|S01_X|SSS|2022-11-29T13:02:19.115749209|2022-11-29T13:02:19.423688042|308
202211291300|S01_X|SSS|2022-11-29T13:02:19.105705009|2022-11-29T13:02:19.455668083|350
202211291300|C02_X|CCC|2022-11-29T13:02:19.096654522|2022-11-29T13:02:19.455876528|359
202211291300|D01_X|DDD|2022-11-29T13:02:19.156505467|2022-11-29T13:02:19.481252537|325
202211291300|E_X_01|EEE|2022-11-29T13:02:19.178462737|2022-11-29T13:02:19.574561026|396
202211291300|A1_01_X|AAA|2022-11-29T13:02:19.185465245|2022-11-29T13:02:20.112988507|927
202211291300|F1_5_X01|FFF|2022-11-29T13:02:19.154959630|2022-11-29T13:02:20.176828913|1022
202211291300|A1_01_X|AAA|2022-11-29T13:02:20.153075264|2022-11-29T13:02:20.244616179|91
202211291300|F1_5_X|FFF|2022-11-29T13:02:19.178406279|2022-11-29T13:02:20.253262559|1075
202211291300|A1_02_X|AAA|2022-11-29T13:02:19.134695120|2022-11-29T13:02:20.294381598|1160
202211291300|A1_02_X|AAA|2022-11-29T13:02:21.096833045|2022-11-29T13:02:21.193210667|97
202211291300|A1_02_X|AAA|2022-11-29T13:02:21.197498279|2022-11-29T13:02:21.222431679|25
202211291300|C01_X|CCC|2022-11-29T13:02:22.107281135|2022-11-29T13:02:22.297591093|190
202211291300|D02_X|DDD|2022-11-29T13:02:22.174635657|2022-11-29T13:02:22.399685452|225
202211291301|A1_01_X|AAA|2022-11-29T13:03:18.077610859|2022-11-29T13:03:18.153296340|76
202211291301|S01_X|SSS|2022-11-29T13:03:19.092131589|2022-11-29T13:03:19.201854998|109
202211291301|B_Y|BBB|2022-11-29T13:03:19.397562746|2022-11-29T13:03:19.564471078|167
202211291301|S01_X|SSS|2022-11-29T13:03:19.092241364|2022-11-29T13:03:19.571959100|479
202211291301|E_X_01|EEE|2022-11-29T13:03:19.387991214|2022-11-29T13:03:19.888696985|501
202211291301|D01_X|DDD|2022-11-29T13:03:19.373646090|2022-11-29T13:03:19.934510826|561
202211291301|D02_X|DDD|2022-11-29T13:03:19.332637631|2022-11-29T13:03:19.935258716|603
202211291301|F1_5_X|FFF|2022-11-29T13:03:19.347815301|2022-11-29T13:03:20.606118364|1259
202211291301|F1_5_X01|FFF|2022-11-29T13:03:19.351736174|2022-11-29T13:03:20.628395471|1277
202211291301|A1_02_X|AAA|2022-11-29T13:03:19.356609165|2022-11-29T13:03:20.726106890|1370
202211291301|A1_02_X|AAA|2022-11-29T13:03:21.079486996|2022-11-29T13:03:21.165205265|86
202211291301|A1_02_X|AAA|2022-11-29T13:03:21.170371449|2022-11-29T13:03:21.201199252|31
202211291301|C01_X|CCC|2022-11-29T13:03:22.078229314|2022-11-29T13:03:22.184879813|106
202211291301|C02_X|CCC|2022-11-29T13:03:22.237895028|2022-11-29T13:03:22.337285245|100
202211291301|A1_01_X|AAA|2022-11-29T13:03:22.180763634|2022-11-29T13:03:22.788876818|608
202211291301|A1_01_X|AAA|2022-11-29T13:03:22.793635126|2022-11-29T13:03:22.943617381|150
202211291302|A1_01_X|AAA|2022-11-29T13:04:18.094686569|2022-11-29T13:04:18.155230980|61
202211291302|B_Y|BBB|2022-11-29T13:04:19.107167256|2022-11-29T13:04:19.507106671|400
202211291302|S01_X|SSS|2022-11-29T13:04:19.151995631|2022-11-29T13:04:19.519249983|368
202211291302|S01_X|SSS|2022-11-29T13:04:19.147699283|2022-11-29T13:04:19.523258834|376
202211291302|C02_X|CCC|2022-11-29T13:04:19.088292866|2022-11-29T13:04:19.611661623|523
202211291302|D01_X|DDD|2022-11-29T13:04:19.202207162|2022-11-29T13:04:19.689606897|487
202211291302|F1_5_X|FFF|2022-11-29T13:04:19.185080296|2022-11-29T13:04:20.376610959|1191
202211291302|F1_5_X01|FFF|2022-11-29T13:04:19.088443175|2022-11-29T13:04:20.481511203|1393
202211291302|A1_02_X|AAA|2022-11-29T13:04:19.098590610|2022-11-29T13:04:20.603674023|1505
202211291302|A1_01_X|AAA|2022-11-29T13:04:19.233066201|2022-11-29T13:04:20.760700439|1527
202211291302|A1_01_X|AAA|2022-11-29T13:04:20.771279639|2022-11-29T13:04:20.821185559|50
202211291302|A1_02_X|AAA|2022-11-29T13:04:21.079337796|2022-11-29T13:04:21.193282303|114
202211291302|A1_02_X|AAA|2022-11-29T13:04:21.199200417|2022-11-29T13:04:21.240825008|41
202211291302|C01_X|CCC|2022-11-29T13:04:22.095528016|2022-11-29T13:04:22.341042711|246
202211291302|D02_X|DDD|2022-11-29T13:04:22.189471553|2022-11-29T13:04:22.503535188|314
202211291302|E_X_01|EEE|2022-11-29T13:04:22.201339281|2022-11-29T13:04:22.514851204|313
首先读取文件,点击ReadFile
注:使用SQLite的语法,Plugins -> About
执行 SELECT ROP,MIN(beginTime), MAX(endTime),strftime('%f',MAX(endTime))-strftime('%f',MIN(beginTime)) AS totalCollectTimeCost FROM THIS GROUP BY ROP
按周期(每分钟)即ROP字段分组,MAX(endTime) 找出任务最晚完成时间,MIN(beginTime) 找出任务最早开始时间,二者的差(totalCollectTimeCost )即每分钟执行全部任务花费的总时长
(2)将每周期采集统计结果的MIN(beginTime) 记为collectBeginTime, 每周期上报统计结果的MAX(endTime) 记为 repEndTime,其差值即每周期全部任务的端到端处理时长
执行 SELECT ROP,collectBeginTime,repEndTime,strftime('%f',repEndTime)-strftime('%f',collectBeginTime) AS totalE2ETimeCost FROM THIS GROUP BY ROP