关于DolphinDB中时间序列引擎经过时间的问题

问题描述 投票:0回答:1

根据createTimeSeriesEngine,时间序列引擎中的以下聚合运算符针对增量计算进行了优化:corr、covar、first、last、max、med、min、percentile、quantile、std、var、sum、sum2、sum3 、 sum4、wavg、wsum、count、firstNot、ifirstNot、lastNot、ilastNot、imax、imin、nunique、prod、sem、mode、searchK。

Q1:每当一条数据发生变化时,增量计算会根据变化的输入重新计算输出,并将中间结果存储在缓存中。对于前面提到的针对增量计算优化的算子,时间序列引擎的参数outputElapsedMicroseconds指的是什么?

Q2:假设参数step设置为1,则每秒触发一个窗口的计算。如果一个查找引擎串行定位在时间序列引擎前面,一行数据在查找引擎中卡住了5秒,时间序列引擎会在这5秒内每秒触发一次计算吗?

time-series streaming dolphindb
1个回答
0
投票
  1. step 指定窗口之间的持续时间,并且必须能被 windowSize 整除。以求和计算为例,时序引擎将每一步的求和结果存储在缓存中。当窗口移动时,引擎只需减去窗口中排除的值并添加窗口中包含的新值,提高了计算性能。时间序列引擎一次触发一批值的计算并输出聚合结果。因此,参数outputElapsedMicroseconds决定是否输出每个窗口从触发计算到输出结果所经过的时间。

  2. 如果根据timeColumn中的时间戳进行计算,则step=1表示每秒触发计算,而不管查找引擎的延迟。但如果是基于系统时间将数据摄入到引擎中,则上游数据的延迟会影响时序引擎的正常输出。为了解决这个问题,你可以指定参数 fill 来处理空窗口。

© www.soinside.com 2019 - 2024. All rights reserved.