2016-05-16 2 views
0

Ich benutze derzeit (missbrauchen?) Postgres, um Zeitreihendaten zu speichern, und angesichts der Menge an Daten, die jetzt verbraucht werden, muss ich zu einer echten Zeitreihendatenbank migrieren, die kontinuierliche Abfragen und Aufbewahrungsrichtlinien unterstützt. Ich schaue auf InfluxDB, und das einzige, was mich zurückhält, ist die Möglichkeit, benutzerdefinierte Aggregate zu definieren. Ich habe derzeit ein benutzerdefiniertes Aggregat in Postgres definiert, das einen gewichteten Durchschnitt für Daten in einer Tabelle berechnet, wobei Gewichtungen durch den Wert in einer der Spalten bestimmt werden. Zum Beispiel habe ich eine score Spalte mit Werten zwischen 1 und 9. Bei der Berechnung der gewichteten Durchschnittspunktzahl multipliziere ich die Punktzahl mit 10, wenn sie zwischen 4 und 6 liegt, und multipliziere sie mit 1.000, wenn sie zwischen 7 und 9 liegt, bevor der Durchschnitt berechnet wird .Ist es möglich, benutzerdefinierte Aggregate in InfluxDB zu definieren?

Ist es möglich, etwas Ähnliches in InfluxDB zu tun?

Antwort

1

Im Moment erlaubt InfluxDB keine benutzerdefinierten Funktionen innerhalb von InfluxQL.

Sie können sowohl InfluxDB als auch Kapacitor zusammen verwenden, um das zu erreichen, was Sie versuchen. Insbesondere würden Sie die User Defined Function Node in Kapacitor verwenden, um eine gewichtete durchschnittliche UDF zu definieren und dann die Ergebnisse der UDF zurück in InfluxDB zu schreiben.