Funções de interpolação - Amazon Timestream

Para recursos semelhantes aos do Amazon Timestream para, considere o Amazon Timestream LiveAnalytics para InfluxDB. Ele oferece ingestão de dados simplificada e tempos de resposta de consulta de um dígito em milissegundos para análises em tempo real. Saiba mais aqui.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Funções de interpolação

Se seus dados de série temporal não tiverem valores para eventos em determinados momentos, você poderá estimar os valores desses eventos ausentes usando a interpolação. O Amazon Timestream suporta quatro variantes de interpolação: interpolação linear, interpolação por divisão cúbica, interpolação por última observação transportada (locf) e interpolação constante. Esta seção fornece informações de uso do Timestream para funções de LiveAnalytics interpolação, bem como exemplos de consultas.

Informações de uso

Função Tipo de dados de saída Description

interpolate_linear(timeseries, array[timestamp])

timeseries

Preenche os dados ausentes usando a interpolação linear.

interpolate_linear(timeseries, timestamp)

double

Preenche os dados ausentes usando a interpolação linear.

interpolate_spline_cubic(timeseries, array[timestamp])

timeseries

Preenche os dados ausentes usando a interpolação de divisão cúbica.

interpolate_spline_cubic(timeseries, timestamp)

double

Preenche os dados ausentes usando a interpolação de divisão cúbica.

interpolate_locf(timeseries, array[timestamp])

timeseries

Preenche os dados ausentes usando o último valor amostrado.

interpolate_locf(timeseries, timestamp)

double

Preenche os dados ausentes usando o último valor amostrado.

interpolate_fill(timeseries, array[timestamp], double)

timeseries

Preenche os dados ausentes usando um valor constante.

interpolate_fill(timeseries, timestamp, double)

double

Preenche os dados ausentes usando um valor constante.

Exemplos de consulta

exemplo

Encontre a utilização média da CPU armazenada em intervalos de 30 segundos para um EC2 host específico nas últimas 2 horas, preenchendo os valores ausentes usando a interpolação linear:

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)
exemplo

Encontre a utilização média da CPU armazenada em intervalos de 30 segundos para um EC2 host específico nas últimas 2 horas, preenchendo os valores ausentes usando a interpolação com base na última observação realizada:

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)