StableNet-Abfragen
Dieser Abschnitt gilt nur für mit StableNet® integrierte Systeme
StableNet®-Daten können sowohl aus einem aggregierten Datensatz in einer lokalen SKOOR-Datenbank als auch in Echtzeit über die StableNet®-API abgefragt werden. Die folgenden Richtlinien helfen, diese beiden Methoden zu kombinieren und zu optimieren.
Bereiten Sie eine materialisierte Datenabfrage für Geräte und Messungen vor
Die folgende Beispielabfrage liefert Basisdaten für die Verwendung mit einem FilterMatrix-Widget (z. B. Filter für Geräte oder Messungen) sowie für die Verknüpfung von Messdaten aus der StableNet® API oder der Tabelle mit aggregierten Daten. Die Datenquelle muss auf den Typ StableNet eingestellt sein.
-- Data query example "device_measurement" SELECT std.id AS device_id, std.display_name AS device_name, sm.id as measurement_id, sm.name as measurement_name FROM stablenet_taggable_device std JOIN stablenet_measurement sm ON std.id = sm.dest_device_id
Da sich Geräte- und Messdaten nicht sehr oft ändern, sollte diese Abfrage materialisiert werden. Die Leistung wird dadurch erheblich gesteigert.
Setzen Sie das Aktualisierungsintervall auf täglich und erstellen Sie Indizes für alle Attribute:
Join foreign table for realtime data
Zusätzlich zu der vorbereiteten materialisierten Datenabfrage können Daten aus der StableNet® API über eine fremde Tabelle verbunden werden.
Das Schlüsselwort FROM im folgenden Beispiel verweist auf die oben vorbereitete materialisierte Abfrage.
SELECT dm.device_id, dm.device_name, dm.measurement_name, dm.measurement_id, sma.metric_key, sma.metric_name, sma.interval, sma.min, sma.max, sma.avg, sma.timestamp FROM device_measurement dm JOIN stablenet_measurement_data sma ON dm.measurement_id = sma.measurement_id WHERE sma.start = ${begin}::timestamptz AND sma."end" = ${end}::timestamptz AND sma.bucket_size = EXTRACT( EPOCH FROM ('1 ' || ${bucket_size})::interval )::integer AND sma.metric_name = ${metric_name}
Im Dashboard oder in der Datenvorschau müssen die folgenden Attribute für diese Beispielabfrage festgelegt werden:
Anfang/Ende: ISO 8601-Zeitstempel, z. B. 2024-05-01T00:00:00Z
bucket_size: Zeitbereich in Worten wie Stunde, Tag, Monat, usw.
metric_name: Ein gültiger StableNet®-Metrikname wie Round Trip Time
Versuchen Sie anstelle von metric_name das Attribut metric_key in der WHERE-Klausel, um eine bestimmte Metrik auszuwählen, wenn mehr als eine vorhanden ist
Aggregierte Datentabelle verbinden
Wenn die Leistung wichtiger ist als die Echtzeitdaten, sollte die aggregierte Datentabelle den Fremdtabellen vorgezogen werden.
Das Schlüsselwort FROM im folgenden Beispiel verweist auf die oben vorbereitete materialisierte Abfrage.
SELECT dm.device_id, dm.device_name, dm.measurement_name, dm.measurement_id, sma.metric_key, sma.metric_name, sma.interval, sma.min, sma.max, sma.avg, sma.timestamp FROM device_measurement dm JOIN stablenet_measurement_data_aggregated sma ON dm.measurement_id = sma.measurement_id WHERE sma.timestamp BETWEEN ${begin}::timestamptz AND ${end}::timestamptz AND sma.metric_name = ${metric_name}
Im Dashboard oder in der Datenvorschau müssen die folgenden Attribute für diese Beispielabfrage gesetzt werden:
Anfang/Ende: ISO 8601-Zeitstempel, z. B. 2024-05-01T00:00:00Z
metric_name: Ein gültiger StableNet®-Metrikname wie Round Trip Time
Versuchen Sie anstelle des metric_name das metric_key-Attribut in der WHERE-Klausel, um eine bestimmte Metrik auszuwählen, wenn mehr als eine vorhanden ist
Fremdtabellen
Name | Felder | Bezeichner |
---|---|---|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Obwohl measurement_id
und metric_key
optional sind, ist es nicht empfehlenswert, Abfragen ohne sie auszuführen. Dadurch werden die Messdaten aller Messungen und aller Metriken gelesen, was sehr lange dauern kann und den StableNet Server stark belastet. Nur ratsam für sehr kurze Zeiträume < 1h. Wenn mehrere Messungen und Metriken benötigt werden, sollte die Tabelle stablenet_measurement_data_aggregated
verwendet werden.
Aggregierte Messdaten
Aggregiert nach Stunden, automatisch jede Stunde aktualisiert. Kann verwendet werden, um Analyseabfragen über ein breites Spektrum von Messungen und über große Zeitspannen durchzuführen.
Ist im Grunde eine Zeitskala-Hypertabelle(https://docs.timescale.com/ ). Chunk-Größe ist 7 Tage, Chunks werden nach 7 Tagen komprimiert.
Name | Felder |
---|---|
|
|
stablenet_measurement_data_aggregated
enthält nur Daten für konfigurierte metrische Schlüssel.