时序分析
时序分析随时间的推移评估给定变量集的值,并将这些值分组到窗口(基于时间间隔)以进行分析和聚合。使用时序分析的常见场景包括:随着时间的推移不断进行的股市交易、投资组合业绩随时间推移的变动情况以及数据的图表趋势线。
由于时序中的时间和数据状态都是连续性的,因此随时间的推移来评估 SQL 查询具有挑战性。输入记录的间隔通常不均匀,因此会产生空白。为了解决此问题,Vertica 提供了:
-
空白填充功能,它可以填充缺失的数据点。
-
插值方案,它可以在已知数据点的离散集范围内推导新数据点。
Vertica 会在数据中插入非时序列(例如随时间片的变化计算得出的分析函数结果),并将缺失数据点添加到输出。此部分详细介绍了空白填充和插值。
您可以使用基于事件的窗口将时序数据拆分为与数据中的重大事件相邻的窗口。这在财务数据中尤其重要,因为分析可以侧重于触发了其他活动的特定事件。
会话化是基于事件的窗口的特殊用例,它通常用于分析点击流,例如根据记录的 Web 点击识别 Web 浏览会话。
Vertica 通过以下 SQL 扩展为时序分析提供了额外支持:
-
SELECT 语句中的 TIMESERIES 子句 支持空白填充和插值 (GFI) 计算。
-
TS_FIRST_VALUE 和 TS_LAST_VALUE 是时序聚合函数,用于在时间片开始或结束时返回值,而时间片的开始或结束时间由插值方案分别确定。
-
TIME_SLICE 是(SQL 扩展)日期/时间函数,用于按照不同的固定时间间隔聚合数据,并将向上舍入的输入 TIMESTAMP 值返回到与时间片间隔开始或结束时间相对应的值。