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

Azure TSI聚合查询返回空值:如何按间隔聚合时序历史数据?

Azure Time Series Insights 聚合查询空值问题解决方法

核心解决方案

1. 补全getAggregate的必要参数

你之前返回空值的核心原因是未指定聚合函数和目标度量字段,仅设置filter和interval无法触发有效聚合。必须明确aggregate字段,指定聚合逻辑(如平均值):

{
  "timeSeriesId": ["你的时序ID"],
  "aggregate": [
    {
      "metric": {
        "tsx": "avg($event.你的度量字段名)"
      }
    }
  ],
  "interval": "P1D",
  "searchSpan": {
    "from": "2024-01-01T00:00:00Z",
    "to": "2024-02-01T00:00:00Z"
  }
}

同时要确保searchSpan覆盖的时间范围内确实存在数据。

2. 批量查询多个时序,避免循环调用

无需逐个循环查询,getAggregate支持一次性传入多个timeSeriesId,一次请求获取多时序的聚合结果:

{
  "timeSeriesId": ["时序ID1", "时序ID2", "时序ID3"],
  "aggregate": [
    {
      "metric": {
        "tsx": "avg($event.value)"
      }
    }
  ],
  "interval": "P1D",
  "searchSpan": {
    "from": "2024-01-01T00:00:00Z",
    "to": "2024-02-01T00:00:00Z"
  }
}

3. 处理空值场景

如果部分日期确实无数据,可通过fill参数设置填充策略,避免返回空值:

{
  "timeSeriesId": ["你的时序ID"],
  "aggregate": [
    {
      "metric": {
        "tsx": "avg($event.value)"
      }
    }
  ],
  "interval": "P1D",
  "searchSpan": {
    "from": "2024-01-01T00:00:00Z",
    "to": "2024-02-01T00:00:00Z"
  },
  "fill": {"type": "zero"} // 用0填充空值,也可选择linear线性插值
}

4. 替代方案:使用getSeries实现聚合

若getAggregate仍有异常,可尝试用getSeries接口,同样支持服务端聚合:

{
  "timeSeriesId": ["你的时序ID"],
  "interval": "P1D",
  "aggregation": {
    "tsx": "avg($event.你的度量字段名)"
  },
  "searchSpan": {
    "from": "2024-01-01T00:00:00Z",
    "to": "2024-02-01T00:00:00Z"
  }
}

额外排查点

  • 确认原始数据的时间戳为ISO 8601格式,TSI对时间格式要求严格,格式错误会导致数据无法被聚合识别;
  • 检查度量字段是否存在且非空,若原始数据中该字段大量为空,聚合后也会返回空值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 06:36:32