

Für ähnliche Funktionen wie Amazon Timestream für sollten Sie Amazon Timestream for LiveAnalytics InfluxDB in Betracht ziehen. Es bietet eine vereinfachte Datenaufnahme und Antwortzeiten im einstelligen Millisekundenbereich für Analysen in Echtzeit. [Erfahren](https://docs.aws.amazon.com//timestream/latest/developerguide/timestream-for-influxdb.html) Sie hier mehr.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Ansichten von Zeitreihen
<a name="timeseries-specific-constructs.views"></a>

Timestream for LiveAnalytics unterstützt die folgenden Funktionen zur Umwandlung Ihrer Daten in den `timeseries` Datentyp:

**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** ist eine Aggregationsfunktion, die alle Rohmessungen einer Zeitreihe (Zeit- und Messwerte) verwendet und einen Zeitreihendatentyp zurückgibt. Die Syntax dieser Funktion lautet wie folgt: 

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

 Dabei `<data_type>` handelt es sich um den Datentyp des Messwerts. Dabei kann es sich um Bigint, Boolean, Double oder Varchar handeln. Der zweite Parameter darf nicht Null sein.

Betrachten Sie die CPU-Auslastung von EC2-Instances, die in einer Tabelle mit dem Namen **Metrics** gespeichert sind, wie unten dargestellt:


| Zeit | Region | az | vpc | instance\$1id | measure\$1name | Messwert::doppelt | 
| --- | --- | --- | --- | --- | --- | --- | 
|  2019-12-04 19:00:00.000 000000  |  us-east-1  |  us-ost-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef0  |  CPU-Auslastung  |  35,0  | 
|  2019-12-04 19:00:01.000 000000  |  us-east-1  |  us-ost-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef0  |  CPU-Auslastung  |  38,2  | 
|  2019-12-04 19:00:02.000 000000  |  us-east-1  |  us-ost-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef0  |  CPU-Auslastung  |  45,3  | 
|  2019-12-04 19:00:00.000 000000  |  us-east-1  |  us-ost-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef1  |  CPU-Auslastung  |  54,1  | 
|  2019-12-04 19:00:01.000 000000  |  us-east-1  |  us-ost-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef1  |  CPU-Auslastung  |  42,5  | 
|  2019-12-04 19:00:02.000 000000  |  us-east-1  |  us-ost-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef1  |  CPU-Auslastung  |  33,7  | 

Die Abfrage ausführen:

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

gibt alle Serien zurück, die einen Messwert haben`cpu_utilization`. In diesem Fall haben wir zwei Serien: 


| Region | az | vpc | instance\$1id | cpu\$1utilization | 
| --- | --- | --- | --- | --- | 
|  us-east-1  |  us-ost-1d  |  vpc-1a2b3c4d  |  i-1234567890abcdef0  |  [\$1Zeit: 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  |  [\$1Uhrzeit: 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`ist eine Tabellenfunktion`timeseries`, mit der Sie Daten in das flache Modell transformieren können. Die Syntax ist wie folgt: 

 `UNNEST``timeseries`wandelt a in zwei Spalten um, nämlich `time` und`value`. Sie können Aliase auch mit UNNEST verwenden, wie unten gezeigt: 

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

wobei `<alias_name>` der Alias für die flache Tabelle, `time_alias` der Alias für die `time` Spalte und der Alias für die `value` Spalte `value_alias` ist.

Stellen Sie sich zum Beispiel das Szenario vor, in dem einige EC2-Instances in Ihrer Flotte so konfiguriert sind, dass sie Metriken in einem Intervall von 5 Sekunden ausgeben, andere Metriken in einem Intervall von 15 Sekunden ausgeben und Sie die durchschnittlichen Metriken für alle Instances mit einer Granularität von 10 Sekunden für die letzten 6 Stunden benötigen. **Um diese Daten zu erhalten, transformieren Sie Ihre Metriken mithilfe von CREATE\$1TIME\$1SERIES in das Zeitreihenmodell.** Anschließend können Sie **INTERPOLATE\$1LINEAR** verwenden, um die fehlenden Werte mit einer Granularität von 10 Sekunden abzurufen. Als Nächstes transformieren Sie die Daten mithilfe von **UNNEST** wieder in das flache Modell und verwenden dann **AVG, um die Durchschnittsmetriken für alle** Instanzen zu ermitteln.

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

 Die obige Abfrage demonstriert die Verwendung von **UNNEST** mit einem Alias. Im Folgenden finden Sie ein Beispiel für dieselbe Abfrage ohne Verwendung eines Alias für **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
```