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

Kusto无匹配数据时返回timespan(0)的问题排查与解决

问题原因

当DataMetadata["category"] == "Warning"过滤后没有匹配的行时,查询后续的summarize、top等算子都没有输入数据,最终的summarize无法生成任何结果,因此返回空表,而不是你期望的00:00:00:00格式值。

解决方法

通过添加兜底的默认行,确保即使没有匹配数据时也能返回目标格式值,以下是两种可行实现:

方式一:用union合并默认行

先执行原查询,再将结果与包含默认值的虚拟表做union,最后取有效结果(原查询有结果则用原结果,否则用默认值):

let original_query = 
    Telemetry
    | where DataMetadata["category"] == "Warning"
    | summarize 
            Duration = sum(case(Name == "Event", totimespan(Value), totimespan(0))),
            Text = min(case(Name == "Information", tostring(Value), "N/A")),
            DeviceID = min(case(Name == "Ident", tostring(Value), "N/A"))
            by Timestamp
    | summarize TotalDuration = sum(Duration) by Text,DeviceID
    | top 2 by TotalDuration
    | summarize Duration = max(case(isnotnull(TotalDuration) or isnotempty(TotalDuration), strcat("Duration: ",format_timespan(TotalDuration, 'dd:hh:mm:ss'), "[sec] ",DeviceID," - ",Text), tostring(timespan(0))));
original_query
| union (datatable(Duration:string)["Duration: 00:00:00:00[sec] N/A - N/A"])
| summarize Duration = max(Duration)

方式二:用materialize判断结果是否为空

先将原查询结果物化,再判断结果行数,为空则返回默认行:

let result = materialize(
    Telemetry
    | where DataMetadata["category"] == "Warning"
    | summarize 
            Duration = sum(case(Name == "Event", totimespan(Value), totimespan(0))),
            Text = min(case(Name == "Information", tostring(Value), "N/A")),
            DeviceID = min(case(Name == "Ident", tostring(Value), "N/A"))
            by Timestamp
    | summarize TotalDuration = sum(Duration) by Text,DeviceID
    | top 2 by TotalDuration
    | summarize Duration = max(case(isnotnull(TotalDuration) or isnotempty(TotalDuration), strcat("Duration: ",format_timespan(TotalDuration, 'dd:hh:mm:ss'), "[sec] ",DeviceID," - ",Text), tostring(timespan(0))))
);
result
| union (datatable(Duration:string)["Duration: 00:00:00:00[sec] N/A - N/A"] | where result | count == 0)

补充说明

你可以根据业务需求调整默认行的文本内容,比如把N/A替换为更贴合场景的描述。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:48:15