EPR EPL запрос для времени (T) и времени (T-1)

StackOverflow https://stackoverflow.com/questions/4027311

  •  26-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь осуществить запрос EPL, который может забрать AVG для времени (T) & Time (T-1).

Например:

а) в первые 5 секунд (секунды 0-5) есть 2 события с AVG 12

b) в следующие 5 секунд (секунды 5-10) есть 3 события с AVG 23, а в запросе EPL, который ловит эту информацию, я могу также увидеть AVG 12 из окон предыдущего времени Первые 5 секунд

Идея, которую у меня есть, - это потемнение объектов / запросов таким образом, что последний запрос EPL имеет снимок времени (T) & Time (T-1), как видно в практически созданном объекте BatchInFobeforefter. Однако это не работает.

Любые идеи очень приветствуются. Спасибо.

~~~~

// The object being published to the Esper stream:
class ScoreEvent { int score; ... }
Это было полезно?

Решение

Выглядит как ключевое слово прежний это решение.

http://esper.codehaus.org/esper-2.1.0/doc/reference/en/html/funcentreference.html.

Видеть: Раздел 7.1.9.

С точки зрения примера я описал в оригинальном посте, вот соответствующее решение, которое я нашел. Кажется, он работает правильно.

INSERT INTO ScoreInfo
SELECT 
    'ScoreInfo' as a_Label, 
    average AS curAvg, 
    prior(1, average) AS prevAvg 
FROM 
    ScoreEvent.win:time_batch(5 sec).stat:uni(score);


SELECT
*
FROM
ScoreInfo.win:length(1);

..
А потом приятно, потому что вы можете сделать так, как это:

SELECT
    'GT curAvg > prevAvg' as a_Label, 
    curAvg, 
    prevAvg 
FROM
    ScoreInfo.win:length(1)
WHERE
    curAvg > prevAvg;


SELECT
    'LTE curAvg <= prevAvg' as a_Label, 
    curAvg, 
    prevAvg 
FROM
    ScoreInfo.win:length(1)
WHERE
    curAvg <= prevAvg;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top