Was ist der beste Weg, um InfluxDB für bestimmte Stunden jeden Tag abzufragen, zum Beispiel habe ich eine Serie, die Check-in/Checkout-Aktivitäten haben, und ich muss sie zwischen 2 Uhr morgens - 3 Uhr alle sehen Tag für letzten Monat, bin mir bewusst, dass es keine direkte Möglichkeit gibt, dies in der Abfragesprache zu tun - aktuelle Version 1.2 - Nicht sicher, ob es eine Arbeit oder etwas gibt?Query InfluxDB für bestimmte Stunden jeden Tag
Antwort
Ich habe nach dem gleichen gesucht und Ihre Frage gefunden. Wie Sie sagen, die Syntax scheint es nicht zu ermöglichen, es zu tun.
Mein nächster Versuch war es, einen regulären Ausdruck für eine Zeit WHERE Clausus zu verwenden, die derzeit nicht von InfluxDB unterstützt wird.
Das sollte also wohl die Antwort sein, und ich würde keine Antwort posten, nur um das zu sagen.
Allerdings habe ich an einem anderen Problem, habe ich einen Weg gefunden, dass kann oder nicht helfen Ihnen in Ihrem speziellen Fall. Es ist eine Workaround das ist nicht sehr nett, aber es scheint zu arbeiten in dem Fall, dass Sie eine Aggregation/Auswahl von dem, was Sie in der gegebenen Stunde sehen möchten, so dass Sie am Ende mit einem Wert pro Stunde. Zum Beispiel (Mittelwert/Höchstwert/Anzahl der Check-in-Checkouts in dieser Stunde für eine bestimmte Person, die möglicherweise das ist, wonach Sie suchen, oder die Sie verwenden können, um die Tage zu identifizieren, die Sie einzeln abfragen möchten was ist dort passiert).
Zum Beispiel möchte ich die Messung des Stromverbrauchs täglich von 00:00 bis 06:00 Uhr erhalten. Ich mache eine erste Unterabfrage, die die Gruppierung der Messungen um 6:00 Uhr ab einem bestimmten Datum um 00:00 Uhr teilt. Dann gruppiere ich mich in der Hauptabfrage nach 24 Stunden und wähle den ersten Wert aus. Wie dies
SELECT first("mean") FROM (SELECT mean("value") FROM "Energy" WHERE "devicename" = 'Electricity' AND "deviceid" = '0_5' AND time > '2017-01-01' GROUP BY time(6h)) WHERE time > '2017-01-01' GROUP BY time(24h)
Wenn Sie 2-4 Uhr wollen, also 14: 00-16: 00 Uhr, müssen Sie erste Gruppe von 2 Stunden in der Unterabfrage, dann wettmachen kann die von 14 Uhr so eingestellt, dass es bei 14 beginnt : 00.
SELECT first("mean") FROM (SELECT mean("value") FROM "Energy" WHERE "devicename" = 'Electricity' AND "deviceid" = '0_5' AND time > '2017-01-01T14:00:00Z' GROUP BY time(2h)) WHERE time > '2017-01-01T14:00:00Z' GROUP BY time(24h,14h)
Nur zur Überprüfung. In meinem 1.2 InfluxDB das ist das Endergebnis:
Energy
time first
2017-01-01T14:00:00Z 86.41747572815534
2017-01-02T14:00:00Z 43.49722222222222
2017-01-03T14:00:00Z 81.05416666666666
Die Unteranfrage:
Energy
time mean
2017-01-01T14:00:00Z 86.41747572815534
2017-01-01T16:00:00Z 91.46879334257974
2017-01-01T18:00:00Z 89.14027777777778
2017-01-01T20:00:00Z 94.47434119278779
2017-01-01T22:00:00Z 89.94305555555556
2017-01-02T00:00:00Z 86.29542302357837
2017-01-02T02:00:00Z 92.2625
2017-01-02T04:00:00Z 89.93619972260748
2017-01-02T06:00:00Z 87.78888888888889
2017-01-02T08:00:00Z 50.790277777777774
2017-01-02T10:00:00Z 0.6597222222222222
2017-01-02T12:00:00Z 0.10957004160887657
2017-01-02T14:00:00Z 43.49722222222222
2017-01-02T16:00:00Z 86.0610263522885
2017-01-02T18:00:00Z 86.59778085991678
2017-01-02T20:00:00Z 91.56527777777778
2017-01-02T22:00:00Z 90.52565880721221
2017-01-03T00:00:00Z 86.79166666666667
2017-01-03T02:00:00Z 87.15533980582525
2017-01-03T04:00:00Z 89.47988904299584
2017-01-03T06:00:00Z 91.58888888888889
2017-01-03T08:00:00Z 41.67732962447844
2017-01-03T10:00:00Z 16.216366158113733
2017-01-03T12:00:00Z 25.27739251040222
2017-01-03T14:00:00Z 81.05416666666666
Wenn Sie 13 benötigen: 00-15: 00 Uhr, müssen Sie die Unterabfrage im vorherigen Beispiel zum Ausgleich um 1 Uhr.
Für 14: 00-15: 00:
SELECT first("mean") FROM (SELECT mean("value") FROM "Energy" WHERE "devicename" = 'Electricity' AND "deviceid" = '0_5' AND time > '2017-01-01T14:00:00Z' GROUP BY time(1h)) WHERE time > '2017-01-01T14:00:00Z' GROUP BY time(24h,14h)
this helps :)
- 1. InfluxDB Schreibvorgang stoppt automatisch nach 24 Stunden/einem Tag
- 2. So erhalten Sie die Gesamtsumme der Stunden für jeden Tag
- 3. Access Query - Summe Feld basierend auf neueste für jeden Tag
- 4. Influxdb Nummerierte Tag Sortieren
- 5. SQL Zählung für jeden Tag
- 6. SQL Gruppe für Tag zeigen Aufträge für jeden Tag
- 7. Gruppe und Summe arbeitete Stunden pro Tag
- 8. Benachrichtigung jeden Tag erstellen
- 9. Wiederholung Alarm jeden Tag nach
- 10. Countdown für den nächsten Tag in Stunden
- 11. Bestimmte Werte zu bestimmten Zeiten jeden Tag zurücksetzen
- 12. für jeden Datensatz nächsten 24 Stunden Wählen Sie in postgresql
- 13. TAG in FIELD in InfluxDB umwandeln
- 14. Wie eine bestimmte HREF für jeden Hyperlink
- 15. Verschiedene jenkins Build Folder für jeden Tag
- 16. Wählen Sie mehrere COUNTs für jeden Tag
- 17. QuerySet mit .latest() für jeden Tag
- 18. Wählen Sie, um Daten für jeden Tag
- 19. Wie für jeden Tag verschiedene ip wählen
- 20. Generieren Array von Arbeitstagen mit Arbeitsstunden für jeden Tag
- 21. MS Access Query - Gesamtwoche Stunden gearbeitet
- 22. Django Query datetime für Objekte älter als 5 Stunden
- 23. Run cronjob bestimmte Stunden/Tage
- 24. Berechnung der letzten 7 Tage für jeden Tag in Bereich
- 25. Funktion jeden Tag ausführen (Swift)
- 26. Löschen der ersten Zeile in Dataframe jeden Tag nur für bestimmte Werte
- 27. Ich muss jeden Tag ein Google-Formular für eine bestimmte Zeit bereitstellen.
- 28. Java.util.logger neue Datei jeden Tag
- 29. Anzeige separate Textstrings jeden Tag
- 30. Autoupdate jeden Tag auf Datenbank
Ich werde Aggregate nicht in der Lage sein, trotzdem zu verwenden, habe ich einen anderen Fall, aber +1 gäbe wie es jemand anderem helfen kann;) –