我正在寻找一种有效的方法来迭代具有约2.5亿个条目的influxDB表的全部数据。
我目前正在使用OFFSET
和LIMIT
子句对数据进行分页,但是对于更高的偏移量,这会花费很多时间。
SELECT * FROM diff ORDER BY time LIMIT 1000000 OFFSET 0
需要21秒,而
SELECT * FROM diff ORDER BY time LIMIT 1000000 OFFSET 40000000
需要221秒。
我正在使用Python influxdb包装器发送请求。
有没有一种方法可以对此进行优化或流式传输整个表?
UPDATE:重新记录最后接收到的数据的时间戳,然后在下一个查询中使用WHERE time> = last_timestamp,可以大大减少较高偏移量的查询时间(查询时间始终为〜25秒)。但是,这相当麻烦,因为如果两个数据点共享相同的时间戳,则可能在两页数据上出现某些结果,必须以某种方式对其进行检测。
答案 0 :(得分:0)
您应该使用连续查询或Kapacitor。您能否详细说明用例,您正在处理数据流吗?