

Pour des fonctionnalités similaires à celles d'Amazon Timestream pour, pensez à Amazon Timestream LiveAnalytics pour InfluxDB. Il permet une ingestion simplifiée des données et des temps de réponse aux requêtes à un chiffre en millisecondes pour des analyses en temps réel. Pour en savoir plus, [cliquez ici](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html).

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Vues des séries chronologiques
<a name="timeseries-specific-constructs.views"></a>

Timestream for LiveAnalytics prend en charge les fonctions suivantes pour transformer vos données en type de `timeseries` données :

**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** est une fonction d'agrégation qui prend toutes les mesures brutes d'une série chronologique (valeurs temporelles et valeurs de mesure) et renvoie un type de données de série chronologique. La syntaxe de cette fonction est la suivante : 

```
CREATE_TIME_SERIES(time, measure_value::<data_type>)
```

 où `<data_type>` est le type de données de la valeur de mesure et peut être bigint, boolean, double ou varchar. Le second paramètre ne peut pas être nul.

Tenez compte de l'utilisation du processeur des instances EC2 stockées dans une table nommée **metrics**, comme indiqué ci-dessous :


| Heure | region | az | vpc | instance\$1id | nom\$1mesure | valeur\$1mesure : double | 
| --- | --- | --- | --- | --- | --- | --- | 
|  2019-12-04 19:00:00.000 000000  |  us-east-1  |  us-east-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef0  |  utilisation du processeur  |  35,0  | 
|  2019-12-04 19:00:01 000 000000  |  us-east-1  |  us-east-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef0  |  utilisation du processeur  |  38,2  | 
|  2019-12-04 19:00:02 000 000000  |  us-east-1  |  us-east-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef0  |  utilisation du processeur  |  45,3  | 
|  2019-12-04 19:00:00.000 000000  |  us-east-1  |  us-east-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef1  |  utilisation du processeur  |  54,1  | 
|  2019-12-04 19:00:01 000 000000  |  us-east-1  |  us-east-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef1  |  utilisation du processeur  |  42,5  | 
|  2019-12-04 19:00:02 000 000000  |  us-east-1  |  us-east-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef1  |  utilisation du processeur  |  33,7  | 

Exécution de la requête :

```
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
```

renverra toutes les séries qui ont `cpu_utilization` comme valeur de mesure. Dans ce cas, nous avons deux séries : 


| region | az | vpc | instance\$1id | utilisation du processeur | 
| --- | --- | --- | --- | --- | 
|  us-east-1  |  us-east-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef0  |  [\$1time : 2019-12-04 19:00:00.000 000000, measure\$1value : :double : 35.0\$1, \$1time : 2019-12-04 19:00:01.000 000000, measure\$1value : :double : 38.2\$1, \$1time : 2019-12-04 19:00:02.000 000000, measure\$1value : :double : 45,3\$1]  | 
|  us-east-1  |  us-east-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef1  |  [\$1time : 2019-12-04 19:00:00.000 000000, measure\$1value : :double : 35.1\$1, \$1time : 2019-12-04 19:00:01.000 000000, measure\$1value : :double : 38.5\$1, \$1time : 2019-12-04 19:00:02.000 000000, measure\$1value : :double : 45,7\$1]  | 

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

 `UNNEST`est une fonction de table qui vous permet de transformer `timeseries` les données en modèle plat. La syntaxe est la suivante : 

 `UNNEST``timeseries`transforme a en deux colonnes, à savoir, `time` et`value`. Vous pouvez également utiliser des alias avec UNNEST, comme indiqué ci-dessous : 

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

où `<alias_name>` est l'alias de la table plate, `time_alias` l'alias de la `time` colonne et `value_alias` l'alias de la `value` colonne.

Par exemple, imaginez le scénario dans lequel certaines instances EC2 de votre parc sont configurées pour émettre des métriques à un intervalle de 5 secondes, d'autres à un intervalle de 15 secondes, et vous avez besoin des métriques moyennes pour toutes les instances avec une granularité de 10 secondes au cours des 6 dernières heures. Pour obtenir ces données, vous transformez vos métriques en un modèle de série chronologique à l'aide de **CREATE\$1TIME\$1SERIES**. Vous pouvez ensuite utiliser **INTERPOLATE\$1LINEAR** pour obtenir les valeurs manquantes avec une granularité de 10 secondes. Ensuite, vous retransformez les données en modèle plat à l'aide d'**UNNEST**, puis vous utilisez **AVG** pour obtenir les mesures moyennes sur toutes les instances.

```
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 requête ci-dessus illustre l'utilisation d'**UNNEST** avec un alias. Vous trouverez ci-dessous un exemple de la même requête sans utiliser d'alias pour **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
```