Visualizzazioni delle serie temporali - Amazon Timestream

Per funzionalità simili a Amazon Timestream for, prendi in considerazione Amazon Timestream LiveAnalytics per InfluxDB. Offre un'acquisizione semplificata dei dati e tempi di risposta alle query di una sola cifra di millisecondi per analisi in tempo reale. Scopri di più qui.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Visualizzazioni delle serie temporali

Timestream for LiveAnalytics supporta le seguenti funzioni per trasformare i dati nel tipo di dati: timeseries

CREATE_TIME_SERIES

CREATE_TIME_SERIES è una funzione di aggregazione che prende tutte le misurazioni non elaborate di una serie temporale (valori temporali e di misura) e restituisce un tipo di dati di serie temporali. La sintassi di questa funzione è la seguente:

CREATE_TIME_SERIES(time, measure_value::<data_type>)

where <data_type> è il tipo di dati del valore della misura e può essere uno tra bigint, boolean, double o varchar. Il secondo parametro non può essere nullo.

Considerate l'utilizzo della CPU delle EC2 istanze archiviate in una tabella denominata metrics come illustrato di seguito:

Orario Regione az vpc instance_id measure_name measure_value::double

2019-12-04 19:00:00.000 000000

us-east-1

Stati Uniti est-1d

vpc-1a2b3c4d

i-1234567890abcdef0

utilizzo della cpu_

35,0

2019-12-04 19:00:01.000 000000

us-east-1

Stati Uniti est-1d

vpc-1a2b3c4d

i-1234567890abcdef0

utilizzo della cpu_

38.2

2019-12-04 19:00:02,000 000000

us-east-1

Stati Uniti - est-1d

vpc-1a2b3c4d

i-1234567890abcdef0

utilizzo della cpu_

45,3

2019-12-04 19:00:00.000 000000

us-east-1

Stati Uniti est-1d

vpc-1a2b3c4d

i-1234567890abcdef1

cpu_utilization

54.1

2019-12-04 19:00:01.000 000000

us-east-1

Stati Uniti est-1d

vpc-1a2b3c4d

i-1234567890abcdef1

cpu_utilization

42,5

2019-12-04 19:00:02,000 000000

us-east-1

Stati Uniti - est-1d

vpc-1a2b3c4d

i-1234567890abcdef1

cpu_utilization

33.7

Esecuzione della query:

SELECT region, az, vpc, instance_id, CREATE_TIME_SERIES(time, measure_value::double) as cpu_utilization FROM metrics WHERE measure_name=’cpu_utilization’ GROUP BY region, az, vpc, instance_id

restituirà tutte le serie che hanno cpu_utilization come valore di misura. In questo caso, abbiamo due serie:

Regione az vpc instance_id cpu_utilization

us-east-1

us-east-1d

vpc-1a2b3c4d

i-1234567890abcdef0

[{ora: 2019-12-04 19:00:00.000 000000, valore_misura: :doppio: 35.0}, {ora: 2019-12-04 19:00:01.000 000000, valore_misura: :doppio: 38.2}, {ora: 2019-12-04 19:00:02.000 000000, valore_misura: :doppio: 45,3}]

us-east-1

us-east-1d

vpc-1a2b3c4d

i-1234567890abcdef1

[{ora: 2019-12-04 19:00:00.000 000000, valore_misura: :doppio: 35.1}, {ora: 2019-12-04 19:00:01.000 000000, valore_misura: :doppio: 38,5}, {ora: 2019-12-04 19:00:02.000 000000, valore_misura: :doppio: 45,7}]

UNNEST

UNNESTè una funzione di tabella timeseries che consente di trasformare i dati in un modello piatto. La sintassi è esposta di seguito:

UNNESTtimeseriestrasforma a in due colonne, vale a dire time evalue. Puoi anche usare alias con UNNEST come mostrato di seguito:

UNNEST(timeseries) AS <alias_name> (time_alias, value_alias)

dove <alias_name> è l'alias per la tabella piatta, time_alias è l'alias per la time colonna ed value_alias è l'alias per la colonna. value

Ad esempio, considera lo scenario in cui alcune istanze del tuo parco EC2 istanze sono configurate per emettere metriche a intervalli di 5 secondi, altre emettono metriche a intervalli di 15 secondi e hai bisogno delle metriche medie per tutte le istanze con una granularità di 10 secondi nelle ultime 6 ore. Per ottenere questi dati, trasformate le metriche nel modello di serie temporali utilizzando CREATE_TIME_SERIES. È quindi possibile utilizzare INTERPOLATE_LINEAR per ottenere i valori mancanti con una granularità di 10 secondi. Successivamente, trasformi i dati in un modello piatto utilizzando UNNEST, quindi usi AVG per ottenere le metriche medie per tutte le istanze.

WITH interpolated_timeseries AS ( SELECT region, az, vpc, instance_id, INTERPOLATE_LINEAR( CREATE_TIME_SERIES(time, measure_value::double), SEQUENCE(ago(6h), now(), 10s)) AS interpolated_cpu_utilization FROM timestreamdb.metrics WHERE measure_name= ‘cpu_utilization’ AND time >= ago(6h) GROUP BY region, az, vpc, instance_id ) SELECT region, az, vpc, instance_id, avg(t.cpu_util) FROM interpolated_timeseries CROSS JOIN UNNEST(interpolated_cpu_utilization) AS t (time, cpu_util) GROUP BY region, az, vpc, instance_id

La query precedente dimostra l'uso di UNNEST con un alias. Di seguito è riportato un esempio della stessa query senza utilizzare un alias per UNNEST:

WITH interpolated_timeseries AS ( SELECT region, az, vpc, instance_id, INTERPOLATE_LINEAR( CREATE_TIME_SERIES(time, measure_value::double), SEQUENCE(ago(6h), now(), 10s)) AS interpolated_cpu_utilization FROM timestreamdb.metrics WHERE measure_name= ‘cpu_utilization’ AND time >= ago(6h) GROUP BY region, az, vpc, instance_id ) SELECT region, az, vpc, instance_id, avg(value) FROM interpolated_timeseries CROSS JOIN UNNEST(interpolated_cpu_utilization) GROUP BY region, az, vpc, instance_id