2026-08-17 技术评审-MAC-B端出货明细表806版本异常数据修复技术方案
会议信息
- 会议主题:B端出货明细表 806 版本异常数据修复技术方案评审(第 1 次)
- 会议时间:2026-08-17
- 参与人:马奇、王建朝、潘玉平、孙传熙、余勇军、粱健、李明非、贾继伟、宋洋
- 评审结果:不通过(需补充异常分类归因与临时表修复流程后再审)
一、技术方案背景
806 版本发版后,data 服务因 MySQL CPU 占用过高出现重启,导致 B端出货明细表中部分数据的货权经销商、产品信息、出货地址、签收地址等字段未写入或写入为空,需批量修复。
二、技术方案要点
1. 修复范围与定时任务拆分
- 修复对象:货权经销商(名称/编码/5段信息)、产品信息(编码/名称/品牌/规格/生产时间/批次)、出货地址、签收地址。
- 拆为 4 个定时任务(货权、产品、出货地址、签收地址),按时间分片 + 分页扫描 B端出货明细表空值记录,默认分片 2 小时,支持 job 参数调整。
- 货权/产品从 Mongo code_info 取数,RPC 兜底查 5 段;出货地址用明细表经纬度调高德逆解析(Redis 缓存 + QPS 限流);签收地址优先取 Mongo 签收单,为空再调高德。
2. 写入与防护策略
- 批量更新采用 Stream Load,update_time 默认可配(参数开关),避免下游同步压力。
- 高德调用双重保护:Redis 缓存相同经纬度解析结果 + 限流工具类控 QPS。
3. 评审中暴露的方案缺陷
- 未做异常归因:17 号仍出现货权经销商空值,溯源发现是经销商财务失效导致 5 段为空,并非 data 服务异常,修复脚本也补不进来,属业务逻辑问题非数据缺失。
- 直接按 SQL 分页修全表空值,会掩盖代码 bug(签收逻辑未写经销商)和需求问题(失效经销商是否展示 5 段),修完仍会再产生。
三、决议事项
- 潘玉平暂停执行 B端修复定时任务发版,先将 806 后疑似异常数据全量导出,按"data服务异常 / 代码bug / 经销商失效 / 经纬度无法解析"分类统计条数与占比,更新进技术文档再审。
- 货权经销商 5 段信息在财务失效场景下是否必填,需产品确认逻辑后再决定补数规则。