- Veröffentlicht am
- • How2-Tipps
Daten speichern & weiterverarbeiten: Nachhaltige Workflows mit Node-RED
- Autor
-
-
- Benutzer
- tmueller
- Beiträge dieses Autors
- Beiträge dieses Autors
-
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.“