首页/数据/数仓建模速查/案例:电力计量读数快照
建模基础69 条

案例:电力计量读数快照

电力/能源域:计量点快照(表计读数)+ 用量衍生物 + 峰谷时段标记;读数差分量属半可加,跨时间不可直接相加。

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

电力计量读数快照

电力与能源域的核心是一张计量读数快照:一行一个计量点在一个时点的表计读数。用量不是直接采集的,而是由相邻两次读数相减派生(区间用量 = 末读数 − 初读数),并叠加峰、平、谷时段标记用于分时计费。读数本身是半可加度量:跨时间不能直接相加,跨计量点可以相加。

基本信息

快照粒度计量点 × 时点读数
派生方式区间用量 = 末读数 − 初读数
时段标记峰 / 平 / 谷,用于分时电价
度量性质半可加:跨时间不可直接求和
换表处理换表与清零事件单独记录并分段
常见粒度表计 × 小时或日

典型使用场景

  • 分时用电:按峰平谷统计用电量,核算分时电价成本
  • 用能监控:识别异常增长的计量点,排查漏电或计量故障
  • 线损分析:供电量与售电量差值分析,定位损耗环节
  • 负荷预测:基于历史读数序列预测峰值负荷
  • 能耗考核:按车间、产线分摊用能,支撑节能考核

区间用量派生与异常检查

区间用量派生与异常检查
SELECT meter_id, dt, reading,
       reading - lag(reading) OVER (PARTITION BY meter_id ORDER BY dt) AS usage_kwh   -- 相邻读数相减得区间用量
FROM fact_meter_reading;   -- 快照表按计量点 + 时点唯一
SELECT meter_id, dt, usage_kwh
FROM (SELECT meter_id, dt, reading - lag(reading) OVER (PARTITION BY meter_id ORDER BY dt) AS usage_kwh
      FROM fact_meter_reading) t
WHERE usage_kwh < 0;   -- 负值通常意味着换表、清零或抄表错位,需要单独排查

读数表的读法

字段含义注意点
reading表计累计读数单调递增,换表时才重置
usage_kwh区间用量派生列,跨时间不可求和
tariff_period峰平谷标记按当地时段规则维护
read_type抄表方式自动采集与人工抄表精度不同
换表或清零会破坏差值计算:换表事件要单独记录并做分段处理,否则换表当天的用量会变成负值或巨大值,直接污染月度统计。
读数快照跨时点求和没有意义:把一年 12 次快照读数相加得到的是一个无业务的数字,正确做法是先做差分得到区间用量,再对用量求和时间维度的汇总。

易错点

  • 换表或清零不处理,用量出现负值,月度统计被个别计量点带偏
  • 读数快照跨时点直接求和,得出无意义数字并当作能耗指标上报
  • 峰平谷时段规则变更未留版本,历史电费无法按当时规则复核
  • 缺抄或补抄导致两次读数间隔异常,日用量被错误地集中到一天

数据来源与参考

  • 能源数仓实践:计量读数模型
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌