

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](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html) 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
<a name="timeseries-specific-constructs.views"></a>

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

**Topics**
+ [CREATE\$1TIME\$1SERIES](#timeseries-specific-constructs.views.CREATE_TIME_SERIES)
+ [UNNEST](#timeseries-specific-constructs.views.UNNEST)

## CREATE\$1TIME\$1SERIES
<a name="timeseries-specific-constructs.views.CREATE_TIME_SERIES"></a>

 **CREATE\$1TIME\$1SERIES** è 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.

Considera l'utilizzo della CPU delle istanze EC2 memorizzate in una tabella denominata **metrics**, come illustrato di seguito:


| Orario | region | az | vpc | instance\$1id | measure\$1name | measure\$1value::double | 
| --- | --- | --- | --- | --- | --- | --- | 
|  2019-12-04 19:00:00.000 000000  |  us-east-1  |  Stati Uniti est-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef0  |  utilizzo della cpu\$1  |  35,0  | 
|  2019-12-04 19:00:01.000 000000  |  us-east-1  |  Stati Uniti est-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef0  |  utilizzo della cpu\$1  |  38.2  | 
|  2019-12-04 19:00:02,000 000000  |  us-east-1  |  Stati Uniti - est-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef0  |  utilizzo della cpu\$1  |  45,3  | 
|  2019-12-04 19:00:00.000 000000  |  us-east-1  |  Stati Uniti est-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef1  |  cpu\$1utilization  |  54.1  | 
|  2019-12-04 19:00:01.000 000000  |  us-east-1  |  Stati Uniti est-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef1  |  cpu\$1utilization  |  42,5  | 
|  2019-12-04 19:00:02,000 000000  |  us-east-1  |  Stati Uniti - est-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef1  |  cpu\$1utilization  |  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: 


| region | az | vpc | instance\$1id | cpu\$1utilization | 
| --- | --- | --- | --- | --- | 
|  us-east-1  |  us-east-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef0  |  [\$1ora: 2019-12-04 19:00:00.000 000000, valore\$1misura: :doppio: 35.0\$1, \$1ora: 2019-12-04 19:00:01.000 000000, valore\$1misura: :doppio: 38.2\$1, \$1ora: 2019-12-04 19:00:02.000 000000, valore\$1misura: :doppio: 45,3\$1]  | 
|  us-east-1  |  us-east-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef1  |  [\$1ora: 2019-12-04 19:00:00.000 000000, valore\$1misura: :doppio: 35.1\$1, \$1ora: 2019-12-04 19:00:01.000 000000, valore\$1misura: :doppio: 38,5\$1, \$1ora: 2019-12-04 19:00:02.000 000000, valore\$1misura: :doppio: 45,7\$1]  | 

## UNNEST
<a name="timeseries-specific-constructs.views.UNNEST"></a>

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

 `UNNEST``timeseries`trasforma a in due colonne, vale a dire `time` e`value`. 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 EC2 del tuo parco 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, trasformi le tue metriche nel modello di serie temporali utilizzando CREATE\$1TIME\$1SERIES.** È quindi possibile utilizzare **INTERPOLATE\$1LINEAR** 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
```