供应链库存优化
业务背景
制造业库存管理贯穿整条供应链:原材料采购 → 在制品 → 成品仓 → 区域配送中心 → 销售终端。每个节点都需要在缺货断供和积压占用资金之间寻找平衡。
随着全球供应链复杂度的提升——多仓布局、多 SKU 管理、需求季节性波动、供应商交期不稳定——传统依赖 ERP/MRP 系统的静态安全库存模型已无法应对现实挑战。
核心数据来源:
这些数据分散在多个系统,难以实时汇聚分析。采购和供应链团队依赖人工汇报和周报,无法在库存告急的第一时间做出响应。
行业痛点
1. 静态安全库存,无法适应需求波动
传统 MRP 系统的安全库存是一次性设定的静态值,不随季节、促销、市场变化自动调整。库存周转天数行业均值达 6090 天,滞销品资金占用率约 1520%。
2. 补货决策滞后,依赖人工判断
采购员面对数百个 SKU,靠经验和 Excel 做补货判断。需求突然上涨时,等报表出来、会议讨论、审批下单,往往已经缺货数天,还要额外支付加急运费。
3. 多仓库存不均衡,调拨决策困难
同一 SKU 北京仓积压、上海仓缺货的情况频繁出现,但跨仓调拨涉及物流成本、库龄优先级、在途追踪,人工决策效率低,往往宁可重新补货也不调拨。
4. 需求预测精度低,无法感知异常
传统移动平均法无法识别节假日效应、竞品上市、促销拉动等外部因素,需求异常只能事后复盘。
5. 供应商交期波动未纳入补货决策
ERP 中
lead_time_days 是静态配置,供应商延期信息无法自动更新。实际补货计划用的是"应该是几天"而不是"实际要几天",造成系统性低估缺货风险。
数据来源详解
WMS — 库存快照(→ supply_chain_inventory
)
supply_chain_inventory| 企业规模 | 典型产品 | 推荐接入方式 |
|---|---|---|
| 大型 | SAP EWM、Oracle WMS Cloud、曼哈顿 WMS | API/CDC 实时推送 |
| 中型 | 旷视蓝河、科捷物流、宏景 WMS | 定时 CSV 导出 → |
| 小型 | 管易云、旺店通 | MySQL CDC(参考 03-mysql-cdc-sync) |
ERP 中的补货参数(
lead_time_days、reorder_point)变化频率低(月级),随库存快照合并写入,建议每日全量覆盖。
OMS — 历史需求(→ supply_chain_demand
)
supply_chain_demand| 企业规模 | 典型产品 | 推荐接入方式 |
|---|---|---|
| 大型制造商 | SAP SD、Oracle Order Management | BAPI/RFC 或 DB 同步 |
| 电商/零售 | 旺店通、管易云、天猫/京东 ERP | 平台开放 API 定时拉取 |
| B2B 制造 | 金蝶云·星空、用友 U9 | 自定义 API 或 DB 直连 |
需求数据天数不足 7 天时,
urgency 自动标记为"数据不足",不触发补货建议,避免误操作。
供应商系统 — 实时交期(→ supply_chain_supplier_lead_time
)
supply_chain_supplier_lead_time| 数据来源 | 接入方式 |
|---|---|
| 供应商 SRM 门户 | API / EDI |
| 物流追踪平台 | 菜鸟/AfterShip 开放 API |
| 供应商邮件/通知 | 结构化解析,自动写入交期表 |
supply_chain_replenishment_plan 优先使用该表的最新记录覆盖 ERP 静态值,lead_time_source 字段标注数据来源(SRM/EDI/AI_EXTRACT/ERP静态值),全程可追溯。
基于 ClickZetta Lakehouse 的解决方案
多系统数据汇入 Lakehouse 后,通过 Dynamic Table 增量计算 + 窗口函数多时间窗口分析 + 供应商实时交期联动,构建一套自动刷新的补货决策系统。
整体架构
核心计算逻辑
方案技术优势
1. 供应商实时交期动态覆盖 ERP 静态值
这是本方案区别于传统 MRP 的核心:
supply_chain_supplier_lead_time 表实时更新,supply_chain_replenishment_plan 的 effective_lead_time 自动使用最新交期。供应商延期 → 系统立即重新计算 urgency,不再依赖人工通知后手动修改 ERP 参数。
2. 多时间窗口检测需求趋势,AI 解读异常原因
3. 数据不足保护,避免以极少天数均值驱动大额补货
当
demand_data_days < 7 时 urgency 标记为"数据不足",不触发补货建议,防止新上架 SKU 因仅有 1~2 天历史数据而产生错误的高频补货指令。
4. MERGE INTO 幂等存档,历史补货计划可追溯
每小时自动归档一次计算结果,支持 Time Travel 回溯任意时间点的补货建议,辅助采购决策复盘和责任追溯。
5. 纯 SQL,与现有 ERP/WMS 低耦合
只需各系统定期推送数据到 Lakehouse,不改造现有系统。补货建议通过 Studio Task 推送给采购系统,上线周期以天计而不是以月计。
客户价值
供应链/采购团队:补货优先级实时可见,紧急 SKU 自动告警,不再依赖每周报表才发现缺货。
库存管理团队:
days_of_supply 可视化各仓健康度,多仓对比发现调拨机会,降低重复补货成本。
财务团队:
est_replenishment_cost 字段实时计算补货金额,支撑资金计划,目标将库存周转天数从 60IT/数字化团队:无需额外搭建 Python 预测服务或专项库存系统,Lakehouse 一站整合,统一运维。
方案文件
| 文件 | 内容 |
|---|---|
| 建表:库存快照、历史需求、供应商交期、补货存档 |
| 测试数据:3 仓库 × 3 SKU,14 天需求历史,供应商延期场景 |
| 核心链路:日均需求 DT → 补货计划 DT(含供应商交期联动)→ MERGE INTO |
| 清理所有对象(DT 优先于普通表) |
uat 验证结果
全量补货计划输出
| 仓库 | 产品 | 可用天数 | 实际交期 | 交期来源 | 建议补货量 | 预估成本 | 紧急度 |
|---|---|---|---|---|---|---|---|
| WH_SH | 显示器 27寸 | 1.9 天 | 18 天 | AI_EXTRACT | 37 件 | ¥35,150 | 紧急 |
| WH_SH | 无线鼠标 M100 | 2.2 天 | 5 天 | SRM | 35 件 | ¥875 | 紧急 |
| WH_BJ | 无线鼠标 M100 | 1.6 天 | 6 天 | SRM | 108 件 | ¥2,700 | 紧急 |
| WH_BJ | 机械键盘 K200 | 24.0 天 | 10 天(+3 延期) | EDI | 0 | — | 充足 |
| WH_GZ | 机械键盘 K200 | 16.7 天 | 7 天 | EDI | 0 | — | 充足 |
| WH_GZ | 显示器 27寸 | 22.5 天 | 14 天 | SRM | 0 | — | 充足 |
关键验证点
- 供应商实时交期生效 ✅:WH_SH 显示器
由 AI_EXTRACT 从供应商通知中提取为 18 天(ERP 静态值 14 天),延期 4 天直接导致 urgency 标记为"紧急",建议补货量 37 件 · ¥35,150lead_time_days - COALESCE 回退逻辑正确 ✅:有供应商实时交期的用实时值,无记录的回退 ERP 静态值,
完整记录来源(SRM/EDI/AI_EXTRACT/ERP静态值)lead_time_source - WH_BJ 键盘延期但不紧急 ✅:供应商延期 3 天(EDI,10 天),但库存可用 24 天,
,说明urgency=充足
+ urgency 计算正确区分了"延期但不危险"和"延期且危险"COALESCE - MERGE INTO 幂等存档 ✅:6 条记录成功写入
supply_chain_replenishment - 数据不足保护未触发 ✅:所有 SKU 需求天数 ≥ 7 天,无"数据不足"误触发
- 需求异常检测未触发 ✅:14 天测试数据的 7d/30d 波动均未超过 30%(符合设计)
供应商交期影响分析
| 产品 | 仓库 | ERP 交期 | 实际交期 | 延期天数 | 来源 | urgency 影响 |
|---|---|---|---|---|---|---|
| 显示器 27寸 | WH_SH | 14 天 | 18 天 | +4 | AI_EXTRACT | 紧急(无延期则仅正常) |
| 机械键盘 K200 | WH_BJ | 7 天 | 10 天 | +3 | EDI | 无影响(库存充足) |
| 无线鼠标 M100 | WH_BJ | 7 天 | 6 天 | -1 | SRM | 无影响(已紧急) |
核心查询
注意事项
补货参数
优先使用effective_lead_time
最新记录,无记录时回退 ERP 静态值,supply_chain_supplier_lead_time
字段标注来源,方便审计lead_time_source- 安全库存缓冲天数(+7 天)当前为硬编码,生产环境建议提取为参数表,按 ABC 分类差异化配置
数据质量
- 需求数据天数不足 7 天时 urgency 标记为"数据不足",不触发补货建议
- 库存快照每日写入一次,
确保只用最新快照;同一天多次写入时需注意时间戳精度WHERE snapshot_date = MAX(snapshot_date)
需同时有 7 天和 30 天数据且均非 NULL 才触发(已做保护),新上架 SKU 数据不足 30 天时不会误报异常demand_anomaly_flag
供应商交期(uat 验证确认)
按supply_chain_supplier_lead_time
取最新(warehouse_id, product_id)
一条记录,多次更新只用最新值effective_date- AI_EXTRACT 解析供应商通知后,需将结果写入
表才能生效;写入后 Dynamic Table 下次 REFRESH 自动使用新交期supply_chain_supplier_lead_time - 供应商延期"库存充足"和"库存危险"会正确区分:WH_BJ 键盘延期 3 天但库存可用 24 天,仍为"充足"(uat 验证确认)
Dynamic Table
- 分区表 PRIMARY KEY 必须包含分区键(
、snapshot_date
、demand_date
)effective_date - Dynamic Table 不支持 DML,历史数据修正只能在源表操作
- teardown 顺序:先 DROP Dynamic Table,再 DROP 普通表,否则报依赖错误
AI 函数(扩展层)
- Lakehouse 目前无原生时序预测函数(
返回 0 行,uat 实测确认)SHOW FUNCTIONS LIKE '%FORECAST%'
适合需求异常原因解读,精确数值预测可通过 External Function 部署 Prophet/ARIMAAI_COMPLETE
扩展方向
- 需求异常 AI 解读:
时触发demand_anomaly_flag=TRUE
分析原因(促销/节假日/竞品)AI_COMPLETE - ABC 库存分类:用
对 SKU 自动分类,A 类设更严的缓冲天数,C 类可放宽AI_CLASSIFY - 多仓调拨优化:同 SKU "充足仓 → 紧急仓" 调拨建议,降低重复补货成本
- 与缺陷检测联动(02-defect-detection-ai):高缺陷率批次触发原材料缺货风险预警
- SPC 统计过程控制:用 Dynamic Table 计算缺货率控制限,产线断供自动预警
相关文档
AI 函数
| 文档 | 说明 |
|---|---|
| AI 函数概述 | AI 函数整体介绍,模型选择、调用方式、计费说明 |
| AI_EXTRACT | 结构化信息提取函数,本方案用于从供应商通知文本中提取新交期、延期原因 |
| AI_COMPLETE | 通用 LLM 补全函数,本方案用于需求异常原因解读(促销/节假日/竞品/季节) |
| AI_CLASSIFY | 分类函数,可扩展用于 SKU ABC 分类自动化 |
Dynamic Table
| 文档 | 说明 |
|---|---|
| 动态表简介 | Dynamic Table 核心概念、增量刷新机制、与物化视图的选型对比 |
| 动态表开发入门 | 端到端建表、刷新、查看历史的完整示例 |
| CREATE DYNAMIC TABLE | 建表语法参考,含 、刷新调度等参数说明 |
| 动态表刷新调度 | 定时刷新配置,控制补货计划 Pipeline 的刷新频率 |
| 使用 Studio 开发监控动态表 | 通过 Studio 可视化监控 Dynamic Table 刷新状态和链路健康度 |
窗口函数
| 文档 | 说明 |
|---|---|
| 窗口函数概述 | 窗口函数语法、OVER/PARTITION BY/ORDER BY/ROWS BETWEEN 用法 |
| 通过窗口函数进行数据转换 | 多时间窗口滑动均值、环比、排名等场景的完整示例 |
| 用户行为漏斗分析:从曝光到下单的转化追踪 | 窗口函数实战案例,可参考多时间窗口计算模式 |
MERGE INTO
| 文档 | 说明 |
|---|---|
| MERGE INTO | 语法参考,含 MATCHED/NOT MATCHED 分支、幂等写入模式 |
| 商品维度历史追踪:用 MERGE INTO 实现缓慢变化维度(SCD Type 2) | MERGE INTO 幂等存档实战案例,与本方案补货计划归档模式相同 |
Time Travel
| 文档 | 说明 |
|---|---|
| Time Travel 概述 | Time Travel 机制介绍,支持回溯任意时间点的历史数据 |
| 数据误操作恢复:用 Time Travel 找回删除和改错的数据 | Time Travel 实战案例,适用于补货计划历史回溯和决策复盘 |
Studio 任务
| 文档 | 说明 |
|---|---|
| Studio 任务开发与运维 | 创建、部署、调度 Studio Task,用于定时推送补货建议到采购系统 |
| Studio 任务开发与运维实践 | Studio Task 开发最佳实践,含定时触发、告警通知配置 |
