open-how2 – Entdecke. Verstehe. Nutze.
Veröffentlicht am
How2-Tipps

Daten speichern & weiterverarbeiten: Nachhaltige Workflows mit Node-RED

Autor
Daten speichern & weiterverarbeiten: Nachhaltige Workflows mit Node-RED

Daten speichern & weiterverarbeiten

Nachhaltige Workflows statt Datenchaos

Ziel: Daten sauber, nachvollziehbar und dauerhaft verarbeiten. Ergebnis: Keine Speicherlecks, kein Wildwuchs – sondern kontrollierte Persistenz in Node-RED.

1. File-System: Der unterschätzte Klassiker

Das Dateisystem ist oft der erste Speicherort, den man nutzt – und das aus gutem Grund.

Typische Einsatzfälle

  • Logs & Debug-Ausgaben
  • Exportdateien (CSV, JSON, TXT)
  • Zwischenablagen für Batch-Prozesse
  • Backups & Snapshots

Best Practices

  • Klare Ordnerstruktur (z. B. /data/import, /data/export, /data/tmp)
  • Keine Endlosdateien → rotieren oder aufteilen
  • Dateinamen mit Zeitstempel oder IDs
  • Niemals sensible Daten unverschlüsselt ablegen

👉 Faustregel: Dateien sind ideal für Austausch & Archiv, nicht für hochfrequente Zustände.

2. Datenbanken: Wenn Daten leben sollen

Sobald Daten:

  • abgefragt,
  • gefiltert,
  • aggregiert,
  • oder langfristig genutzt werden,

gehören sie in eine Datenbank.

MySQL & PostgreSQL

Geeignet für:

  • strukturierte Daten
  • relationale Zusammenhänge
  • Auswertungen & Reports
  • produktive Systeme

PostgreSQL punktet besonders bei:

  • komplexen Abfragen
  • JSON-Feldern
  • Datenintegrität

SQLite

Perfekt für:

  • kleine Systeme
  • Embedded-Setups
  • lokale Automationen
  • Prototypen

👉 Merksatz: SQLite = lokal & simpel MySQL/PostgreSQL = produktiv & skalierbar

3. Kontext: Flow, Global & Persistent – was ist was?

Der Kontext ist eines der mächtigsten – und gefährlichsten – Features in Node-RED.

Flow Context

  • gilt nur innerhalb eines Flows
  • ideal für:

    • Zwischenergebnisse
    • Zähler
    • lokale Zustände

Global Context

  • für alle Flows sichtbar
  • sinnvoll für:

    • Konfigurationen
    • gemeinsame Statusinfos
    • zentrale Flags

⚠️ Gefahr: Global Context wird schnell zur Müllhalde, wenn man nicht diszipliniert ist.

Persistent Context

  • überlebt Neustarts
  • speichert auf Disk
  • ideal für:

    • letzte Zustände
    • Marker („letzter Lauf erfolgreich“)
    • Fortschritt von Jobs

👉 Wichtig: Persistent Context ist kein Ersatz für eine Datenbank.

4. Wann Daten wohin gehören (die wichtigste Entscheidung)

Viele Probleme entstehen nicht durch Technik, sondern durch falsche Ablage.

Gute Zuordnung

  • Kurzlebig / technisch → Flow Context
  • Gemeinsam genutzt → Global Context (sparsam!)
  • Neustart-relevant → Persistent Context
  • Strukturiert & dauerhaft → Datenbank
  • Austausch & Archiv → File-System

👉 Wenn du unsicher bist: Lieber zu früh in eine Datenbank als zu lange im Kontext.

5. Performance-Fallen (und wie du sie vermeidest)

Falle 1: Zu viel im Context

  • große Objekte
  • Arrays ohne Begrenzung
  • nie gelöschte Daten

➡️ Lösung: Context klein halten, regelmäßig aufräumen.

Falle 2: Dauerndes Schreiben auf Disk

  • jeder Flow-Schritt schreibt Datei
  • persistenter Context bei jedem Tick

➡️ Lösung: Batchen, puffern, gezielt speichern.

Falle 3: Datenbank als Message-Log

  • jede Message sofort in DB
  • keine Bündelung
  • keine Indizes

➡️ Lösung: Datenbank bewusst nutzen – nicht als Debug-Ersatz.

Fazit: Nachhaltige Speicherung ist Architektur, nicht Nebenbei

Node-RED macht Datenspeicherung einfach – aber nicht automatisch richtig.

Wer nachhaltig arbeitet:

  • trennt Zustände von Daten
  • wählt Speicherorte bewusst
  • denkt an Neustarts & Fehlerfälle
  • achtet auf Performance von Anfang an

👉 Dann entstehen:

  • wartbare Workflows
  • stabile Automationen
  • nachvollziehbare Datenflüsse

Und genau das ist der Unterschied zwischen:

„Es läuft“ und „Es läuft auch morgen noch sauber.“