Как сделать esper epl разделить раздел и сравнить значение

Я новичок в использовании esper, Я плохо знаю esper eplтак что я в беде.

Проблема в этом.

Пользователь определяет значение раздела.

For Example,

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

Поэтому, когда данные поступают первыми, проверьте раздел и создайте события. Но предыдущее значение и новое значение одного уровня ничего не делают (ex. prev value=1, next value=2 These are in same Level1),

Другими словами, когда поступают данные, проверьте предыдущее значение и уровень. Если у них другой уровень, сделай что-нибудь.

Эспер Эпл может это сделать? Как я могу это сделать?

1 ответ

Решение

"До" и "предыдущий" дают вам доступ к событию до данного события. Стандарт SQL "случай, когда" - это стандарт SQL "тогда и тогда". Вы могли бы сделать что-то вроде этого:

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

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

Другие вопросы по тегам