DbRep - Import von 770MB csv (8.758.319 Datensätze) in mySQL, RasPi 3 stürzt ab.

Begonnen von Frank_Huber, 18 Januar 2019, 09:42:46

Vorheriges Thema - Nächstes Thema

Frank_Huber

Hi,

Will auf einem Testsystem mal mySQL anstelle SQLite versuchen.
Hab dazu eine SQLite DB in csv exportiert, das lief fehlerfrei durch.

Auf der neuen Installation mit mySQL (Installiert nach Wiki) und beim Versuch der Migration (nach dem Link im Wiki) stürz der RPI3 komplett ab.
Die LED der SD Karte leuchtet dauerhaft. (mehrere SD Karten versucht, an denen liegt es nicht)

kann die csv auch nicht mit nano öffnen, auch niccht mit Excel oder Notepad++ unter Windows.
Mit Nano kann ich beobachten dass der benutzte RAM des Systems bis auf knapp 900 MB ansteigt, dann meldet Nano "killed" oder so ähnlich.

Ist die csv defekt? Kann ich die csv irgendwie prüfen?
kann man den export irgendwie aufteilen in Zeitbereiche?
Andere Tipps?

Danke & Grüße
Frank

btw: wäre nicht ein eigenes Unterforum für DbLog / DbRep vorteilhaft?

DS_Starter

Morgen Frank,

welche Version DbRep hast du ?
Ich bin der Meinung die RAM Nutzung beim Import in der aktuellen Version begrenzt zu haben.

Mach mir bitte mal ein List deines DbRep.
Die Exporte kann man auch in Zeitteile splitten beim Export, klar.

Eigenes Unterforum würde ich begrüßen.

Grüße,
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

Wernieman

Und gebe uns doch mal einige Zeilen vom csv.

Hinweis:
Auf der Kommandozeile kann man große Dateien mit Hilfsprogrammen teilweise Anzeigen lassen.
head -nX : Öffnet die ersten X Zeilen (Head = Kopf der Datei)
tail -nX : Öffnet die letzten X Zeilen (Tail = Schwanz der Datei, zu Deutsch Ende)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Frank_Huber

Zitat von: DS_Starter am 18 Januar 2019, 10:17:51
Morgen Frank,

welche Version DbRep hast du ?
Ich bin der Meinung die RAM Nutzung beim Import in der aktuellen Version begrenzt zu haben.

Mach mir bitte mal ein List deines DbRep.
Die Exporte kann man auch in Zeitteile splitten beim Export, klar.

Eigenes Unterforum würde ich begrüßen.

Grüße,
Heiko

Hi Heiko,

FHEM habe ich vor dem Export bzw Import aktualisiert.

Ich starte gerade einen neuen Versuch in dem ich die selbe Installation für den Import nehme anstelle der Neuinstallation.
Damit kann ich den Transfer über Stick als Fehler ausschließen.

List (vor dem Import Start:
Internals:
   CFGFN     
   DATABASE   fhem
   DEF        logdb_mysql
   LASTCMD     
   MODEL      Client
   NAME       dblog_import
   NOTIFYDEV  global,dblog_import
   NR         796
   NTFY_ORDER 50-dblog_import
   ROLE       Client
   STATE      connected
   TYPE       DbRep
   UTF8       1
   VERSION    8.9.9
   .attraggr:
   .attrminint:
   HELPER:
     DBLOGDEVICE logdb_mysql
     IDRETRIES  3
     MINTS      2019-01-18 10:45:20
     DBREPCOL:
       COLSET     1
       DEVICE     64
       EVENT      512
       READING    64
       TYPE       64
       UNIT       32
       VALUE      128
   Helper:
     DBLOG:
       state:
         logdb_mysql:
           TIME       1547804750.35491
           VALUE      connected
   READINGS:
     2019-01-18 10:45:50   state           connected
   dbloghash:
     CFGFN     
     COLUMNS    field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
     CONFIGURATION ./db_mysql.conf
     DEF        ./db_mysql.conf .*:.*
     MODE       asynchronous
     MODEL      MYSQL
     NAME       logdb_mysql
     NR         727
     NTFY_ORDER 50-logdb_mysql
     PID        559
     REGEXP     .*:.*
     STATE      connected
     TYPE       DbLog
     UTF8       1
     VERSION    3.13.0
     dbconn     mysql:database=fhem;host=localhost;port=3306
     dbuser     fhemuser
     .attraggr:
     .attrminint:
     HELPER:
       COLSET     1
       DEVICECOL  64
       EVENTCOL   512
       OLDSTATE   connected
       READINGCOL 64
       TYPECOL    64
       UNITCOL    32
       VALUECOL   128
       .RUNNING_PID:
         abortFn    DbLog_PushAsyncAborted
         arg        logdb_mysql|Mxyz--gekürzt--zyx
         bc_pid     407
         finishFn   DbLog_PushAsyncDone
         fn         DbLog_PushAsync
         loglevel   4
         pid        5958
         telnet     telnetForBlockingFn_1547800880_127.0.0.1_42520
         timeout    86400
         abortArg:
     READINGS:
       2019-01-18 10:45:50   CacheUsage      2
       2019-01-18 10:45:50   NextSync        2019-01-18 10:46:20 or if CacheUsage 500 reached
       2019-01-18 10:45:50   state           connected
     cache:
       index      3
       .memcache:
Attributes:
   expimpfile /tmp/dbexport.csv

Frank_Huber


Frank_Huber

Zitat von: Wernieman am 18 Januar 2019, 10:31:12
Und gebe uns doch mal einige Zeilen vom csv.

Hinweis:
Auf der Kommandozeile kann man große Dateien mit Hilfsprogrammen teilweise Anzeigen lassen.
head -nX : Öffnet die ersten X Zeilen (Head = Kopf der Datei)
tail -nX : Öffnet die letzten X Zeilen (Tail = Schwanz der Datei, zu Deutsch Ende)

gerne:
root@FHEM-PI-KG:/tmp# head -n10 dbexport.csv
"","","","","","",""
"","","","","","",""
"","","","","","",""
"","","","","","",""
"","","","","","",""
"","","","","","",""
"","","","","","",""
"","","","","","",""
"2016-11-16 13:14:39","Flur_KG_Ost_Temp","OWTHERM","temperature: 10.4375","temperature","10.4375","�C"
"2016-11-16 13:14:45","Flur_KG_Ost_rH","OWMULTI","rH: 93.25","rH","93.25",""


root@FHEM-PI-KG:/tmp# tail -n10 dbexport.csv
"2019-01-17 03:03:19","Aussen_rH","OWMULTI","absFeuchte: 5.8","absFeuchte","5.8",""
"2019-01-17 03:03:19","Aussen_rH","OWMULTI","taupunkt: 2.7","taupunkt","2.7",""
"2019-01-17 03:03:20","ETA_Puffer_6_geforderte_Leistung","HTTPMOD","Puffer_6_geforderte_Leistung: 0.0","Puffer_6_geforderte_Leistung","0.0",""
"2019-01-17 03:03:20","Flur_KG_Ost_rH","OWMULTI","rH: 38.43","rH","38.43",""
"2019-01-17 03:03:20","Flur_KG_Ost_rH","OWMULTI","VDD: 5.12","VDD","5.12",""
"2019-01-17 03:03:20","Flur_KG_Ost_rH","OWMULTI","absFeuchte: 7.1","absFeuchte","7.1",""
"2019-01-17 03:03:20","Flur_KG_Ost_rH","OWMULTI","taupunkt: 6.4","taupunkt","6.4",""
"2019-01-17 03:03:20","ETA_FBH_3_Heizkurve","HTTPMOD","FBH_3_Heizkurve: 33","FBH_3_Heizkurve","33",""
"2019-01-17 03:03:20","Flur_KG_Ost_Temp","OWTHERM","temperature: 21.875","temperature","21.875","�C"
"2019-01-17 03:03:20","ETA_FBH_4_Vorlauf","HTTPMOD","FBH_4_Vorlauf: 33","FBH_4_Vorlauf","33",""


Konnte ich aber nur durch deinen Tipp mit head und tail. das kannte ich nicht, danke!

da er das Anfang und das Ende lesen kann gehe ich fast davon aus dass die Datei i.O. ist oder?

Frank_Huber

Import läuft. Die Speichernuitzung steigt an.

Im Log habe ich das:
root@FHEM-PI-KG:/opt/fhem/log# tail -n20 fhem-2019-02.log
2019.01.18 11:14:33 1: PERL WARNING: Malformed UTF-8 character (unexpected non-continuation byte 0x43, immediately after start byte 0xc2) in transliteration (tr///) at ./FHEM/93_DbRep.pm line 5410, <FH> line 108492.
2019.01.18 11:14:33 1: PERL WARNING: utf8 "\xC2" does not map to Unicode at ./FHEM/93_DbRep.pm line 5443, <FH> line 108493.
2019.01.18 11:14:33 1: PERL WARNING: Malformed UTF-8 character (unexpected non-continuation byte 0x43, immediately after start byte 0xc2) in transliteration (tr///) at ./FHEM/93_DbRep.pm line 5410, <FH> line 108493.
2019.01.18 11:14:33 1: PERL WARNING: utf8 "\xC2" does not map to Unicode at ./FHEM/93_DbRep.pm line 5443, <FH> line 108494.
2019.01.18 11:14:33 1: PERL WARNING: Malformed UTF-8 character (unexpected non-continuation byte 0x43, immediately after start byte 0xc2) in transliteration (tr///) at ./FHEM/93_DbRep.pm line 5410, <FH> line 108494.
2019.01.18 11:14:33 1: PERL WARNING: utf8 "\xC2" does not map to Unicode at ./FHEM/93_DbRep.pm line 5443, <FH> line 108495.
2019.01.18 11:14:33 1: PERL WARNING: Malformed UTF-8 character (unexpected non-continuation byte 0x43, immediately after start byte 0xc2) in transliteration (tr///) at ./FHEM/93_DbRep.pm line 5410, <FH> line 108495.
2019.01.18 11:14:33 1: PERL WARNING: utf8 "\xC2" does not map to Unicode at ./FHEM/93_DbRep.pm line 5443, <FH> line 108496.
2019.01.18 11:14:33 1: PERL WARNING: Malformed UTF-8 character (unexpected non-continuation byte 0x43, immediately after start byte 0xc2) in transliteration (tr///) at ./FHEM/93_DbRep.pm line 5410, <FH> line 108496.
2019.01.18 11:14:33 1: PERL WARNING: utf8 "\xC2" does not map to Unicode at ./FHEM/93_DbRep.pm line 5443, <FH> line 108497.
2019.01.18 11:14:33 1: PERL WARNING: Malformed UTF-8 character (unexpected non-continuation byte 0x43, immediately after start byte 0xc2) in transliteration (tr///) at ./FHEM/93_DbRep.pm line 5410, <FH> line 108497.
2019.01.18 11:14:33 1: PERL WARNING: utf8 "\xC2" does not map to Unicode at ./FHEM/93_DbRep.pm line 5443, <FH> line 108498.
2019.01.18 11:14:33 1: PERL WARNING: Malformed UTF-8 character (unexpected non-continuation byte 0x43, immediately after start byte 0xc2) in transliteration (tr///) at ./FHEM/93_DbRep.pm line 5410, <FH> line 108498.
2019.01.18 11:14:33 1: PERL WARNING: utf8 "\xC2" does not map to Unicode at ./FHEM/93_DbRep.pm line 5443, <FH> line 108502.
2019.01.18 11:14:33 1: PERL WARNING: Malformed UTF-8 character (unexpected non-continuation byte 0x43, immediately after start byte 0xc2) in transliteration (tr///) at ./FHEM/93_DbRep.pm line 5410, <FH> line 108502.
2019.01.18 11:14:33 1: PERL WARNING: utf8 "\xC2" does not map to Unicode at ./FHEM/93_DbRep.pm line 5443, <FH> line 108506.
2019.01.18 11:14:33 1: PERL WARNING: Malformed UTF-8 character (unexpected non-continuation byte 0x43, immediately after start byte 0xc2) in transliteration (tr///) at ./FHEM/93_DbRep.pm line 5410, <FH> line 108506.
2019.01.18 11:14:33 1: PERL WARNING: utf8 "\xC2" does not map to Unicode at ./FHEM/93_DbRep.pm line 5443, <FH> line 108507.
2019.01.18 11:14:33 1: PERL WARNING: Malformed UTF-8 character (unexpected non-continuation byte 0x43, immediately after start byte 0xc2) in transliteration (tr///) at ./FHEM/93_DbRep.pm line 5410, <FH> line 108507.
2019.01.18 11:14:33 1: PERL WARNING: utf8 "\xC2" does not map to Unicode at ./FHEM/93_DbRep.pm line 5443, <FH> line 108508.

DS_Starter

Setzt dir mal bitte im DbLog cfg-File UTF = 0 oder auskommentieren. Danach Konfig neu einlesen und den Import restarten. Vorübergehend die MySQL auf synchron umschalten damit der Speicher nicht ansteigt. So erstmal die Theorie.
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

Frank_Huber

Zitat von: DS_Starter am 18 Januar 2019, 11:59:56
Setzt dir mal bitte im DbLog cfg-File UTF = 0 oder auskommentieren. Danach Konfig neu einlesen und den Import restarten. Vorübergehend die MySQL auf synchron umschalten damit der Speicher nicht ansteigt. So erstmal die Theorie.
der vorhin gestartete Import läuft noch. gestern war er nach ca 30min stehen geblieben.
Ich denke daher fast dass die Datei was hat(te)

Mal schauen wie lange es noch läuft. ich melde mich dann wieder.

Heiko,
sollte ich das im cfg generell ändern oder nur wegen dem Import?

DS_Starter

Na dann lass mal laufen. Die Änderung wäre nur für die Importphase zur möglichen Problemlösung.

Grüße,
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

Frank_Huber

OK, danke. wie lange läuft das ca? kannst Du das abschätzen?

muss dann auch hinterher mal schauen ob alles korrekt importiert ist.
irgend etwas kann er ja nicht sauber interpretieren. das sagen ja die Log Einträge oder?

btw: Die "line" am Ende der Log Einträge, ist das die Zeile vom Import file?

DS_Starter

Ich bin grad nicht in Lage nachzuschauen aber bin der Meinung mit verbose 4 Ausgaben zum Importverlauf zu machen, d.h. wieviel Sätze wurden schon importiert usw.
Wie lange es dauert weiß nur die Db allein  ;)

Das ist erstmal nur eine Warnung. Aber wenn alles durch ist wird die Anzahl der importierten Sätze ausgegeben und sollte mit der exportierten Zahl übereinstimmen.
Eventuell die Ziel Db nochmal droppen, beim Quell DbLog das Attribut useCharfilter setzen, neu expotieren und wieder importieren. In der IT macht man bei solchen Migrationen auch Testläufe vor der Produktiven Übernahme :)

Ähhh.... dabei fällt mir ein ... wie genau hast du den Export gemacht ? Mit DbRep oder anders ?
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

Frank_Huber

Zitat von: DS_Starter am 18 Januar 2019, 12:58:37
Ich bin grad nicht in Lage nachzuschauen aber bin der Meinung mit verbose 4 Ausgaben zum Importverlauf zu machen, d.h. wieviel Sätze wurden schon importiert usw.
Wie lange es dauert weiß nur die Db allein  ;)

Das ist erstmal nur eine Warnung. Aber wenn alles durch ist wird die Anzahl der importierten Sätze ausgegeben und sollte mit der exportierten Zahl übereinstimmen.
Eventuell die Ziel Db nochmal droppen, beim Quell DbLog das Attribut useCharfilter setzen, neu expotieren und wieder importieren. In der IT macht man bei solchen Migrationen auch Testläufe vor der Produktiven Übernahme :)
Mach ich gern. :-)
Das ist alles noch Test hier aufm Schreibtisch.
aber erstmal muss er fertig laufen.

Bin ja schon mal happy dass er nicht abschmiert.

Wuppi68

Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

Wernieman

Dachte ein Kollege auch mal ;o)
(War allerdings ein mehrere GByte Großer mySQL-Dump ...)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html