2017-06-16 506 views
0

我已經從某些設備收集了有關耗水量的動態時間間隔的系列數據。 每個系列中的數據可能會以不同的時間間隔進行記錄。我想查詢和固定的間隔對齊系列如5米,10M等如何在Influxdb中以動態時間間隔存儲和調整系列數據

實施例的原始數據:

{ device: 1, from: 2017/01/01 00:00, to: 2017/01/01 00:13, consumption: 13 }, 
{ device: 1, from: 2017/01/01 00:13, to: 2017/01/01 00:20, consumption: 12 }, 
{ device: 1, from: 2017/01/01 00:20, to: 2017/01/01 00:28, consumption: 20 }, 
           . 
           . 
           . 
{ device: 2, from: 2017/01/01 00:00, to: 2017/01/01 00:06, consumption: 13 }, <-- 
{ device: 2, from: 2017/01/01 00:09, to: 2017/01/01 00:15, consumption: 12 }, <--Time gap between previous data may exist and can treat as zero consumption in this gap 
{ device: 2, from: 2017/01/01 00:15, to: 2017/01/01 00:25, consumption: 20 }, 
           . 
           . 
           . 

可以假定尤其間隔消費該速率是相同的,即,消費在此間隔內,每分鐘的{ device: 1, from: 2017/01/01 00:00, to: 2017/01/01 00:13, consumption: 13 }爲1。

預期的結果,如果固定的時間間隔= 5M:

Device 1 
time    consumption 
----    ----------- 
2017-01-01T00:00Z  5 
2017-01-01T05:00Z  5 
2017-01-01T10:00Z  6.428571 
2017-01-01T15:00Z  8.571429 
2017-01-01T20:00Z  12.5 
       . 
       . 
       . 
Device 2 
time    consumption 
----    ----------- 
2017-01-01T00:00Z  10.833333 
2017-01-01T05:00Z  4.166667 
2017-01-01T10:00Z  10 
2017-01-01T15:00Z  10 
2017-01-01T20:00Z  10 
       . 
       . 
       . 

誰能幫我解決這個問題?

回答

0

按想要的時間間隔進行分組,合計結果並填寫適當的值,如果丟失。

例如,以5分鐘爲間隔持續一個小時的平均消耗量,缺口由linear interpolation of missing values填充。

SELECT mean("consumption") AS "consumption" 
FROM "Device 1", "Device 2" 
WHERE time > now() - 1h 
GROUP BY time(5m) 
FILL(linear) 

假設測量名稱爲「設備1」和「設備2」,根據需要進行替換。

相關問題