Laden...

Datensätze alle 2ms speichern

Erstellt von RobotSox vor 2 Jahren Letzter Beitrag vor 2 Jahren 391 Views
R
RobotSox Themenstarter:in
2 Beiträge seit 2021
vor 2 Jahren
Datensätze alle 2ms speichern

Hallo,

ich habe ein kleines Tool geschrieben welches alle 2ms Werte aus einem Netzwerkteilnehmer ausließt.
Es handelt sich hierbei um 3xFloat, String sowie Integer Werte.

Mir stellt sich nun die Frage, wie ich die Daten am geschicktesten abspeichere.

Die neuen Datensätze welche alle 2 Millisekunden kommen in eine MySQL Datenbank schreiben oder eher am Filesystem (.csv) Datei bleiben?
Welche Vor bzw. Nachteile bringen die Systeme?

Gerne bin ich auch offen für andere Datensysteme.

LG RobotSox

16.835 Beiträge seit 2008
vor 2 Jahren

Evaluieren, welches System Deine Anforderungen erfüllt, ist der Job für Dich als Entwickler.
Nur Du kennst Deine konkreten Anforderungen. Für uns ist das Glaskugelraten.
Das musst also leider selbst machen.

Was Du mit "alle 2ms" aussagen willst und was das für eine Quelle sein soll, würde mich allerdings interessieren.

R
RobotSox Themenstarter:in
2 Beiträge seit 2021
vor 2 Jahren

Die Quelle ist eine Maschine welche über Ethernet ausgelesen wird.
Ausgelesen wird der Strom der Antriebe, Drehzahl und co.

Dies soll gesichert werden um eine Kurve der Antriebsdaten zu bekommen.

16.835 Beiträge seit 2008
vor 2 Jahren

Dann lohnt sich evtl ein gepuffertes System, falls zB die Datenbank für einige Sekunden nicht erreichbar ist und Du so keine Daten verlierst?
Umsetzung macht man für solche Systeme zB. Event-basiert.
Maschinenvernetzung ist mein Hauptthema im Job; und das kann auch ganz schnell sehr komplex und leistungshungrig werden, wenns mal größer wird.

Aber im Endeffekt musst Du Dir selbst eine Übersicht der Anforderungen schaffen und dann Systeme und Bausteine evaluieren, wie Du verwenden willst.
Das macht man bevor man eine Zeile Code umsetzt 😉

6.911 Beiträge seit 2009
vor 2 Jahren

Hallo RobotSox ,

eine ... Datenbank schreiben oder eher am Filesystem (.csv) Datei bleiben?
...
Dies soll gesichert werden um eine Kurve der Antriebsdaten zu bekommen.

D.h. schreibend und lesend können zeitgleich stattfinden? Falls ja, so würde ich stark zu einer Datenbank tendieren welche für solche Zwecke ausgelegt sind und problemlos damit umgehen können.
(CSV-) Dateien sind im Grunde nicht gleichzeitiges Lesen und Schreiben ausgelegt und die Gefahrt ist groß, dass die Datei "zerschossen" wird. Rechne einfach mal aus wieviele Werte so in einer Stunde gesammelt werden und überleg dann ob CSV sinnvoll sein kann od. nicht.

Um jedoch das wirklich beurteilen zu können siehe Abts Antwort(en) und bedenke auch:* Soll der Datenspeicher auf einem Server laufen als der "Lese-Dienst"?

  • Was soll mit diesen Daten sonst noch passieren? Dabei auch versuchen etwas in die Zukunft zu denken.
  • Ist es nur eine Maschine od. sollen das für mehrere Maschinen durchgeführt werden? Um z.B. Korrelationen zu finden, etc.
  • Sollen die Daten (langzeit) archiviert werden?
  • Welche Datenmenge fallen an über einen Tag, Monat, Jahr -- das lässt sich ja recht gut abschätzen / errechnen?
  • Können Cloud-Lösungen verwendet werden?

Es gibt auch jede Menge Datenbank-Systeme und auch spezielle Time-Series Datenbanken. Auch hier lässt sich nicht pauschal beurteilen was am besten geignet ist.

Wenn du das evaluierst so werden sich ein paar Fragen von dir von selbst erklären 😉

gesichert werden um eine Kurve der Antriebsdaten zu bekommen

Wenn ein Diagramm der Antriebsdaten das Ziel sein soll, so werden dort sicherlich nicht die Datenpunkte aller 2ms Intervalle dargestellt werden können. Das überlastet die UI (außer es soll ein Oszilloskop werden). Spätestens beim Visualisieren müssen die Daten aggregiert werden um sinnvoll damit arbeiten zu können. Daher kann es auch sinnvoll sein, die Daten nach dem Lesen und im Zuge des "Sicherns" bereits zu Filtern und Aggregieren um die Datenmenge zu reduzieren.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"