Funktionen filtern und reduzieren - 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.

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

filter(timeseries(T), function(T, Boolean))

Zeitreihe (T)

Konstruiert eine Zeitreihe aus einer Eingabezeitreihe und verwendet dabei Werte, für die der übergebene function Wert zurückgegeben wird. true

reduce(timeseries(T), initialState S, inputFunction(S, T, S), outputFunction(S, R))

R

Gibt einen einzelnen Wert zurück, reduziert gegenüber der Zeitreihe. Das inputFunction wird der Reihe nach für jedes Element in der Zeitreihe aufgerufen. Übernimmt nicht nur das aktuelle Element, sondern inputFunction übernimmt auch den aktuellen Status (anfänglichinitialState) und gibt den neuen Status zurück. Das outputFunction wird aufgerufen, um den Endzustand in den Ergebniswert umzuwandeln. Das outputFunction kann eine Identitätsfunktion sein.

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