线性插值
线性插值是指 Vertica 基于指定的时间片将值内插到线性斜率中,而不是基于最后一个见到的值(常数插值)内插数据点。
后面的查询使用线性插值将输入记录放入 2 秒时间片中,然后返回每个股票代码/时间片组合的第一个出价值(时间片开始时的值):
=> SELECT slice_time, TS_FIRST_VALUE(bid, 'LINEAR') bid FROM Tickstore
TIMESERIES slice_time AS '2 seconds' OVER(PARTITION BY symbol ORDER BY ts);
slice_time | bid
---------------------+------
2009-01-01 03:00:00 | 10
2009-01-01 03:00:02 | 10.2
2009-01-01 03:00:04 | 10.4
(3 rows)
下图显示了前面的查询结果,同时显示了没有产生输入记录的 2 秒时间空白(3:00:02 和 3:00:04)。请注意,XYZ
的内插出价在 3:00:02 时变为 10.2,在 3:00:03 时变为 10.3,在 3:00:04 时变为 10.4,而所有这些都介于两个已知数据输入(3:00:00 和 3:00:05)之间。在 3:00:05 时,值可能会变为 10.5。
注意
上述已知数据点以红点表示,内插值以蓝色星形表示。以下是常数和线性插值方案的横向比较。