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

如何在Kusto中生成从实际起始时间开始的24小时时间序列数据

Kusto实现从实际起始时间生成24小时补全序列方案

原代码使用make-series时未指定start参数,Kusto会自动将起始时间对齐到step(1小时)的整数倍,导致第一条记录从整点开始,而非数据的实际起始时间。以下是两种解决方法:

方法1:指定make-series的起止时间

let source_data = datatable(Time:timespan, Status:int)
[
timespan(1.00:10:00), 4
,timespan(1.04:00:00), 2
,timespan(2.12:00:00), 4
,timespan(2.20:00:00), 2
];
// 获取数据的实际起始时间
let start_time = toscalar(source_data | summarize min(Time));
source_data
// 明确指定起止时间:从实际起始时间开始,覆盖24小时(共24个时间点)
| make-series take_any(Status) default=int(null) on Time from start_time to start_time + 23h step 1h
// 展开序列并向前填充缺失的状态值
| mv-expand Time to typeof(timespan), Status = series_fill_forward(take_any_Status) to typeof(int)

方法2:用range生成时间序列后左连接

let source_data = datatable(Time:timespan, Status:int)
[
timespan(1.00:10:00), 4
,timespan(1.04:00:00), 2
,timespan(2.12:00:00), 4
,timespan(2.20:00:00), 2
];
let start_time = toscalar(source_data | summarize min(Time));
// 生成从实际起始时间开始的24小时每小时时间点
range Time from start_time to start_time + 23h step 1h
// 左连接原数据匹配状态值
| left join source_data on Time
// 向前填充缺失的状态值
| fill_forward(Status)

两种方法均能确保时间序列从数据的实际起始时间(如示例中的1.00:10:00)开始,自动补全24小时内所有缺失的小时段,并通过向前填充逻辑补全状态值。

内容的提问来源于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.28 14:02:43