Files
lingniu-vehicle-ingest/reports/mileage-all-20260915-18/REPORT.md
T

48 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 所有车辆 2026-09-1518 日里程重算
已完成全部车辆范围的四天重算,覆盖 GB32960、JT808、YUTONG_MQTT,未设置 VIN 筛选。主回补于 2026-09-18 12:5513:09 依日期顺序执行,随后完成全量结果重建、旧基线补充修正及验证。18 日为进行中的自然日,实时统计已恢复,后续上报继续更新。
## 范围和结果
| 日期 | 主回补写入来源统计数 | 有日统计的车辆数 | 协议日统计行数 |
|---|---:|---:|---:|
| 09-15 | 1,270 | 678 | 1,043 |
| 09-16 | 1,270 | 657 | 1,016 |
| 09-17 | 1,262 | 667 | 1,032 |
| 09-18 | 1,118 | 595 | 927 |
主回补共写入 4,920 条来源统计,随后用正式投影逻辑重建四天全部 4,018 个 VIN/日期/协议结果。表中数量为验证快照,不是所有授权车辆数量;无上报车辆继续按既有规则结转或返回无数据,不伪造行驶里程。没有删除原始报文。
## 本轮额外发现并修正的回补问题
最终检查发现沪A68019F 的 JT808 09-16 日里程被算成 11642.8 km。回补优先使用原始数据查询中的 07-13 基线 10.4 km,忽略同一终端已经持久化的 09-04 基线 11653.1 km。09-16 最新累计 11653.2,正确差值为 0.1 km。
已修改 stats-backfill:即使内存里找到了历史原始记录,JT808/MQTT 也必须与数据库同来源基线比较,采用较新的记录;保持独立终端隔离。GB32960 继续采用此前修正的车辆里程表衔接规则。
在第二份备份后,事务内修正 105 条来源记录(JT808 101、MQTT 4),重建 96 个车辆日协议结果。真实累计回退的一条来源标记为 INVALID_DELTA,未强行转为正常。再次核查剩余 5 条候选只涉及基线时间更新,旧/新日里程完全一致,均为正在实时更新的 18 日记录。
部署版本:`/opt/lingniu-go-native/releases/mileage-durable-baseline-20260918`,更新 stats-backfill 及受控修复工具。实时 Writer 沿用已验证的 GB32960 基线修正版。
## 样本与验证
公网单日、区间分页和中台 HTTP 实测:
- 粤AGH624009-08 GB32960 保留 0.2 km09-15 GB32960 为 0 km,中台默认选择 JT808 的 0.1 km。
- 粤AGG504309-17 GB32960 为 70.7 km。
- 沪A68019F09-16 JT808 为 0.1 km、NORMAL。
- 09-18 两台样本响应通过当日累计减前一天累计的校验;数值会随新数据变化。
相关回归测试 `go test ./cmd/stats-backfill ./cmd/mileage-baseline-repair ./internal/stats` 通过,包括原始历史较旧时采用持久化较新基线、持久化缺失时保留内存基线的场景。
数据库检查:负日里程/负累计投影 0;15~17 日日统计与选中来源的日里程差异 0。对 1,024 个车辆绑定执行开放接口 Repository 核对,单日/区间一致性结果见 api-final-15-17.json。18 日会实时变化,采用同一响应内的累计差及真实公网样本验证。
Writer readyz 正常;三协议全部 Kafka 分区 lag=0,三个 worker 重试队列均为 0。临时测试应用在验证后停用并清除车辆授权。BI 历史缓存未清理。
## 备份与恢复
首次备份:`/opt/lingniu-go-native/backups/mileage-all-20260915-18/mileage-tables.sql.gz`,包含四天 4,017 条日统计、5,009 条来源记录;SHA-256`dd564cef4a72fc7c8658c40dc7aa69c8f185e4c387ab313b6d10708f345b148c`
补充修复前备份:`/opt/lingniu-go-native/backups/mileage-all-baseline-20260918/mileage-tables.sql.gz`,包含 4,018 条日统计、4,667 条来源记录;SHA-256`120675f820f83cb7134d6841e5b5ef36f60d762ef701aa719f6f73ceef1498c8`
两份均为限定四天、两张里程统计表的一致性快照,gzip 校验通过。恢复时先在独立库验证,避免覆盖已恢复实时写入后的新增记录。逐日日志、备份清单、部署哈希、HTTP 响应和数据库核对文件保存在本目录。历史原始累计读数未改动。