Neu: Die KI-Firewall überwacht jedes Modul und erklärt jeden Vorfall in einfachen Worten. So funktioniert es

Wie Messwerte gespeichert werden

Was der Telemetrie-Speicher für jede Gerätenachricht behält – Nachrichtenzeilen, das Schlüsselverzeichnis, aktuelle Werte sowie die Minuten-, Stunden- und Tages-Rollups.

Diese Seite erklärt, was Hermetry schreibt, wenn ein Flow einen Messwert speichert, und warum. Das hilft Ihnen vorherzusagen, was ein Diagramm oder die API zurückgibt, und warum manche Werte an einer Stelle erscheinen, an einer anderen aber nicht.

Nur Flows speichern Daten

Eine Gerätenachricht wird gespeichert, weil ein Flow dies vorgibt. Jede Organisation beginnt mit einem Default root flow, der jede Gerätenachricht empfängt und Telemetrie sowie Client-Attribute speichert. Der Block Save telemetry ist der einzige Weg, auf dem Telemetrie geschrieben wird:

  • Entfernen Sie den Block (oder den Zweig, der zu ihm führt), werden die Messwerte nicht mehr gespeichert. Das Gerät wird weiterhin als online angezeigt, da die Verbindung separat erfasst wird.
  • Nur msg.payload wird gespeichert. Die Metadaten der Nachricht (das Topic, der Transport, der Gerätename) werden nie gespeichert.
  • Ein Testlauf eines Flows speichert nie etwas.

Siehe Hosts, der Root-Flow und Profil-Root-Flows.

Eine Zeile pro Nachricht

Wenn der Block Save telemetry einen Datensatz schreibt, fügt der Speicher eine Zeile für den gesamten Datensatz hinzu, nicht eine Zeile pro Schlüssel:

Teil der ZeileEnthält
Gerät und ZeitDie ID des Geräts und der Zeitstempel des Datensatzes (Millisekunden, UTC)
ZahlenJeder numerische Wert, gespeichert nach Schlüssel-ID
Andere WerteBoolesche Werte, Text und JSON-Werte, gespeichert nach Schlüsselname
Nachrichten-FingerabdruckEin Hash der Werte, der verwendet wird, um dieselbe doppelt zugestellte Nachricht zu erkennen

Ein Datensatz mit 8 Schlüsseln ist eine Zeile. Dadurch bleibt der Speicherbedarf gering und die API kann eine ganze Nachricht auf einmal zurückgeben.

Das Schlüsselverzeichnis

Jeder Schlüssel, den Ihre Organisation verwendet, erhält beim ersten Speichern eine kleine Nummer in einem Verzeichnis pro Organisation. Das Verzeichnis wird von allen Ihren Geräten gemeinsam genutzt: temperature ist ein Schlüssel, egal ob ihn ein Gerät oder zehntausend senden.

  • Schlüssel werden nie umbenannt oder wiederverwendet. Ein Schlüssel bleibt im Verzeichnis, nachdem die Geräte, die ihn gesendet haben, gelöscht wurden.
  • Ihr Tarif kann die Anzahl unterschiedlicher Schlüssel begrenzen. Ein neuer Schlüssel über dem Limit wird nicht gespeichert, während die übrigen Schlüssel desselben Datensatzes gespeichert werden. Siehe Telemetrie-Schlüssel.

Aktuelle Werte

Neben dem Verlauf speichert der Speicher pro Gerät und Schlüssel einen aktuellen Wert mit seinem Zeitstempel. Die Wertkarten der Dashboards, der Reiter Telemetry der Geräteseite und der Block Latest values im Flow lesen diesen Wert.

Der aktuelle Wert wird nur auf einen strikt neueren Zeitstempel aktualisiert:

  • Ein Messwert mit älterem Zeitstempel (ein zwischengespeicherter Rückstau, der nach einem neueren eintrifft) wird im Verlauf gespeichert, ersetzt aber den aktuellen Wert nicht.
  • Eine korrigierte erneute Sendung mit demselben Zeitstempel wird als eigene Nachricht gespeichert, wenn ihre Werte abweichen, der aktuelle Wert behält jedoch den ersten.

Auf diese Weise stimmen Verlauf, aktuelle Werte und die Live-Ansicht immer überein.

Aggregate und Rollups

Zahlen werden außerdem zusammengefasst, damit lange Zeiträume schnell gelesen werden können:

EbeneInhaltBefüllt durch
1-Minuten-AggregatePro numerischem Schlüssel und Minute: Summe, Anzahl, Minimum, Maximum und der letzte WertEin Job, der jede Minute läuft
Stunden-RollupsDieselben fünf Kennzahlen pro StundeAbgeleitet aus den Minuten-Aggregaten
Tages-RollupsDieselben fünf Kennzahlen pro Tag (UTC)Abgeleitet aus den Minuten-Aggregaten

Text, boolesche Werte und JSON-Werte werden nicht aggregiert. Ein Messwert, der verspätet für eine Minute eintrifft, die bereits zusammengefasst wurde, markiert diese Minute für einen weiteren Durchlauf, sodass verspätete Daten eingerechnet werden. Siehe Aggregate und Rollups.

Welche Quelle eine Abfrage verwendet

ZeitfensterGelesen aus
Bis zu 24 StundenDie Rohnachrichten-Zeilen (jeder Messwert)
LängerDas feinste Rollup, das unter 10.000 Intervallen bleibt: Minuten, dann Stunden, dann Tage

Sie können in der API auch eine bestimmte Auflösung anfordern. Siehe Die History-API.

Aufbewahrung

Jede Ebene wird für ihre eigene Zeitspanne aufbewahrt. Rohzeilen werden höchstens 90 Tage aufbewahrt, Minuten-Aggregate höchstens 31 Tage, und Stunden- und Tages-Rollups für die volle Aufbewahrungsklasse Ihres Tarifs. Siehe Wie lange Daten aufbewahrt werden.

Live-Werte

Nachdem ein Speichervorgang abgeschlossen ist, werden die neuen Werte an offene Dashboards und Geräteseiten übertragen, die das Gerät beobachten. Ein Wert, der nicht gespeichert wurde (zum Beispiel ein Schlüssel, den der Root-Flow herausfiltert), erscheint nie live. Die Live-Übermittlung erfolgt höchstens viermal pro Sekunde und Schlüssel; dazwischenliegende Werte werden trotzdem gespeichert.

Wenn ein Gerät gelöscht wird

Beim Löschen eines Geräts werden seine Messwerte, Minuten-Aggregate, Rollups und aktuellen Werte im Hintergrund entfernt, jeweils ein Tag Daten nach dem anderen. Die von ihm verwendeten Schlüssel bleiben im Verzeichnis.

Zählung

ZählerBedeutung
IoT-NachrichtenVon Geräten empfangene Telemetrie- und Attributnachrichten, gezählt bei Eingang, unabhängig davon, ob ein Flow sie speichert
Gespeicherte IoT-DatenpunkteDie Werte, die der Speicher tatsächlich eingefügt hat. Ein vom Speicher verworfenes Duplikat wird nicht gezählt. Kein Kontingent.

Siehe Nachrichtenkontingent und Nutzung.