Question

Je suis en train de mettre en œuvre une requête EPL qui peut prendre le temps moyen des (t) et l'heure (t-1).

  

Par exemple:

     
    

a) dans les 5 premières secondes (secondes 0-5) il y a 2 événements avec un moyen de 12

         

b) dans les 5 secondes (secondes 5-10) il y a 3 événements avec une moyenne de 23 ans, et dans la requête EPL que les captures de ces informations, je peux voir aussi la moyenne de 12 à partir du moment précédent fenêtre des 5 premières secondes

  

L'idée que j'ai est d'échelonner les objets / requêtes de manière d'une telle que la requête EPL final a un instantané du temps (t) et le temps (t-1), comme on le voit dans le ScoreInfoBeforeAfter objet pratiquement créé. Cependant, il ne fonctionne pas.

Toutes les idées serait grandement apprécié. Merci.

~~~~

// The object being published to the Esper stream:
class ScoreEvent { int score; ... }
Était-ce utile?

La solution

On dirait le mot-clé avant est la solution.

http: //esper.codehaus. org / esper-2.1.0 / doc / référence / fr / html / functionreference.html

Voir: 7.1.9

En ce qui concerne l'exemple que je décrit dans le message original, voici la solution correspondante j'ai trouvé. Il semble fonctionner correctement.

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);

..
Et il est bien, parce que vous pouvez faire des choses comme ceci:

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;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top