Die Übersicht zur Anzeige der Solarleistung dauert am längsten zu aktualisieren. Hinter jedem chart verbirgt sich eine SQL-Abfrage auf die Datenbasis. Für die Aktualisierung laufen die Abfragen zwar parallel, jedoch ist aufgrund der Datenbankgröße und der Performance eine Aktualisierung in der Regel erst nach 30 Sekunden verfügbar.
Die Idee war es, mit der Influx-Datenbank hier einen Geschwindigkeitsvorteil zu bekommen.
Die Datenbasis bleibt weiterhin die SQL-Datenbank. Sämtliche Geräte schreiben die Daten in diese SQL Datenbank.
Wie im ersten Artikel bereits beschrieben wird ein Export alle fünf Minuten aus der SQL-Datenbank in die Influx-Datenbank geschrieben.
In grafana muss natürlich das Dashboard auf die neue Datenquelle angepasst werden. Dazu habe ich das bestehende Dashboard kopiert und die Abfragen für jedes chart auf die Influx-Datenbank angepasst.
Die Aktualisierung der Dashboards geht nun signifikant schneller. In weniger als einer Sekunde sind die Daten für die Charts aus der Influx-Datenbank geladen.
Die Auflösung der Charts ist sehr granular. Für jedes Solarpanel wird der Wert alle 30 Sekunden erfasst. Einige andere Sensoren schreiben ebenfalls in kurzen Intervallen ihre Messdaten in die Datenbank.
Die Teilmenge, welche aus der SQL-Datenbank exportiert wird, ist demzufolge natürlich nur ein Bruchteil aus dem gesamten Datenstamm. Im Rahmen dieses Versuchsaufbaus kam mir die Überlegung einen weiteren Test durchzuführen.
Ein Versuch ist es wert, die Solar-Daten aus der Tabelle, wo alle Sensordaten enthalten sind, in eine eigene Tabelle als Bestandteil der SQL-Datenbank zu exportieren. Diese Tabelle ist dann quasi ein echtes Gegenstück zu der Influx-Datenbank. Sollte dann die Anzeige des Dashboards auf Basis dieser neuen Tabelle unwesentlich langsamer als die Influx-Datenbank sein, so wäre dieses ein deutlicher Indikator dass die Performance aufgrund der großen Tabelle leidet. Die Ursache wäre dann einfach die große Datenmenge.
Fazit, wie geht es weiter?
Ich werde den Export Job der Solardaten einmal dahingehend ändern, dass eine SQL-Tabelle ausschließlich für die Solardaten geschrieben wird. Auch dieser Job wird alle 5 Minuten laufen. Dann wird in grafana das Dashboard auf diese Tabelle umkonfiguriert. Danach kann der Test wiederholt und die Ergebnisse verglichen werden.
Hinterlasse einen Kommentar