运输时效预测模型:静态路由时效的计算与验证

运输时效预测模型:静态路由时效的计算与验证

物流行业的时效承诺,依赖的是时效预测。客户问"什么时候能到",运营给出的时间是预测出来的。

这个预测来自数仓的静态路由时效表。


静态路由时效是什么

静态路由时效表(dw.time_rule_ewb_static_route)存储的是每个运单的计划时效。

计算逻辑:根据运单的寄件网点和派件网点,计算从收件到签收的计划时间。

一个运单从上海发到北京,经过的路径可能是:

复制代码
上海网点 → 上海分拨 → 北京分拨 → 北京网点 → 签收

静态路由时效会计算每一段的计划时间:

  • 网点到首分拨:4小时
  • 首分拨到末分拨:8小时
  • 末分拨到网点:4小时
  • 网点到签收:2小时

总计:18小时

这个18小时就是预测的配送时间。


预测的数据基础:时效宽表

预测需要验证,验证需要实际时效。实际时效从哪来?

从扫描轨迹表(dw.bs_tracks_inc)提取。

扫描轨迹表是长表,一个运单对应十几行扫描记录:

waybillno actiontype orgcode time
WB001 1100 S001 2026-05-01 08:00:00
WB001 2100 C001 2026-05-01 10:00:00
WB001 2200 C001 2026-05-01 10:30:00
WB001 1500 D001 2026-05-02 09:00:00

时效宽表是宽表,一个运单对应一行,每个节点的时间各占一列:

waybillno receive_time first_center_arr_car_time last_center_send_car_time sign_time
WB001 08:00 10:00 18:00 09:00+1d

从长表变宽表,核心是分拨路径还原------识别首分拨、中转分拨、末分拨,提取每个节点的到车时间、发车时间。

产出表dwd.ewb_sub_act_plan_node_time_analysis_h


预测的计算方法

静态路由时效的计算,不是简单的"点到点距离÷速度"。

实际逻辑

  1. 获取运单的路由信息:寄件网点、派件网点、计划经过的分拨中心
  2. 查询每个节点的计划时间:从时效配置表获取每个节点的计划停留时间
  3. 累加计算总时效:各节点计划时间之和

数据来源

  • 运单基础信息表:获取寄件网点、派件网点
  • 时效配置表(dw.opm_qll_delivery_time):获取各节点的计划时间
  • 最优路线方案表(dim.route_optimal_plan_details):获取计划路由

产出表dws.ewb_sub_act_plan_node_time_analysis

这张表在时效宽表的基础上,增加了计划时效字段:

字段 说明
plan_route_hour_time 计划时效(小时)
act_route_hour_time 实际时效(小时)
plan_sign_time 计划签收时间

预测的验证方式

预测准不准,需要用历史数据验证。

验证逻辑:计划时效 vs 实际时效的偏差分析

sql 复制代码
SELECT 
    send_site_code,
    dispatch_site_code,
    AVG(plan_route_hour_time) AS avg_plan_time,
    AVG(act_route_hour_time) AS avg_act_time,
    AVG(act_route_hour_time - plan_route_hour_time) AS avg_diff
FROM dws.ewb_sub_act_plan_node_time_analysis
WHERE ds = '${dt}'
GROUP BY send_site_code, dispatch_site_code

偏差分析

线路 计划时效 实际时效 偏差
上海→北京 18h 20h +2h
上海→广州 24h 22h -2h
北京→武汉 12h 15h +3h

偏差为正,说明预测偏乐观(实际比计划慢)。偏差为负,说明预测偏保守(实际比计划快)。

预测准确率

sql 复制代码
-- 准时率:实际时效 ≤ 计划时效的比例
SUM(CASE WHEN act_route_hour_time <= plan_route_hour_time THEN 1 ELSE 0 END) * 100.0 / COUNT(*)

预测模型的局限

静态路由时效的预测,有几个局限:

1. 路由变化

计划路由和实际路由经常不一致。运单计划走上海分拨,实际走了杭州分拨。这种情况,计划时效需要重新计算。

解决:在DWS层,判断实际路由是否和计划路由一致。不一致时,用实际路由重新计算计划时效。

2. 异常事件

天气、交通、设备故障等异常事件,会影响时效。静态路由时效无法预测这些异常。

解决:在时效宽表中,标记异常运单,分析时排除异常数据。

3. 数据质量

扫描轨迹缺失、时间错误,会影响实际时效的准确性。

解决:到车和到件时间要兜底(COALESCE),同一分拨多次扫描要取min/max。


时效预测模型的数据架构

复制代码
┌─────────────────────────────────────────────────────────────┐
│                       数据源层                               │
├─────────────────────────────────────────────────────────────┤
│  扫描轨迹表        运单基础表        时效配置表        最优路由表  │
│  dw.bs_tracks     dwd.ewb_basic    dw.opm_qll   dim.route │
│  _inc             _detail_hour     _delivery_time  _optimal  │
└─────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────┐
│                       DWD层                                 │
├─────────────────────────────────────────────────────────────┤
│  时效宽表(实际时效)                                         │
│  dwd.ewb_sub_act_plan_node_time_analysis_h                  │
│  - 扫描轨迹 → 分拨路径还原 → 节点时间                          │
│  - 实际时效:首分拨到末分拨的时间                              │
└─────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────┐
│                       DWS层                                 │
├─────────────────────────────────────────────────────────────┤
│  时效对比宽表(计划+实际)                                     │
│  dws.ewb_sub_act_plan_node_time_analysis                    │
│  - JOIN静态路由时效表 → 计划时效                              │
│  - 计划时效 vs 实际时效 → 偏差分析                            │
└─────────────────────────────────────────────────────────────┘
                              ↓
┌─────────────────────────────────────────────────────────────┐
│                       ADS层                                 │
├─────────────────────────────────────────────────────────────┤
│  时效预测准确性分析                                           │
│  st.whole_route_via_optimal                                 │
│  - 各线路预测准确率                                           │
│  - 偏差TOP N线路                                             │
└─────────────────────────────────────────────────────────────┘

总结

时效预测模型的核心:

  1. 预测依据:静态路由时效表(根据运单点到点计算的计划时效)
  2. 验证数据:时效宽表(从扫描轨迹提取的实际时效)
  3. 预测准确性:计划时效 vs 实际时效的偏差分析

数仓的职责是:构建时效宽表、计算计划时效、验证预测准确性。

运营的职责是:根据预测时效给客户承诺,根据偏差分析优化调度。

时效预测不是猜测,是数据驱动的计算与验证。

相关推荐
字节数据平台6 小时前
iDA:从 ChatBI 到专业数据分析助手的演进之路
大数据·人工智能·机器学习·数据分析
warpdrivelabs7 小时前
Codex 开源 harness 全面了解
开发语言·人工智能
mit6.8247 小时前
微软如何交付企业级Agent
人工智能
Mininglamp_27187 小时前
明略科技携手海康机器人亮相世界机器人大会,以“Agent+具身“联合进入商业机器人场景
人工智能·科技·机器人·开源·agent·ai agent
2401_894915537 小时前
GEO 优化源码全解析:从搜索引擎到 AI 引擎的底层改写逻辑
java·服务器·前端·数据库·人工智能·分布式·搜索引擎
1000世界小札8 小时前
《大话数据结构》第9章精读:归并排序与快速排序完整 C++ 实现
数据结构·c++·算法
MobotStone8 小时前
从“听得懂”到“干得了”:工业大模型落地工厂的三层进化路线
人工智能
wangruofeng9 小时前
GLM-5.3-Flash 发布:追平 Opus 4.8 的智力,1/40 的价格,跑在国产芯片上
人工智能·aigc·chatglm (智谱)
2601_9561219711 小时前
背包基础篇(01、完全、分组、多重、混合)
c++·算法·动态规划
皮皮虾❀11 小时前
钉钉AI服务商×教育行业:AI现代产业学院共建一体化实战——从“高校AI教学缺平台”到“校企共建AI产业学院培养数字化人才
人工智能·钉钉