如何在不影响记录时间戳的情况下在 InfluxDB 上执行查询?

问题描述 投票:0回答:0

我在我的项目中使用 InfluxDB 以 5 秒的间隔存储房间的温度读数。但是,我在查询数据时遇到困难,因为我只需要读数的一个子集。为了解决这个问题,我利用 InfluxQL 函数

aggregateWindow(every: 5m, fn: last, createEmpty: false)
来聚合数据并过滤掉不需要的读数。

我的代码:

            tables = query_api.query(f'''
            from(bucket: "{settings.INFLUX_BUCKET}") 
                |> range(start: -30d) 
                |> filter(fn: (r) => r["_measurement"] == "{item_type}") 
                |> group(columns: ["item_id"])
                |> aggregateWindow(every: 5m, fn: last, createEmpty: false)
                |> yield(name: "mean")
            ''')

问题与

_time
领域有关。我的目标是每隔 5 分钟检索一次记录,其中每条记录对应于该持续时间内的最后一个条目。但是,我还需要插入记录的实际时间戳,例如 12:30:10 或 12:15:08。

此查询将生成以下格式的记录:

12:30:05
12:35:09
12:40:10

记录之间的时间间隔一致为5分钟,与每条记录的实际插入时间不对应。

python influxdb influxdb-python
© www.soinside.com 2019 - 2024. All rights reserved.