时间线自洽性检查
时间线交付前做一轮自检,比事后向人解释便宜得多。检查围绕四条展开:排序是否严格按归一后的时间列单调递增、是否存在空时间与解析失败的占位行、时间修正是否只应用了一次且方向正确、每行能否回指原始文件。逐项过一遍,能拦住绝大多数低级错误。
基本信息
| 排序检查 | 确认只按归一化时间列排序,且结果单调递增 |
|---|---|
| 空值检查 | 统计 NaT 与占位默认值行,回溯解析失败来源 |
| 修正检查 | 时钟偏移只应用一次,方向与偏移量都要记录 |
| 可追溯 | 每行来源列非空,能回指原始文件与行号 |
| 抽样核对 | 随机抽五行人工比对到原始日志对应行 |
典型使用场景
- 交付前对合并后的时间线做最后一道质检
- 发现时间线顺序异常时快速定位成因
- 复核他人产出的时间线是否可作为结论依据
- 排查合并脚本改动后引入的回归问题
- 作为报告附件,说明时间线的加工与校验过程
快速自检
快速自检
head -3 merged.csv; tail -3 merged.csv # 抽查首尾,确认时间单调
awk -F, 'NF<5' merged.csv | head # 字段数异常的行逐条看
awk -F, '$1=="" || $1 ~ /^(NaT|NULL)$/ {print}' merged.csv | head # 空时间与占位行
cut -d, -f6 merged.csv | sort | uniq -c | head # 来源列分布,确认没有空来源
wc -l merged.csv # 总行数是否等于各来源之和自检清单
| 检查项 | 通过标准 | 不合格的处理 |
|---|---|---|
| 排序 | 首尾与抽样均为单调递增 | 检查排序键与归一列是否同源 |
| 空值 | 无 NaT,无占位默认值 | 回到解析环节定位失败行 |
| 修正 | 偏移只应用一次,方向正确 | 按记录重算并重跑导出 |
| 来源 | 每行来源非空且可回指 | 补齐标识后重新导出 |
自检过程本身也要留一份记录附在工作日志里:检查了哪些项目、发现了什么问题、如何修正。接收方据此判断时间线的可信程度,而不是只能选择相信或不信。
只核对行数与首尾顺序不足以证明时间线正确:中段的错位、重复与空值在首尾完全看不出来。抽样必须落到中间段落,并对出现的差异逐条回原核对。