今日批次
3/3个
成功 2 · 部分失败 1(R01 跳过 8 家门店)
批次成功率
96.7%
近 30 日 30 次,失败 1 次
平均耗时
4 分 00 秒
近 7 日区间 3 分 38 秒 ~ 4 分 11 秒
最长耗时
6 分 00 秒
B20251021-R01(模型步含 3 次分片超时重试)
断点续跑
2次
步骤级 1 次 · 分片级 1 次
数据新鲜度
2 小时 10 分
快照 00:00 → 批次 02:10 计算时点
决策批次五步流程 · B20251021-D01(日常补货)
2025-10-21 决策日 · 合计 240 秒(4 分 00 秒)· 状态:成功STEP 1
取数
02:10:00 · 84 秒
STEP 2
清洗
02:11:24 · 42 秒
STEP 3
模型
02:12:06 · 46 秒
STEP 4
约束
02:12:52 · 28 秒
STEP 5
出单
02:13:20 · 40 秒
G1S6X13批次 owner:李工(数据平台,值班 01:50–03:00)· 备份 owner:王运营(商品运营)· 升级路径:李工 → 平台负责人 → 值班经理
五步耗时分布
单批次取数 / 清洗 IO 密集,受同步延迟影响模型 / 约束 CPU 密集,受候选池规模影响出单 写外部系统,需幂等保护
单位:秒;五步合计 240 秒,与批次起止时间一致
近 7 日耗时趋势
单位:秒日常补货批次耗时 最快 218 秒(10-16)· 最慢 251 秒(10-18)
10-18 偏慢归因:促销活动日历当日生效,活动还原计算量 +18%
步骤运行明细 · B20251021-D01
逐步留痕| 步骤 | 开始时刻 | 耗时 | 状态 | 输入 | 输出 / 输出物 | 责任人 | 操作 |
|---|---|---|---|---|---|---|---|
| ① 取数 | 02:10:00 | 84 秒 | 成功 | POS 流水 1,284,630 行 · 库存快照 96,420 行 · 在途在单 3,180 行 | 快照 snap-20251021-0000(4.2 GB) | 李工 · 数据平台 | 日志从此步续跑 |
| ② 清洗 | 02:11:24 | 42 秒 | 成功 | 销量流水 1,284,630 行 | 清洗后 1,201,455 行(剔除退货冲销/无效单 83,175 行) | 李工 · 数据平台 | 日志从此步续跑 |
| ③ 模型 | 02:12:06 | 46 秒 | 成功 | SKC 382 个 × 门店 85 家 | 候选款店组合 14,968 行 · 预测 MAPE 18.6% | 陈工 · 算法组 | 日志从此步续跑 |
| ④ 约束 | 02:12:52 | 28 秒 | 成功 | 候选 14,968 行 | 命中 7 类约束 12,031 行(80.4%)→ 待决策 330 行 | 王运营 · 商品运营 | 日志从此步续跑 |
| ⑤ 出单 | 02:13:20 | 40 秒 | 成功 | 330 行决策 | 决策表 330 行 + 单据草稿 18 张 · 成本 ¥377,100 | 孙工 · 单据组 | 日志从此步续跑 |
i本页口径:耗时一律由起止时间戳计算,不使用人工登记的耗时;步骤内输出行数必须闭合(取数 → 清洗 → 候选 → 决策),任一步骤行数不闭合即触发 G1 告警并阻断出单。
批次列表
近 5 个批次 · 数据源 data.stats.batches| 批次号 | 场景 | 开始时间 | 结束时间 | 耗时 | 状态 | 候选行 | 决策行 | 操作 |
|---|---|---|---|---|---|---|---|---|
| B20251021-D01 | 日常补货 | 2025-10-21 02:10 | 2025-10-21 02:14 | 4 分 00 秒 | 成功 | 14,968 | 330 | 日志查看决策表 |
| B20251021-T01 | 区域调拨 | 2025-10-21 02:20 | 2025-10-21 02:23 | 3 分 00 秒 | 成功 | 3,204 | 96 | 日志 |
| B20251021-R01 | 残码清理 | 2025-10-21 02:30 | 2025-10-21 02:36 | 6 分 00 秒 | 部分失败 | 1,180 | 63 | 失败下钻重试 |
| B20251020-D01 | 日常补货 | 2025-10-20 02:10 | 2025-10-20 02:14 | 4 分 00 秒 | 成功 | 15,102 | 341 | 日志 |
| B20251019-S01 | 换店下沉 | 2025-10-19 02:40 | 2025-10-19 02:41 | 1 分 00 秒 | 失败 | 860 | 0 | 失败下钻重试 |
共 5 行每页
失败重试与断点续跑
响应速度取决于断点粒度- 断点粒度
- 批次级 / 步骤级 / 分片级(门店或 SKC 分片)
- 断点标识
- checkpoint = batchId + step + shard + 快照版本
- 已省算力
- S01 节省 34 秒(取数 14 + 清洗 8 + 模型 12)
- R01 分片续跑
- 仅重跑 8 家门店分片 132 秒,避免 360 秒全量重算
- 幂等边界
- 出单步骤写外部系统只保证 at-least-once,接收侧按业务键 upsert
- 禁止事项
- 出单步骤禁止简单重跑,否则重复开单
02:36 · B20251021-R01 结束(部分失败)
8 家门店缺失期初库存快照被跳过,分片级 checkpoint 已保存
02:38 · 批次级自动重试 1 次
仅重跑失败分片,80 秒后仍然失败(快照缺失非瞬时故障)
02:40 · 转入待处置
已通知 owner 王运营,等待「补快照后续跑」或「跳过并入明日批次」决策
计划 03:10 · 分片续跑
补 snap-20251021-0000 缺失的 8 家门店快照后,仅重跑该分片(预计 132 秒)
待处置动作
每条动作都要有 owner 与时限| 紧迫度 | 批次 | 问题 | 建议动作 | 责任人 |
|---|---|---|---|---|
| 高 | B20251021-R01 | 8 家门店缺失期初库存快照,残码清理未覆盖 | 补快照后分片续跑(03:10) | 王运营 |
| 中 | B20251019-S01 | 门店库容字段缺失导致求解不可行,10-20 已补跑成功 | 归档失败记录 + 回填主数据校验规则 | 李工 |
| 低 | B20251021-D01 | 批次成功,但快照新鲜度 2 小时 10 分(含线上增量流水) | 确认增量补偿任务(CDC)已覆盖 00:00–02:10 | 赵工 |
i设计说明:跑完不等于跑对。本页把「五步行数闭合 + 断点可续 + 出单幂等」三件事写在同一屏,是因为批次类事故 90% 出在这三处:行数不闭合、失败后全量重跑、重跑导致重复开单(X13)。
成功率口径
批次成功率 = 近 30 日成功批次 ÷ 计划批次(部分失败计入失败)。该口径比「有没有跑完」严格,能暴露长期被忽略的静默失败。
失败批次下钻 · B20251019-S01(换店下沉)
重试从断点续跑跳过该步降级启发式回滚出单关闭- 批次号
- B20251019-S01
- 场景
- 换店下沉
- 开始 / 结束
- 2025-10-19 02:40 → 2025-10-19 02:41
- 耗时
- 1 分 00 秒(失败退出,未进入出单)
- 候选 / 决策
- 860 行 → 0 行
- 失败步骤
- ④ 约束(求解不可行)
- 报错码
- SOLVER_INFEASIBLE(门店库容字段为空)
- owner / 备份
- 李工(数据平台) / 王运营(商品运营)
- runbook
- RB-01 决策批次失败处置(4 步,RTO ≤ 60 分钟)
2025-10-19 02:40:00
批次启动;取数 14 秒、清洗 8 秒、模型 12 秒全部成功,checkpoint 落地
2025-10-19 02:40:34
约束求解开始:18 家门店库容字段为空,求解器判定不可行
2025-10-19 02:41:00
求解超时 26 秒后退出,批次标记失败;出单未执行(无脏数据外流)
2025-10-19 02:41:05
自动重试 1 次(同参数)仍不可行 —— 数据缺失类故障重试无意义,停止重试并告警
2025-10-20 04:12:00
主数据补齐后从「约束」步续跑:约束 22 秒 + 出单 22 秒 = 44 秒(全量重跑需 78 秒)
为什么这次失败不能靠重试解决
重试只对「瞬时故障」(网络抖动、下游限流)有效;对「数据缺失」类故障必须修数后从断点续跑,否则每天凌晨都在烧算力。本页把失败原因分为瞬时 / 数据 / 规则 / 容量四类,只有瞬时类允许自动重试。
| 失败分类 | 典型报错 | 自动重试 | 标准处置 |
|---|---|---|---|
| 瞬时 | 下游限流 429 / 连接超时 | 是(最多 3 次,指数退避) | 自动重试后仍失败 → 转数据类 |
| 数据 | SOLVER_INFEASIBLE / 字段缺失 / 快照缺失 | 否 | 修数 → 从断点续跑 → 恢复后四项校验 |
| 规则 | RULE_CONFLICT(约束互斥) | 否 | 规则预演(M12)→ 灰度修正 → 重跑 |
| 容量 | OOM / 求解超时(> 15 分钟) | 是(1 次,降低分片大小) | 调小分片 + 启用降级启发式,事后回补精确解 |