補間関数 - Amazon Timestream

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

補間関数

時系列データが特定の時点でイベントの欠落している場合には、補間を使用して欠落しているイベントの値を推定できます。Amazon Timestream は、線形補間、立方スプライン補間、最後の観測転送 (locf) 補間、および一定の補間の 4 つの補間バリアントをサポートしています。このセクションでは、Timestream for LiveAnalytics 補間関数の使用情報とサンプルクエリについて説明します。

使用状況の情報

関数 出力データ型 説明

interpolate_linear(timeseries, array[timestamp])

時系列

線形補間を使用して欠落データを埋めます

interpolate_linear(timeseries, timestamp)

double

線形補間を使用して欠落データを埋めます

interpolate_spline_cubic(timeseries, array[timestamp])

時系列

立方スプライン補間を使用して欠落データを埋めます

interpolate_spline_cubic(timeseries, timestamp)

double

立方スプライン補間を使用して欠落データを埋めます

interpolate_locf(timeseries, array[timestamp])

時系列

最後にサンプリングされた値を使用して、欠損データを入力します。

interpolate_locf(timeseries, timestamp)

double

最後にサンプリングされた値を使用して、欠損データを入力します。

interpolate_fill(timeseries, array[timestamp], double)

時系列

定数値を使用して欠落データを入力します。

interpolate_fill(timeseries, timestamp, double)

double

定数値を使用して欠落データを入力します。

クエリの例

過去 2 時間における特定の CPU ホストの 30 秒間隔でビニングされた平均 EC2 使用率を求め、線形補間を使用して欠損値を入力します。

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)

過去 2 時間における特定の CPU ホストの 30 秒間隔でビニングされた平均 EC2 使用率を求め、最後に転送された観測値に基づく補間を使用して欠落値を入力します。

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)