Interrogazione di StableNet
Questa sezione si applica solo ai sistemi integrati con StableNet®.
I dati StableNet® possono essere interrogati da un set di dati aggregati su un database SKOOR locale, nonché in tempo reale dall'API StableNet®. Le seguenti linee guida aiutano a combinare e ottimizzare questi due metodi.
Preparare una query di dati materializzata per dispositivi e misurazioni
La seguente query di esempio fornisce dati di base da utilizzare con un widget FilterMatrix (ad esempio, filtro per dispositivi o misurazioni) e per unire i dati di misurazione dall'API StableNet® o dalla tabella di dati aggregati. L'origine dati deve essere impostata su uno dei tipi StableNet.
-- 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
Poiché i dati relativi ai dispositivi e alle misurazioni non cambiano molto spesso, questa query dovrebbe essere materializzata. Le prestazioni saranno notevolmente migliorate.
Impostare l'intervallo di aggiornamento su giornaliero e creare indici per tutti gli attributi:
Unire la tabella esterna per i dati in tempo reale
Oltre alla query dei dati materializzati preparata, è possibile unire i dati provenienti dall'API StableNet® utilizzando una tabella esterna.
La parola chiave FROM nell'esempio seguente punta alla query materializzata preparata sopra.
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}
Nella dashboard o nell'anteprima dei dati, è necessario impostare i seguenti attributi per questa query di esempio:
inizio/fine: timestamp ISO 8601, ad esempio 2024-05-01T00:00:00Z
bucket_size: intervallo di tempo in parole come ora, giorno, mese, ecc.
metric_name: un nome di metrica StableNet® valido, ad esempio Round Trip Time
Invece del metric_name, prova l'attributo metric_key nella clausola WHERE per selezionare una metrica specifica se ne sono disponibili più di una
Unire la tabella dei dati aggregati
Se le prestazioni sono più importanti dei dati in tempo reale, è preferibile utilizzare la tabella dei dati aggregati piuttosto che le tabelle esterne.
La parola chiave FROM nell'esempio seguente punta alla query materializzata preparata sopra.
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}
Nella dashboard o nell'anteprima dei dati, è necessario impostare i seguenti attributi per questa query di esempio:
begin/end: timestamp ISO 8601, ad esempio 2024-05-01T00:00:00Z
metric_name: un nome di metrica StableNet® valido come Round Trip Time
Invece di metric_name, provare l'attributo metric_key nella clausola WHERE per selezionare una metrica specifica se ne è disponibile più di una
Tabelle esterne
Nome | Campi | Qualificatori |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sebbene measurement_id e metric_key siano opzionali, non è consigliabile eseguire query senza di essi. Ciò comporta la lettura dei dati di tutte le misurazioni e di tutte le metriche, operazione che potrebbe richiedere molto tempo e comportare un carico elevato sul server StableNet. Consigliabile solo per intervalli di tempo molto brevi < 1h. Se sono necessarie più misurazioni e metriche, è necessario utilizzare la tabella stablenet_measurement_data_aggregated.
Dati di misurazione aggregati
Aggregati per ora, aggiornati automaticamente ogni ora. Possono essere utilizzati per eseguire query analitiche su un'ampia gamma di misurazioni e su intervalli di tempo estesi.
Si tratta fondamentalmente di una hypertable Timescale (https://docs.timescale.com/ ). La dimensione dei blocchi è di 7 giorni, i blocchi vengono compressi dopo 7 giorni.
Nome | Campi |
|---|---|
|
|
stablenet_measurement_data_aggregated contiene solo dati per le chiavi metriche configurate.


