1

我在 KairosDB 中有一组传感器数据。要查询数据,需要开始时间和结束时间。

现在,我的问题是如何知道整个数据库的开始时间和结束时间?

更进一步,如何知道每个指标的开始时间和结束时间?

4

1 回答 1

1

基本上同样的问题围绕着这个问题。

据我所知,没有直接的选择。

作为一种代价高昂的解决方法(就为此花费的 CPU 时间而言代价高昂),可以像这样查询数据

{
    "metrics": [
        {
            "tags": {
                "aggr": [
                    "yourDataPointTags_1"
                ]
            },
            "name": "yourMetric_1",
            "aggregators": [
                {
                    "name": "first",
                    "align_sampling": true,
                    "sampling": {
                        "value": "1",
                        "unit": "months"
                    }
                },
                {
                    "name": "last",
                    "align_sampling": true,
                    "sampling": {
                        "value": "1",
                        "unit": "months"
                    }
                }
            ]
        }
    ],
    "cache_time": 0,
    "start_relative": {
        "value": "5",
        "unit": "years"
    }
}

通过这样的查询,您可以获得每个月的第一个和最后一个数据点。

因此,在结果中,第一个条目时间戳是传感器数据的第一个数据点,最后一个是最后一个现有数据点。

但请注意,这只是过去 5 年的查询。而对于 kairosDB 来说,这是一个巨大的问题,因为对于这样的查询,所有的数据点都会被处理。

所以基本上你有责任为每个指标存储信息[开始,结束]。

于 2017-05-31T15:37:30.410 回答