示例成品 · 平台演示,按左边这组点选真跑出来的
示例:数据重复根因排查表
统计口径:主键为 id,业务键为 order_no;样本总量 12000 条,重复条数 860 条,重复键数 430 个,去重后条数 11140 条。
序号 | 疑似原因 | 证据 | 验证方法 | 修复建议
1 | 重跑未幂等 | 重复行集中在 2024-06-12 02:00 重跑批次,同一 order_no 出现 2 次 | 按重跑时间点分组统计重复条数,对比非重跑批次 | 在写入前按业务键做去重或改为 upsert,重跑任务加幂等开关
2 | 上游重复推送 | 同一订单在 5 分钟内被推送 3 次,写入日志时间戳相邻 | 取 order_no 查上游发送记录,核对推送次数与时间间隔 | 上游发送端增加消息去重,消费端按业务键去重落库
3 | 连接重复 | 部分重复行来自多表 join 后的结果表,行数大于源表 | 对 join 前后行数做对比,检查关联键是否唯一 | 关联前先对维表去重,或改用窗口函数取最新一条
4 | 分区覆盖异常 | 重复行跨两个日期分区,同一业务键在两个分区各出现 1 次 | 按分区统计重复键数,核对分区写入时间 | 调整分区覆盖策略,保证同一业务键只落一个分区
结论:优先排查重跑未幂等与上游重复推送,两类合计覆盖约八成重复键。
注:示例中数字均为示意,实际结果由程序按上传样本计算。
点左边「开工 · 直接出成品」,出一份你自己的版本(文字免费)