Запрос Siddhi для вычисления нового значения с использованием значения текущего события и значения последнего события

Всякий раз, когда приходит событие, должен быть запрос для вычисления нового значения с использованием значения текущего события и значения последнего события и вставки его в новый поток. Например:

event [1]              : speed =  0 timestamp = 1410513924817    Calculated value(Acceleration) : 0
event [2]              : speed =  5 timestamp = 1410513924818    Calculated value(Acceleration) : ( 5 - 0)/1 = 5
event [3]              : speed = 10 timestamp = 1410513924819    Calculated value(Acceleration) : (10- 5)/1  = 5
event [4]              : speed = 13 timestamp = 1410513924820    Calculated value(Acceleration) : (13-10)/1  = 3
event [5]              : speed = 14 timestamp = 1410513924821    Calculated value(Acceleration) : (14-13)/1  = 1
event [6](current)     : speed = 15 timestamp = 1410513924822    Calculated value(Acceleration) : (15-14)/1  = 1

При использовании #window.lengthBatch(2) позволяет рассчитать ускорение один раз для каждых двух событий. Не выполняет требования. есть идеи?


person Asiri Liyana Arachchi    schedule 12.09.2014    source источник


Ответы (1)


вы можете использовать последовательность,

E.g

from a=SpeedStream,b=SpeedStream
select b.speed-a.speed as acceleration, b.speed as currentSpeed
insert into AccelerationStream
person suho    schedule 12.09.2014
comment
значения скорости, на которые мы ссылаемся, находятся в двух разных событиях в одном и том же потоке. Не в двух разных потоках. Я читал, как использовать последовательности в документации wso2cep, но не нашел способа решить вышеуказанную проблему с его помощью. - person Asiri Liyana Arachchi; 12.09.2014
comment
Здесь мы на самом деле используем один и тот же поток из a=SpeedStream,b=SpeedStream, где за событием a сразу же следует событие b, если мы используем другое, то это будет выглядеть как из a=SpeedStream1,b=SpeedStream2. - person suho; 12.09.2014