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

Kusto按天向前填充时序缺失值 渲染SoftwareVersion计数timechart

实现方法

以下是可直接运行的KQL查询代码,完全匹配按Serial维度向前填充缺失值、1天步长统计版本数量并渲染timechart的需求:

let swVersions = datatable(Date: datetime, SoftwareVersion: string, Serial: string) [
datetime(2022-01-24T13:18:20.8450657Z), '1.29.0', '310160039',
datetime(2022-01-26T06:01:41.8742421Z), '1.30.0', '310160039',
datetime(2022-01-26T12:12:23.2342343Z), '1.31.0', '310160039',
datetime(2022-01-28T12:10:14.3620707Z), '1.17.0', '310160039',
datetime(2022-01-24T05:48:58.9000481Z), '1.29.0', '310160040',
datetime(2022-01-24T10:22:23.4457354Z), '1.30.0', '310160040',
datetime(2022-01-24T15:52:16.2342152Z), '1.29.0', '310160040',
datetime(2022-01-25T05:48:58.9012738Z), '1.30.0', '310160040'];
// 计算全量数据的日期边界
let minDate = toscalar(swVersions | summarize startofday(min(Date)));
let maxDate = toscalar(swVersions | summarize startofday(max(Date)));
swVersions
// 按天截断时间,取每个Serial当日最后一次上报的软件版本
| summarize DayVersion = arg_max(Date, SoftwareVersion) by Serial, Date = startofday(Date)
// 按Serial分区独立补全时间序列,避免不同设备数据互相干扰
| partition by Serial
(
    // 生成从最早日期到最晚日期的完整1天步长时间轴
    make-series Version = take_any(DayVersion) default = long(null) on Date from minDate to maxDate step 1d
    // 对缺失日期的版本执行向前填充
    | extend Version = series_fill_forward(Version)
    // 将时间序列数组展开为明细行
    | mv-expand Date to typeof(datetime), Version to typeof(string)
    | project-away SeriesID
)
// 过滤边缘空值(本场景无此类数据)
| where isnotempty(Version)
| project Date, SoftwareVersion = Version, Serial
// 按日期、版本统计数量并渲染时间图
| summarize count() by Date, SoftwareVersion
| render timechart

关键逻辑说明

  • 时间归一:用startofday()将原始带时分秒的上报时间统一对齐到当日0点,满足1天步长要求
  • 当日版本取值:用arg_max()取每个Serial每天最后一次上报的版本,和示例预期规则完全匹配(例如Serial 310160039在1月26日有两次上报,取当日最晚的1.31.0作为当日版本)
  • 分维度填充:通过partition by Serial按序列号独立处理数据,保证每个设备的版本填充只参考自身历史上报记录
  • 缺失值补全:生成完整天级时间轴后用series_fill_forward()做向前填充,输出的明细结构和你给出的期望填充数据集完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 03:24:32