首页/数据/数仓建模速查/日内时间维度
维度与事实设计149 条

日内时间维度

分析订单时段分布、配送时长等场景时,使用分钟级时间维(含时段标签:早高峰/午间/晚高峰),与日期维可分可合。

数仓建模速查数据更新于 2026-10-13

日内时间维度是什么

日内时间维度指当分析要落到一天之内的时段时(订单时段分布、配送时长、客服接线量、直播间在线人数),单独建一张分钟级或秒级的时间维度表,包含 HH:mm、小时、时段标签(早高峰、午间、晚高峰)等属性。它与日期维度可以分开建,也可以合成一张宽时间维。关键在于时段分桶规则必须经业务确认后固定,不能各报表临时写 CASE WHEN。

基本信息

粒度分钟级最常见,秒级仅在流量类分析使用
时间键如 0930 表示 9 点 30 分,或 HH:mm:ss
标签属性时段分桶、是否营业时、是否高峰
与日期维关系可分可合,合成时属性需同时覆盖日与时段
前提分桶规则由业务确认并写入数据字典

典型使用场景

  • 订单时段分布:看一天内下单与支付的高峰落在哪个时段
  • 配送时长分析:按取餐时段分组统计配送耗时
  • 客服接线量:按时段看进线与接通率,用于排班
  • 直播与内容分析:按分钟看在线人数与互动峰值
  • 营销投放:按时段对比活动前后转化差异
  • 异常定位:某时段指标骤降,判断是系统问题还是业务波动

时段分布与分桶

时段分布与分桶
-- 按时段看订单分布(dim_time 提供时段标签)
SELECT t.time_band, count(1) AS order_cnt
FROM   fact_order f
JOIN   dim_time   t ON f.time_key = t.time_key
WHERE  f.dt = '2026-10-11'
GROUP  BY t.time_band;

-- 时段分桶规则集中定义在维表里,而不是散落在各报表
-- 例如:06:00-09:59 早间;10:00-11:29 午前;
--       11:30-13:29 午间;17:00-19:59 晚高峰;其余为平峰
-- SELECT time_key, time_band FROM dim_time WHERE time_key BETWEEN 1100 AND 1330;

粒度选择对照

粒度行数适用
小时24 行每份粗粒度时段分析,最省
分钟1440 行每份订单与配送分析的主流选择
秒86400 行每份仅在流量与压测类分析中使用
与日期维合并日期数 × 时段数属性冗余但只需关联一张表
时段分桶是典型的口径争议点:晚高峰从几点开始,不同团队常有不同理解。一旦确定就固定在维表属性里并对外公告,需要调整时按变更流程处理;散落在各报表的 CASE WHEN 一旦分歧,同一指标的时段分布会互相矛盾。

易错点

  • 时段划分临时写在 SQL 里:多处口径不一致,同一报表换个作者数字就变
  • 直接建秒级时间维:八万多行的表对多数分析毫无必要,徒增关联成本
  • 时间键与日期键格式不统一:关联时要做隐式转换,裁剪与索引全部失效
  • 时段分桶变更不做历史说明:改规则后历史报表与新报表不可比
  • 跨时区业务共用一个时段维:不同地区的早高峰被算到同一时段

数据来源与参考

  • 数据仓库工具箱:时间维度
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌