You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kusto中将日期时间数据按小时补全并关联状态值

在Kusto中补全缺失小时级日期并关联状态值的解决方案

可以实现,核心思路是用generate-series生成完整的小时时间序列,再结合左连接与fill forward来填充缺失的状态值,具体步骤如下:

1. 定义时间范围与生成小时序列

先从原始数据中提取时间范围的起止点,再生成覆盖该范围的每小时时间点:

// 假设你的原始数据表名为StatusLogs,包含Timestamp(日期)和Status(状态)列
let start_time = toscalar(StatusLogs | summarize min(Timestamp));
let end_time = toscalar(StatusLogs | summarize max(Timestamp));
// 生成每小时的时间序列
let hourly_time_series = range Hour from start_time to end_time step 1h;

2. 关联原始数据并填充缺失状态

将生成的小时序列与原始数据左连接,保留所有小时点,再用fill forward把最近的已知状态值填充到缺失的行中:

hourly_time_series
| join kind=leftouter (StatusLogs | project Timestamp, Status) on $left.Hour == $right.Timestamp
| project Hour, Status
| fill forward Status

补充说明

  • fill forward会自动延续上一个非空的状态值,适用于状态通常持续一段时间的场景;如果需要其他填充逻辑(比如固定默认值),可以替换为fill函数指定默认值。
  • 若原始数据中存在同一小时多条记录的情况,建议先对原始数据按小时聚合(比如取最新状态),再执行后续步骤。

内容的提问来源于stack exchange,提问作者Swathi Miney

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 11:02:37