NEWS
Entscheidungsfindung: History vs. SQL vs. InfluxDB
-
Ich lese viel im Forum und daraus entsteht meine Frage, die mich selber eigentlich aktuell nicht betrifft, aber, IMHO, für Einsteiger interessant ist.
Ich habe mich damals für SQL/MySQL entschieden, weil ich MySQL vorher schon genutzt habe. Welche Version für mich tatsächlich die richtige ist, habe ich damals nicht hinterfragt.
Nicht falsch verstehen, ich bin mit meiner Entscheidung immer noch zufrieden!Wie werden beim History-Adapter die Daten gespeichert? (SQLite?) Die Adapter-Doku ist da etwas kurz ausgefallen ("Dieser Adapter speichert den Statusverlauf in einem zweistufigen Prozess.")!
Da es immer nur darum geht, Datenverläufe zu speichern, sehe ich die Unterschiede aktuell einzig in der Performance und dass man, wenn ich richtig liege, den History-Adapter einfach installiert, während man bei SQL und InfluxDB auch noch die Datenbank installieren muss, was schon, je nach Kenntnisstand, eine Herausforderung sein kann.
Aber wo liegen die Vor- und Nachteile der Systeme? Habe ich noch eine Möglichkeit übersehen?
Beim SQL-Adapter: Wo liegen die Vor- und Nachteile der unterschiedlichen Datenbanksysteme? -
@andreas-5 sagte in Entscheidungsfindung: History vs. SQL vs. InfluxDB:
Wie werden beim History-Adapter die Daten gespeichert?
als JSON pro Tag und Datenpunkt in Ordner Hierarchie
-
@andreas-5 es gibt für mich zwei Wesentliche Punkte im Bezug auf MySQL und InfluxDB die darüber entscheiden welche man davon auswählt.
-
Wie Visualisiere ich meine Daten?
Während es egal ist ob man MySQL oder InfluxDB zum Speichern der Daten nutzt, wenn man ECharts verwendet, ist es bei Grafana ein erheblicher Unterschied.
In Grafana ist die Verwendung von InfluxDB sehr einfach, wohin gegen MySQL sehr Kompliziert ist.
Hier merkt man sehr deutlich die Unterschiede im Konzept der Datenbanken. InfluxDB ist für die Aufzeichnung von Daten über Zeit entworfen.
MySQL eher für Statische Daten, aber vor allem für Relationen, also verknüpfte Daten. -
Performance
MySQL ist hier klar im Vorteil, es benötigt deutlich weniger Ressourcen und ist schnell.
InfluxDB braucht sowohl viel Platz auf der Festplatte als auch im RAM. Somit ist InfluxDB für schwache Systeme gar nicht so Empfehlenswert.
-
-
@andreas-5 sagte: Wie werden beim History-Adapter die Daten gespeichert?
Jeden Tag ein Ordner, der pro Datenpunkt je eine JSON-Datei enthält.
-
Wenn man SQLite verwenden möchte, muss man auch den SQL-Adapter verwenden.
Der History-Adapter schreibt die Werte als Text (ich meine JSON) Dateien pro Datenpunkt und - wenn ich mich richtig erinnere - Tag eine Datei.Wenn man auf die Daten aus anderen (selbstgeschriebenen) Programmen zugreifen möchte ist der History-Adapter vermutlich die einfachste Lösung, man muss allerdings damit rechnen, dass es zu Konflikten im Zugriff kommen kann. Das würde ich auf keinen Fall auf einem Windows-System machen, da dort, wenn man eine Datei aus einem anderen Programm heraus öffnet, der History-Adapter diese Datei nicht löschen kann (aufräumen der History wenn sie veraltet ist).
Wenn man aus Scripten oder Adaptern heraus die Daten der History im Nachhinein ändern möchte, ist der History-Adapter raus. Das ist damit nur schlecht möglich, da sich ein schreibender Zugriff auf die Dateien aus einem konkurrierenden Thread nicht empfiehlt. (Okay, warum sollte man das tun? Hatte ich mir allerdings tatsächlich mal überlegt um den Zeitversatz bei einem gleitenden Durchschnitt im Nachgang zu korrigieren).
Der History-Adapter bietet das nicht direkt an. Bei dem SQL-Adapter ist das möglich, da man direkt mit SQL-Befehlen über den Adapter auf die Datenbank zugreifen kann, auch wenn als Basis SQLite verwendet wird.Wenn man auf die Daten in größerem Stil (auch wenn es nur lesend ist) aus einem anderen Programm heraus zugreifen möchte empfiehlt es sich auf jeden Fall eine richtige Datenbank mit einem Datenbankserver zu verwenden.
Ich glaube, vom Speicherplatz muss man sich im Normalfall bei den anfallenden Daten eigentlich keine Gedanken machen. (Jetzt tue ich vermutlich den Leuten unrecht, die im Sekundentakt ihre Daten loggen ).
Ich bin mir allerdings nicht sicher, wie sich die unterschiedlichen Systeme in Bezug auf die Schreibhäufigkeit auf Flash- oder SSD-Speicher auswirken, wenn man z.B. die Daten auf der SD-Karte eines RaspberryPIs ablegt.
-
Ich nutze auch mySQL weil es sowohl komfortable GUIs, aber vor allem auch Add-Ins für Excel gibt.