Hallo zusammen,
gesucht ist eine Methodik oder allgemein bekanntes (aber mir noch unbekanntes) vorgehen, wenn es darum geht, viele Messwerte auf einer Zeitachse in einem bestimmten Zeitfenster zu verdichten/reduzieren.
Anwendungsfall:
Man hat eine (SQL) Datenbank in die Messwerte geloggt werden. z.B. Messwert A wird immer im Minutenrhythmus erfasst. Messwert B im 15min Rhythmus, und Messwert C wird erfasst, wenn das zugehörige Gerät meint einen Messwert mitzuteilen. Also im völlig unklaren Rhythmus.
Das erfassen der Daten in der DB ist nicht das Problem. Jeder Messwert bekommt einen Zeitstempel seiner Messung/Erfassung und fertig.
Was aber, wenn ich die Daten visualisieren möchte. Zeitfenster: z.B. die vergangene Woche.
Von A hab ich dann gut 10000 Werte, von B rund 670 und von C vielleicht nur 5.
Oder vom vergangenen Jahr: rund 525.000 Werte von A, rund 35.000 und von C vielleicht nur 60.
Da es möglich sein sollte über eine HTTP-Schnittstelle die Daten für ein bestimmtes Zeitfenster abzufragen und mit einer JavaScript Library zu visualisieren (Werte auf der Y-Achse, Zeit auf der X-Achse), wäre es Datentransfertechnisch schon übel über 10.000 Werte, ganz zu schweigen von über eine halbe Million Werte zu transportieren um sie dann mit JavaScript in einer Grafik anzuzeigen.
Gibt es ein gängiges Verfahren wie ich, ohne Veränderung der Datenaufzeichnung, die Werte in sowas wie ein gröberes Raster pressen kann (so dass ich z.B. 10.000 Werten reduzieren kann auf 500 Werte), ohne dabei so Ausreißer wie Messwert C - der nur Verhältnismäßig selten vorliegt - unter den Tisch fallen zu lassen?
Hintergrundgedanke, neben der schieren Datenmenge ist z.B. auch: Es macht keinen Sinn 10.000 Messwerte auf der X-Achse in einer nur 400px breiten Grafik anzeigen zu wollen. Theoretisch reichen hier ja 400 Werte.
RRDtool ist mir bekannt. Die Daten liegen aber bereits vor und migrieren in RRD nur für die Visualisierung ist auch doof.
Bin für alle Tipps dankbar.
Gruß
Alex