Interpolationsfunktionen - Amazon Timestream

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.

Interpolationsfunktionen

Wenn in Ihren Zeitreihendaten Werte für Ereignisse zu bestimmten Zeitpunkten fehlen, können Sie die Werte dieser fehlenden Ereignisse mithilfe von Interpolation schätzen. Amazon Timestream unterstützt vier Varianten der Interpolation: lineare Interpolation, kubische Spline-Interpolation, Locf-Interpolation (Last Observation Carried Forward) und konstante Interpolation. Dieser Abschnitt enthält Informationen zur Verwendung von Timestream für Interpolationsfunktionen sowie Beispielabfragen. LiveAnalytics

Nutzungsinformationen

Funktion Ausgabedatentyp Beschreibung

interpolate_linear(timeseries, array[timestamp])

Zeitreihen

Füllt fehlende Daten mit linearer Interpolation aus.

interpolate_linear(timeseries, timestamp)

double

Füllt fehlende Daten mit linearer Interpolation aus.

interpolate_spline_cubic(timeseries, array[timestamp])

Zeitreihen

Füllt fehlende Daten mithilfe der kubischen Spline-Interpolation aus.

interpolate_spline_cubic(timeseries, timestamp)

double

Füllt fehlende Daten mithilfe der kubischen Spline-Interpolation aus.

interpolate_locf(timeseries, array[timestamp])

Zeitreihen

Füllt fehlende Daten mit dem zuletzt abgetasteten Wert aus.

interpolate_locf(timeseries, timestamp)

double

Füllt fehlende Daten mit dem zuletzt abgetasteten Wert aus.

interpolate_fill(timeseries, array[timestamp], double)

Zeitreihen

Füllt fehlende Daten mit einem konstanten Wert aus.

interpolate_fill(timeseries, timestamp, double)

double

Füllt fehlende Daten mit einem konstanten Wert aus.

Abfragebeispiele

Ermittelt die durchschnittliche CPU Auslastung in Intervallen von 30 Sekunden für einen bestimmten EC2 Host in den letzten 2 Stunden und füllt die fehlenden Werte mit linearer Interpolation aus:

WITH binned_timeseries AS ( SELECT hostname, BIN(time, 30s) AS binned_timestamp, ROUND(AVG(measure_value::double), 2) AS avg_cpu_utilization FROM "sampleDB".DevOps WHERE measure_name = 'cpu_utilization' AND hostname = 'host-Hovjv' AND time > ago(2h) GROUP BY hostname, BIN(time, 30s) ), interpolated_timeseries AS ( SELECT hostname, INTERPOLATE_LINEAR( CREATE_TIME_SERIES(binned_timestamp, avg_cpu_utilization), SEQUENCE(min(binned_timestamp), max(binned_timestamp), 15s)) AS interpolated_avg_cpu_utilization FROM binned_timeseries GROUP BY hostname ) SELECT time, ROUND(value, 2) AS interpolated_cpu FROM interpolated_timeseries CROSS JOIN UNNEST(interpolated_avg_cpu_utilization)

Ermitteln Sie die durchschnittliche CPU Auslastung in Intervallen von 30 Sekunden für einen bestimmten EC2 Host in den letzten 2 Stunden und füllen Sie die fehlenden Werte durch Interpolation auf der Grundlage der letzten übertragenen Beobachtung aus:

WITH binned_timeseries AS ( SELECT hostname, BIN(time, 30s) AS binned_timestamp, ROUND(AVG(measure_value::double), 2) AS avg_cpu_utilization FROM "sampleDB".DevOps WHERE measure_name = 'cpu_utilization' AND hostname = 'host-Hovjv' AND time > ago(2h) GROUP BY hostname, BIN(time, 30s) ), interpolated_timeseries AS ( SELECT hostname, INTERPOLATE_LOCF( CREATE_TIME_SERIES(binned_timestamp, avg_cpu_utilization), SEQUENCE(min(binned_timestamp), max(binned_timestamp), 15s)) AS interpolated_avg_cpu_utilization FROM binned_timeseries GROUP BY hostname ) SELECT time, ROUND(value, 2) AS interpolated_cpu FROM interpolated_timeseries CROSS JOIN UNNEST(interpolated_avg_cpu_utilization)