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.
Funktionen filtern und reduzieren
Amazon Timestream unterstützt Funktionen zur Durchführung von Filter- und Reduktionsoperationen mit Zeitreihendaten. Dieser Abschnitt enthält Informationen zur Verwendung von Timestream für LiveAnalytics Filter- und Reduktionsfunktionen sowie Beispielabfragen.
Nutzungsinformationen
Funktion | Ausgabedatentyp | Beschreibung |
---|---|---|
|
Zeitreihe (T) |
Konstruiert eine Zeitreihe aus einer Eingabezeitreihe und verwendet dabei Werte, für die der übergebene |
|
R |
Gibt einen einzelnen Wert zurück, reduziert gegenüber der Zeitreihe. Das |
Abfragebeispiele
Konstruieren Sie eine Zeitreihe der CPU Auslastung eines Hosts und filtern Sie Punkte mit einem Messwert von mehr als 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
Konstruieren Sie eine Zeitreihe der CPU Auslastung eines Hosts und bestimmen Sie die quadratische Summe der Messwerte:
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
Konstruieren Sie eine Zeitreihe der CPU Auslastung eines Hosts und bestimmen Sie den Anteil der Stichproben, die über dem CPU Schwellenwert liegen:
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