2016-04-19 3 views
0

Ich bin neu mit esper. Ich weiß nicht gut über esper epl, also bin ich in Schwierigkeiten.So machen Sie esper Epl Division Abschnitt und Vergleichswert

Problem ist das.

Benutzer definieren den Abschnitt Wert.

For Example, 

Level1 : 1~3 
Level2 : 4~6 
Level3 : 7~9 

Also, wenn die Daten zuerst kommen, überprüfen Sie den Abschnitt und machen Sie Ereignisse. Aber vorherige Wert und neuer Wert ist das gleiche Niveau nichts tun (ex. prev value=1, next value=2 These are in same Level1).

Mit anderen Worten, wenn Daten kommen, überprüfen Sie den vorherigen Wert und die vorherige Ebene. Wenn sie unterschiedliche Ebene haben, etwas tun.

Esper Epl kann dies tun? Wie kann ich es schaffen?

Antwort

0

Das "Prior" und das "Prev" ermöglichen Ihnen den Zugriff auf das Ereignis vor einem bestimmten Ereignis. Der SQL-Standard "case when then" ist der if-then-else des SQL-Standards. Man könnte so etwas tun:

insert into CategorizedStream select 
case when value between 1 and 3 then 1 
    when value between 4 and 6 then 2 
    when value > 6 then 3 
end as level from SomeEvent; 

select * from CategorizedStream(prior(level) != level); 

Vllt vor und verwenden könnten fall wenn diese Aussage in einer EPL zu tun, aber ich denke, dass es durch die Verwendung von zwei Aussagen besser lesbar wird.

+0

Danke für Ihre Hilfe! Ich habe die Regel so entwickelt, wie es dir gefällt! – masa

Verwandte Themen