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 e in tempo reale dall'API StableNet® . Le seguenti linee guida aiutano a combinare e ottimizzare questi due metodi.
Preparare una query di dati materializzati per dispositivi e misure
Il seguente esempio di query fornisce dati di base da utilizzare con un widget FilterMatrix (ad es. filtro per dispositivi o misure) e per unire i dati di misura dall'API StableNet® o dalla tabella dei dati aggregati. L'origine dati deve essere impostata su un tipo di 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 dei dispositivi e delle misure non cambiano molto spesso, questa query dovrebbe essere materializzata. Le prestazioni aumenteranno in modo significativo.
Impostare l'intervallo di aggiornamento su giornaliero e creare indici per tutti gli attributi:
Unire le tabelle esterne per i dati in tempo reale
Oltre alla query di dati materializzati preparata, i dati provenienti da StableNet® API possono essere uniti utilizzando una tabella esterna.
La parola chiave FROM nell'esempio seguente punta alla query materializzata preparata in precedenza.
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, per questa query di esempio devono essere impostati i seguenti attributi:
inizio/fine: Timestamp ISO 8601, ad esempio 2024-05-01T00:00:00Z
bucket_size: bucket temporale in parole come ora, giorno, mese, ecc.
metric_name: nome di una metrica StableNet® valida, come Round Trip Time (tempo di andata e ritorno).
Al posto di metric_name, provare a utilizzare l'attributo metric_key nella clausola WHERE per selezionare una metrica specifica se ne è disponibile più di una.
Unirsi alla tabella dei dati aggregati
Se le prestazioni sono più importanti dei dati in tempo reale, la tabella dei dati aggregati dovrebbe essere preferita alle tabelle esterne.
La parola chiave FROM nell'esempio seguente punta alla query materializzata preparata in precedenza.
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, per questa query di esempio devono essere impostati i seguenti attributi:
inizio/fine: Timestamp ISO 8601, ad esempio 2024-05-01T00:00:00Z
metric_name: un nome di metrica StableNet® valido, come Round Trip Time (tempo di andata e ritorno).
Al posto di metric_name, provare a utilizzare l'attributo metric_key nella clausola WHERE per selezionare una metrica specifica se ne è disponibile più di una.
Tabelle straniere
Nome | Campi | Qualificatori |
---|---|---|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sebbene measurement_id
e metric_key
siano opzionali, non è consigliabile eseguire le query senza. In questo modo si leggono i dati di tutte le misurazioni e di tutte le metriche, il che potrebbe richiedere molto tempo per la lettura e appesantire il server StableNet. È consigliabile solo per intervalli di tempo molto brevi < 1h. Se sono necessarie più misure e metriche, si deve usare la tabella stablenet_measurement_data_aggregated
.
Dati di misurazione aggregati
Aggregati per ora, aggiornati automaticamente ogni ora. Può essere utilizzata per eseguire query analitiche su un'ampia gamma di misurazioni e su grandi intervalli di tempo.
È fondamentalmente un'ipertabella a scala temporale(https://docs.timescale.com/ ). La dimensione dei pezzi è di 7 giorni, i pezzi vengono compressi dopo 7 giorni.
Nome | Campi |
---|---|
|
|
stablenet_measurement_data_aggregated
contiene solo i dati delle chiavi metriche configurate.