0

我正在使用 TSI rest API 来获取聚合数据,当我以一个月的间隔(“P1M”)请求多个月的数据时,它返回的数据绘制不一致。以下是我的请求和回复,

要求

{
    "aggregateSeries": {
        "interval": "P1M",
        "searchSpan": {
            "from": "2020-11-01T00:00:00Z",
            "to": "2020-12-31T23:59:59.999Z"
        },
        "timeSeriesId": [
            "MyTSIId"
        ],
        "projectedVariables": [
            "ResultSet"
        ],
        "inlineVariables": {
            "ResultSet": {
                "kind": "numeric",
                "value": {
                    "tsx": "$event.MyData.Double"
                },
                "filter": null,
                "interpolation": null,
                "aggregation": {
                    "tsx": "avg($value)"
                },
                "categories": null,
                "defaultCategory": null
            }
        }
    }
}

回复

{
    "timestamps": [
        "2020-10-03T00:00:00Z",
        "2020-11-02T00:00:00Z",
        "2020-12-02T00:00:00Z"
    ],
    "properties": [
        {
            "values": [
                null,
                2.8,
                null
            ],
            "name": "ResultSet",
            "type": "Double"
        }
    ],
    "progress": 100.0
}

如果您查看 TSI 响应,它会返回 3 条记录,因为我只请求了 2 个月的数据,并且还绘制了从随机日期开始的月份,它既不绘制月份的开始,也不基于 searchSpan 中的起始日期。

+-----------------------------------------------------+
| TSI Response Plotting  | Expected Response Plotting |
+-----------------------------------------------------+
| "2020-10-03T00:00:00Z" |   "2020-11-01T00:00:00Z"   |
| "2020-11-02T00:00:00Z" |   "2020-12-01T00:00:00Z"   |
| "2020-12-02T00:00:00Z" |                            |
+-----------------------------------------------------+

是否有可能从 TSI 获得预期的响应,或者是否有任何解决方法,感谢任何帮助。

4

1 回答 1

4

这是 TSI 设计的。此处解释了该行为。

“对于指定的搜索范围和时间间隔,此 API 返回每个时间序列 ID 的每个变量的时间间隔的聚合响应。响应数据集中的时间间隔数是通过计算纪元节拍数(自 Unix 纪元以来经过的毫秒数) - 1970 年 1 月 1 日)并将刻度除以查询中指定的间隔跨度大小。响应集中返回的时间戳是左间隔边界,而不是间隔中的采样事件。

这是一个已知问题,TSI 有待解决的待办事项!您可以在此处对反馈项目进行投票。

于 2020-11-18T20:17:17.913 回答