Seite 1 von 1

Logdatei ---> Datenbank ("realtime")

Verfasst: Mittwoch 2. November 2016, 17:56
von mateng
Hallo !
.... vorab, ich bin blutiger Anfänger :-(

Ich habe auf einem Raspberry eine fertiges Stück Codeschnipsel welches mir kontinuierlich Daten von einem Server holt.

Code: Alles auswählen

pi@raspberrypi:~ $ mosquitto_sub -h staging.thethingsnetwork.org -t '+/devices/+/up' -u 70B**********0E8F -P 'CHOX2Rbhw***********6TFTbyssAblQ+Ppwc=' -v
Die Ausgabe wird in eine Logdatei ausgeben und eine Zeile sieht so aus:

Code: Alles auswählen

70B3*******0E8F/devices/0004A*****AA58E/up {"payload":"QuQZWGcK1*****AwAAAAUC","port":1,"counter":338,"dev_eui":"0004A*******AA58E","metadata":[{"frequency":868.3,"datarate":"SF10BW125","codingrate":"4/5","gateway_timestamp":800251308,"channel":1,"server_time":"2016-11-02T13:04:04.860119549Z","rssi":-101,"lsnr":5.2,"rfchain":1,"crc":1,"modulation":"LORA","gateway_eui":"B827EB******4F0264","altitude":764,"longitude":11.****42,"latitude":47.6014}]}
Etwas übersichtlicher (eine Zeile):

Code: Alles auswählen

70B3*******0E8F/devices/0004A*****AA58E/up 
{"payload":"QuQZWGcK1*****AwAAAAUC",
 "port":1,
 "counter":338,
 "dev_eui":"0004A*******AA58E",
 "metadata":[
	    	{"frequency":868.3,
	     	"datarate":"SF10BW125",
		"codingrate":"4/5",
		"gateway_timestamp":800251308,
		"channel":1,
		"server_time":"2016-11-02T13:04:04.860119549Z";
		"rssi":-101,
		"lsnr":5.2,
		"rfchain":1,
		"crc":1,
		"modulation":"LORA",
		"gateway_eui":"B827EB******4F0264",
		"altitude":764,
		"longitude":11.****42,
		"latitude":47.***}
]
}
Das soll nun alles ordentlich in eine mysql Datenbank.
Nur wie fange ich an?
-wie reagiere ich auf Änderungen in der Logdatei und lese nur die neuen Zeilen ein?
-wie parse ich die einzelnen Zeilen des logs um sie dann in Datenbank zu schreiben?
-hab ich überhaupt eine Chance mit einem Raspberry mehrere zehn Datensätze/sek zu bewältigen?

Ich Danke im Euch für jeden Lösungsansatz und zielführende Hinweise.

Viele Grüße
Matthias

Re: Logdatei ---> Datenbank ("realtime")

Verfasst: Mittwoch 2. November 2016, 18:45
von BlackJack
@mateng: Anstelle des externen Programms das die Anfragen macht und in eine Datei schreibt, die man dann wieder parsen muss, wäre es sinnvoller die Daten gleich in Python zu empfangen und zu verarbeiten. Zum Beispiel mit dieser Bibliothek: https://github.com/eclipse/paho.mqtt.python

Re: Logdatei ---> Datenbank ("realtime")

Verfasst: Mittwoch 2. November 2016, 18:58
von mateng
@BlackJack: Vielen Dank für den Tip!
...... werde mich wohl dann mal mit https://github.com/eclipse/paho.mqtt.python beschäftigen.
Viele Grüße
Matthias