Modul 93_DbRep - Reporting und Management von Datenbankinhalten (DbLog)

Begonnen von DS_Starter, 19 Mai 2016, 22:52:13

Vorheriges Thema - Nächstes Thema

ch.eick

Hallo zusammen,
ich habe seit längerem meine Datenbank mal wieder aufgeräumt und viel löschen können, danach wurde ein optimizeTables durchgeführt.
Woran kann ich eventuell erkennen, ob es etwas gebracht hat?

Die Datenbank ist eine Oracle MySQL 8.0.28 in 64 Bit auf nem RPI4
Momentane Größe 8,9 Gb

2022.10.12 10:28:42.894 3: DbRep LogDBRep - ################################################################
2022.10.12 10:28:42.895 3: DbRep LogDBRep - ###          New optimize table / vacuum execution           ###
2022.10.12 10:28:42.895 3: DbRep LogDBRep - ################################################################
2022.10.12 10:28:43.022 3: DbRep LogDBRep - Estimate of fhem before optimize (MB): Data size: 2537, Index size: 6402.92, Space free: 9, Overhead: 150.59
2022.10.12 10:28:43.022 3: DbRep LogDBRep - Optimizing tables
2022.10.12 10:28:43.022 3: DbRep LogDBRep - Optimizing table `current` (INNODB). It may take a while ...
2022.10.12 10:28:43.434 3: DbRep LogDBRep - Table 1 `current` optimized successfully.
2022.10.12 10:28:43.434 3: DbRep LogDBRep - Optimizing table `history` (INNODB). It may take a while ...
2022.10.12 12:21:45.724 3: DbRep LogDBRep - Table 2 `history` optimized successfully.
2022.10.12 12:21:45.724 3: DbRep LogDBRep - 2 tables have been optimized.
2022.10.12 12:21:45.827 3: DbRep LogDBRep - Estimate of fhem after optimize (MB): Data size: 2537, Index size: 6402.92, Space free: 9, Overhead: 150.59
2022.10.12 12:21:45.828 3: DbRep LogDBRep - Optimize tables of fhem finished - total time (hh:mm:ss): 01:53:02
2022.10.12 12:21:45.842 3: DbRep LogDBRep - Optimize tables finished successfully.

VG Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

DS_Starter

Halo Christian,

die Ergebnisse zu Anfang und Endgröße stehen doch im Log. Hier einer meiner Test MySQL:


2022.10.12 14:16:25.524 3: DbRep Rep.LogMariaVM.Test - ################################################################
2022.10.12 14:16:25.524 3: DbRep Rep.LogMariaVM.Test - ###          New optimize table / vacuum execution           ###
2022.10.12 14:16:25.525 3: DbRep Rep.LogMariaVM.Test - ################################################################
2022.10.12 14:16:25.566 4: DbRep Rep.LogMariaVM.Test - Database connect - user: fhemtest, UTF-8 option set: yes
2022.10.12 14:16:25.586 3: DbRep Rep.LogMariaVM.Test - Estimate of fhemtest before optimize (MB): Data size: 3070.75, Index size: 2951.36, Space free: 7, Overhead: 150.59
....
2022.10.12 14:43:59.122 3: DbRep Rep.LogMariaVM.Test - Estimate of fhemtest after optimize (MB): Data size: 2787.05, Index size: 2654, Space free: 0, Overhead: 150.59


Und außerdem noch als Readings:


   READINGS:
     2022-10-12 14:43:59   SizeDbBegin_MB  Data size: 3070.75, Index size: 2951.36, Space free: 7, Overhead: 150.59
     2022-10-12 14:43:59   SizeDbEnd_MB    Data size: 2787.05, Index size: 2654, Space free: 0, Overhead: 150.59
     2022-10-12 14:43:59   background_processing_time 1653.5576
     2022-10-12 14:43:59   state           optimize tables finished


LG
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

ch.eick

Zitat von: DS_Starter am 12 Oktober 2022, 15:10:10
die Ergebnisse zu Anfang und Endgröße stehen doch im Log. Hier einer meiner Test MySQL:
Okay, dem nach war bei mir nichts zu optimieren :-)

2022.10.12 10:28:43.022 3: DbRep LogDBRep - Estimate of fhem before optimize (MB): Data size: 2537, Index size: 6402.92, Space free: 9, Overhead: 150.59
2022.10.12 12:21:45.827 3: DbRep LogDBRep - Estimate of fhem after  optimize (MB): Data size: 2537, Index size: 6402.92, Space free: 9, Overhead: 150.59
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Univega06

Hallo Zusammen,
ich bin gerade dabei mein SQLite Datenbank deutlich zu reduzieren.
Die Reduktion auf eine Stunde mit Dbrep reduceLog average ist mir jedoch für einige Devices etwas zu viel. Besteht die Möglichkeit entweder eine individuelle Reduktion oder einen weiteren Intervall von z.B. 5 min zu implementieren?

Vielen Dank und Grüße
Kai

DS_Starter

#1714
Hallo Kai,

ich will nicht behaupten dass 5 Minuten nicht ginge.
Allerdings ist es nicht so leicht zu implementieren weil sich die Zeitgrenzen von "Zwischenwerten" im Zeitstempel der DB-Datensätze nicht so einfach abgrenzen lassen wie 1 Minute oder 1 Stunde oder 1 Tag.

Wird auf jeden Fall einige Zeit dauern bis die Möglichkeit evtl. zur Verfügung stehen könnte.

LG,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Univega06

Hallo Heiko,
aktuell geht 1 Stunde oder 1 Tag wenn ich es richtig verstanden habe?

Wäre die Implementierung von 1 Min einfacher umsetzbar?


Danke und Grüße
Kai

DS_Starter

Zitat
aktuell geht 1 Stunde oder 1 Tag wenn ich es richtig verstanden habe?
Ja das stimmt.

Zitat
Wäre die Implementierung von 1 Min einfacher umsetzbar?
Sag mal ja ohne es vorher genau gecheckt zu haben.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

h0nIg

Hi,

ich versuche gerade den Zählerwert meines Stromzählers auszuwerten. Ich verwende dafür diffValue und scheinbar gehen die Kommastellen verloren.

Wenn ich das RAW SQL statement anschaue, kriege ich

| 2022-12-04 23:54:36 | 17705.911 |  0.013999999999214197 | 17705.911   | 0    |
| 2022-12-04 23:55:37 | 17705.923 |  0.011999999998806743 | 17705.923   | 0    |
| 2022-12-04 23:56:37 | 17705.935 |  0.012000000002444722 | 17705.935   | 0    |
| 2022-12-04 23:57:36 | 17705.946 |  0.010999999998603016 | 17705.946   | 0    |
| 2022-12-04 23:58:37 | 17705.958 |  0.011999999998806743 | 17705.958   | 0    |
| 2022-12-04 23:59:37 | 17705.970 |  0.012000000002444722 | 17705.970   | 0    |


wenn ich mir das array anschaue welches von MariaDB zurückkommt:

MjAyMi0xMi0wNA== 2022-12-04 23:53:36 17705.897 0
MjAyMi0xMi0wNA== 2022-12-04 23:54:36 17705.911 0
MjAyMi0xMi0wNA== 2022-12-04 23:55:37 17705.923 0
MjAyMi0xMi0wNA== 2022-12-04 23:56:37 17705.935 0
MjAyMi0xMi0wNA== 2022-12-04 23:57:36 17705.946 0
MjAyMi0xMi0wNA== 2022-12-04 23:58:37 17705.958 0
MjAyMi0xMi0wNA== 2022-12-04 23:59:37 17705.970 0



Jemand eine Idee was hier nicht stimmen könnte?

Grüße

DS_Starter

Moin,

wir hatten unlängst einen ähnlichen Fall mit MariaDB.
Kannst du bitte die Version aus meinem contrib (siehe Fußtext) herunterladen, FHEM neu starten und testen ?

Du hast aber nicht das Attr numDecimalPlaces = 0 gesetzt, oder ?

LG
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

h0nIg

Hi,

jup, ist gefixxt, numDecimalPlaces ist bei mir nicht gesetzt gewesen.

MariaDB Version ist bei mir 10.9.3-MariaDB-1:10.9.3+maria~ubu2204

Grüße

DS_Starter

Ah, danke für die Rückmeldung.
Das deckt sich mit dem angedeuteten Fall.

Meine V ist MariaDB 10.1.48-MariaDB-0+deb9u2.

Ich checke die gefixte DbRep ein, ist dann morgen früh im Update.

LG
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

h0nIg

Hi,

ich versuche gerade das Current aggregation Beispiel bei mir zum laufen zu kriegen. Jedoch finde ich im Code keinen Hinweis was falsch sein könnte:

https://wiki.fhem.de/wiki/DbRep_-_Reporting_und_Management_von_DbLog-Datenbankinhalten#4._Erstellung_des_Plots

der Prefix sollte hier herkommen: https://github.com/fhem/fhem-mirror/blob/master/fhem/FHEM/93_DbRep.pm#L3575, wo hier ein doppeltes "_" hinzugefügt wird: https://github.com/fhem/fhem-mirror/blob/master/fhem/FHEM/93_DbRep.pm#L3566

Jedoch kommt kein doppeltes "_" in den Beispielen vor, ist die Dokumentation hier noch uptodate oder habe ich Tomaten auf den Augen?

Grüße


define logdb.aggregation DbLog ./modified/db.conf logdb.*
attr logdb.aggregation DbLogType Current/History
attr logdb.aggregation asyncMode 1
attr logdb.aggregation bulkInsert 1
attr logdb.aggregation cacheEvents 2
attr logdb.aggregation dbSchema fhem_aggregation

define logdb.weekly.Strom.Haus DbRep logdb.aggregation
attr logdb.weekly.Strom.Haus aggregation day
attr logdb.weekly.Strom.Haus allowDeletion 1
attr logdb.weekly.Strom.Haus device MQTT2_Z_HAUS
attr logdb.weekly.Strom.Haus reading MT681_Total_in
attr logdb.weekly.Strom.Haus showproctime 1
attr logdb.weekly.Strom.Haus timestamp_begin previous_week_begin
attr logdb.weekly.Strom.Haus timestamp_end previous_week_end


DS_Starter

Ich verstehe dein Problem nicht wirklich.
Mit dem Attribut "DbLogType = Current..." im DbLog-Device wird lediglich bewirkt, dass du im dem SVG-Editor im FHEMWEB eine Drop-Down Liste bekommst um dein gewünschtes Device und das gewünschte Reading zur Anzeige im SVG auswählen zu können.

Die Readings im DbRep werden noch immer mit den doppelten __ erzeugt.
Wenn du ein List des DbRep Devices postest, ist das für potentielle Helfer einfacher und etwas besser beschreibst was du eigentlich erreichen möchtest.  ;)
Ein List kannst du einfach mit dem "Copy for forum.fhem.de" Link in der Detailanzeige des DbRep Devices erstellen hier als Code posten.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

ch.eick

RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

DS_Starter

Deine SQLs sind immer eine Freude .... wie Weihnachten.  :D

Mache doch einen Eintrag im DbRep Wiki. Ich habe eine Abschnitt für hilfreiche SQL angefangen.
Dann geht das Know How nicht verloren und wer Anregungen sucht ....

LG,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter