Hallo Leutz,
ich habe meine Hausautomatisierung nun schon eine Weile mit Filelogs betrieben,
diese wechselten Monatlich was zwar unpraktisch war in der Historie jedoch eine akzeptable Performance lieferte.
nun möchte ich auf dblog umsteigen, und frage mich welche Datenbank für mich die richtige ist
MariaDB? / MySQL? / SqLite?
habt ihr hier ein paar tips für mich! (Rechner ist Debian 9) Intel I5-6500 16GB Ram mit SSD.
Performance ist also mehr vorhanden als auf nem Raspi.
Hallo Franky1992,
habe auch gerade den Umstieg von FileLog auf DbLog (MariaDB) vollzogen. Anfänglich hatte ich beides parallel laufen, was bei mir einen Performanceeinbruch ergab.
Hatte auch versucht die SVGPlots laut dem Wikieintrag umzustellen, leider mit wenig Erfolg. Bin dann dazu übergegangen alle FileLogeinträge zu entfernen und die SVGPlots über das DbLog-Device neu anzulegen.
Gleichzeitig hatte ich mir noch FileLogConvert-Device angelegt und die alten FileLogdaten in die Datenbank zu importieren, was bei JahersFileLogs unter Umständen sehr lange dauern kann (mehrere Tage).
Das Problem lag aber an der Vorgehensweise zum Einlesen der Daten. Meine Datenbank ist standardmäßig so eingestellt, dass jeder einzelne Wert übertragen wir, was jedesmal einen Datenbankzugriff erfordert.
Nachdem mir ein Kollege dann die richtige Einstellung gezeigt hatte, konnte ich selbst die Jahresdaten innerhalb von Minuten einlesen. Auch das entfernen unrealistischer Werte ging dann in der Datenbank doch einfacher als in den FileLogs.
Das Aufbauen von Monats- oder JahresPlots läuft doch etwas performanter als mit der FileLog-Version.
Bin aber auch noch nicht ganz vertraut mit dieser Geschichte.
Gruß rippi
Um die "alten" FileLogs in die DB zu importieren gibt es auch ein PHP-Script.
Das hab ich hier im Forum gefunden, weis aber den Thread nicht mehr. Mit dem habe ich schon ein Logfile importiert und das hat bestens funktioniert.
Danke euch schonmal für die Infos,
also ist MariaDB die aktuellste und performanteste Lösung!?
Mal zu meinem Verständnis:
1. Maria DB ist dann eine Datenbank "quasi 1 Logfile" in dem ALLES was ich logge steht?
2. bei jedem Aufruf aus der DB (z.B. Plot anzeigen) wird die DB komplett durchsucht?
Ist die geschwindigkeit trotzdem besser als bei mehreren MB großen Logfiles?
Ist die Rechenleistung wie oben angegeben ausreichend und Sinnvoll oder sollte ich die DB lieber auf ein NAS auslagern?
Gruß
bei mir läuft die MariaDB auf einem RasPi 3 (auf dem auch FHEM läuft). Die MariaDB ist schneller und vor allem "wartbarer" als sqlite (was ich zuvor genutzt habe). SqLite war aber schon ein Quantensprung zu filelogs.
Generell solltest du dir aber überlegen was du alles loggst und in welcher Frequenz (ein Temperaturplot in 30 Sekundenauflösung von 2014 ist nichts, was ich in meiner Datenbank brauche). Beschäftige dich also erstmal mit den Möglichkeiten von DbLog (und evtl. DbRep) und plane was du machen möchtest und was du migrieren möchtest.
Um noch einen drauf zu legen - bei mir läuft postgresql problemlos.
Was ich bei DbLog noch nicht gefunden habe, ist die Möglichkeit, in Echtzeit die Eintragungen verfolgen zu können.tail -f /opt/fhem/log/SaeuleSHT21-2018.log | grep temperature
Gruß Jens
Hallo,
@litronics Das PHP-Script habe ich auch probiert um die alten FileLogs zu importieren. Das hat aber genauso lange gebraucht wie das FileLogConvert.
Wenn man dafür sorgt, das nicht bei jedem Wert ein Datenbankzugriff erfolgt, sonder immer nur blockweise geht es schneller. Hat aber den Nachteil, dass bei einem Absturz nicht alle Werte in der Datenbank sind.
Hier für MarieDB die Einstellung:
in der Datei /etc/mysgl/mariadb.conf.d/50-server.conf
[mysqld]
innodb_flush_log_at_trx_commit=2
Gruß rippi
Ich überlege auch ständig, diesen Schritt mal zu unternehmen.
Mich stört es aber enorm, dass ich in den Detailansichten nicht auf die Daten zugreifen kann.
Ziemlich blöd, wen man mal schnell etwas auf dem Smartphone debuggen will.
Oder habe ich etwas übersehen?
Zitat von: FunkOdyssey am 08 Februar 2018, 22:21:00
Ich überlege auch ständig, diesen Schritt mal zu unternehmen.
Mich stört es aber enorm, dass ich in den Detailansichten nicht auf die Daten zugreifen kann.
Ziemlich blöd, wen man mal schnell etwas auf dem Smartphone debuggen will.
Oder habe ich etwas übersehen?
get myDbLog ...