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

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 oferece suporte a quatro variantes de interpolação: interpolação linear, interpolação por spline 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 Descrição

interpolate_linear(timeseries, array[timestamp])

série temporal

Preenche os dados ausentes usando interpolação linear.

interpolate_linear(timeseries, timestamp)

double

Preenche os dados ausentes usando interpolação linear.

interpolate_spline_cubic(timeseries, array[timestamp])

série temporal

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

interpolate_spline_cubic(timeseries, timestamp)

double

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

interpolate_locf(timeseries, array[timestamp])

série temporal

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)

série temporal

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

Encontre a CPU utilização média 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)

Encontre a CPU utilização média armazenada em intervalos de 30 segundos para um EC2 hospedeiro 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)