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

Kusto中如何判定批次完成并对每个已完成批次执行计算

Kusto实时批次完成状态自动识别与物化视图实现需求

问题背景

我此前曾提出过相关问题,但之前的提问未结合提供的数据样例给出清晰的场景说明。
我在Kusto中随机生成了如下测试数据:

let data = datatable(BatchNumber: string, Timestamp:datetime, Power1:int, Power2: int, Speed1: int, Speed2: int, Enabled1: bool, Enabled2: bool)
        [
         "620214P", datetime(2022-02-18 10:00:00 AM), 100, 200, 50, 80, false, true,
         "620214P", datetime(2022-02-18 10:01:00 AM), 100, 200, 50, 80, true, true,
         "620214P", datetime(2022-02-18 10:02:00 AM), 100, 200, 50, 80, false, true,
         "620214P", datetime(2022-02-18 10:03:00 AM), 100, 200, 50, 80, true, true,
         "620214P", datetime(2022-02-18 10:04:00 AM), 100, 200, 50, 80, false, true,
         "620214P", datetime(2022-02-18 10:05:00 AM), 100, 200, 50, 80, true, true,
         "620214P", datetime(2022-02-18 10:06:00 AM), 100, 200, 50, 80, false, true,
         "620214P", datetime(2022-02-18 10:07:00 AM), 100, 200, 50, 80, true, true,
         "720214P", datetime(2022-02-18 10:08:00 AM), 100, 200, 50, 80, false, true,
         "720214P", datetime(2022-02-18 10:09:00 AM), 100, 200, 50, 80, true, true,
         "720214P", datetime(2022-02-18 10:10:00 AM), 100, 200, 50, 80, false, true,
         "720214P", datetime(2022-02-18 10:11:00 AM), 100, 200, 50, 80, true, true,
         "720214P", datetime(2022-02-18 10:12:00 AM), 100, 200, 50, 80, false, true,
         "720214P", datetime(2022-02-18 10:13:00 AM), 100, 200, 50, 80, true, true,
         "720214P", datetime(2022-02-18 10:14:00 AM), 100, 200, 50, 80, false, true,
         "720214P", datetime(2022-02-18 10:15:00 AM), 100, 200, 50, 80, true, true,
         "720214P", datetime(2022-02-18 10:15:00 AM), 100, 200, 50, 80, false, true
        ];

核心需求

需要实现自动判定批次完成状态的能力,规则与输出要求如下:

  • 批次号为唯一字符串值
  • 判定逻辑:按时间正序排列所有记录,取某批次号的最后一条记录,若其后紧邻的下一条记录所属批次号与当前批次不同,则判定前序批次已完成
  • 基于上述样例数据,批次号为620214P的批次已完成,批次号为720214P的批次尚未完成
  • 数据为实时接入,禁止硬编码特定批次号,脚本需自动基于上述逻辑识别已完成批次,投影输出字段包括:
    • 对应已完成批次号
    • Batch_Date:该批次最后一条记录的时间戳,例如620214P的完成时间为2022-02-18 10:07:00 AM
    • 仅针对该已完成批次从启动到结束全周期计算得到的聚合指标(例如总功率等)

预期运行效果

  • 初始样例数据下仅返回620214P对应的计算结果:
    单批次结果示例
  • 当数据集新增一条批次号为820214P的记录后,720214P满足完成判定规则,结果集自动新增该批次对应的记录:
    双批次结果示例
  • 每次识别到新的已完成批次时,直接新增一条对应记录,投影输出新完成批次的批次号、批次完成时间、全周期专属计算指标
  • 最终需要使用materialized-view(物化视图)承载结果表,目标表结构参考:
    物化视图表示例

待解决问题

  • 该需求在Kusto中是否可以实现?
  • 具体实现方法是什么?
  • 是否存在更优的高效实现方案?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 10:24:13