常数插值
根据示例 TickStore 架构中在 03:00:00 和 03:00:05 时的已知输入时间戳,如何确定 03:00:03 时的出价?
在财务数据中,使用的常见插值方案是将出价设置为到目前为止最后一个见到的值。这种方案称为常数插值,也就是说,Vertica 将根据之前的输入记录计算新值。
注意
常数插值是 Vertica 的默认插值方案。另一种插值方案是线性插值,后面的主题将会讨论它。回到上面问到的查询,以下是表输出,它显示了在 03:00:00 和 03:00:05 时的出价之间存在 5 秒延迟:
=> SELECT * FROM TickStore;
ts | symbol | bid
---------------------+--------+------
2009-01-01 03:00:00 | XYZ | 10
2009-01-01 03:00:05 | XYZ | 10.5
(2 rows)
使用常数插值时,XYZ
的内插出价在 3:00:03 时仍为 $10.0,而且 3:00:03 介于在两个已知数据输入(3:00:00 PM 和 3:00:05)之间。在 3:00:05 时,值变为 $10.5。已知数据点以红点表示,在 3:00:03 时的内插值以蓝色星形表示。
要编写查询使输入行更加均匀,您首先需要了解 TIMESERIES 子句和时序聚合函数。