

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.

# Fonctions de filtrage et de réduction
<a name="timeseries-specific-constructs.functions.filter-reduce"></a>

Amazon Timestream prend en charge des fonctions permettant de filtrer et de réduire les opérations sur les données de séries chronologiques. Cette section fournit des informations d'utilisation du Timestream pour les fonctions de LiveAnalytics filtrage et de réduction, ainsi que des exemples de requêtes. 



## Informations d'utilisation
<a name="w2aab7c59c13c13c23b7"></a>


| Fonction | Type de données de sortie | Description | 
| --- | --- | --- | 
|  `filter(timeseries(T), function(T, Boolean))`  |  série chronologique (T)  |  Construit une série chronologique à partir d'une série chronologique en entrée, en utilisant les valeurs pour lesquelles le passé `function` renvoie`true`.  | 
|  `reduce(timeseries(T), initialState S, inputFunction(S, T, S), outputFunction(S, R))`  |  R  |  Renvoie une valeur unique, réduite par rapport à la série chronologique. Le `inputFunction` sera invoqué sur chaque élément des séries temporelles dans l'ordre. En plus de prendre l'élément actuel, InputFunction prend l'état actuel (initialement`initialState`) et renvoie le nouvel état. Le `outputFunction` sera invoqué pour transformer l'état final en valeur de résultat. Il `outputFunction` peut s'agir d'une fonction d'identité.  | 

## Exemples de requêtes
<a name="w2aab7c59c13c13c23b9"></a>

**Example**  
Construisez une série chronologique de l'utilisation du processeur par un hôte et des points de filtrage avec une mesure supérieure à 70 :  

```
WITH time_series_view AS (
    SELECT INTERPOLATE_LINEAR(
        CREATE_TIME_SERIES(time, ROUND(measure_value::double,2)), 
            SEQUENCE(ago(15m), ago(1m), 10s)) AS cpu_user
    FROM sample.DevOps
    WHERE hostname = 'host-Hovjv' and measure_name = 'cpu_utilization'
        AND time > ago(30m)
    GROUP BY hostname
)
SELECT FILTER(cpu_user, x -> x.value > 70.0) AS cpu_above_threshold
from time_series_view
```

**Example**  
Construisez une série chronologique de l'utilisation du processeur d'un hôte et déterminez la somme au carré des mesures :  

```
WITH time_series_view AS (
    SELECT INTERPOLATE_LINEAR(
        CREATE_TIME_SERIES(time, ROUND(measure_value::double,2)), 
            SEQUENCE(ago(15m), ago(1m), 10s)) AS cpu_user
    FROM sample.DevOps
    WHERE hostname = 'host-Hovjv' and measure_name = 'cpu_utilization'
        AND time > ago(30m)
    GROUP BY hostname
)
SELECT REDUCE(cpu_user,
    DOUBLE '0.0',
    (s, x) -> x.value * x.value + s,
    s -> s)
from time_series_view
```

**Example**  
Construisez une série chronologique de l'utilisation du processeur d'un hôte et déterminez la fraction d'échantillons qui se situent au-dessus du seuil du processeur :  

```
WITH time_series_view AS (
    SELECT INTERPOLATE_LINEAR(
        CREATE_TIME_SERIES(time, ROUND(measure_value::double,2)), 
            SEQUENCE(ago(15m), ago(1m), 10s)) AS cpu_user
    FROM sample.DevOps
    WHERE hostname = 'host-Hovjv' and measure_name = 'cpu_utilization'
        AND time > ago(30m)
    GROUP BY hostname
)
SELECT ROUND(
    REDUCE(cpu_user, 
      -- initial state 
      CAST(ROW(0, 0) AS ROW(count_high BIGINT, count_total BIGINT)),
      -- function to count the total points and points above a certain threshold
      (s, x) -> CAST(ROW(s.count_high + IF(x.value > 70.0, 1, 0), s.count_total + 1) AS ROW(count_high BIGINT, count_total BIGINT)),
      -- output function converting the counts to fraction above threshold
      s -> IF(s.count_total = 0, NULL, CAST(s.count_high AS DOUBLE) / s.count_total)), 
    4) AS fraction_cpu_above_threshold
from time_series_view
```