Использование паттернов Сиддхи для обнаружения событий, которые не произошли

В двигателе CEP я пытаюсь сделать такой шаблон, как

from s1 = SensorStream[level == 'A'] **NOT** -> s2 = SensorStream[level == 'B'] within 10 sec  
select s1.id as id1, s2.id as id2 insert into AlertStream 

Я нашел эту ссылку , но то, что у меня есть, не является диапазон...

Есть идеи?

Спасибо!


person Marta    schedule 26.02.2015    source источник


Ответы (2)


Марта,

Разве вы не можете использовать подход ниже. Это то, чего вы хотите достичь?

from s1 = SensorStream[уровень != 'A'] -> s2 = SensorStream[уровень == 'B'] в течение 10 секунд
выберите s1.id как id1, s2.id как id2 вставьте в AlertStream

person Mohanadarshan    schedule 04.03.2015
comment
Нет, @Mohanadarshan, я пытаюсь обнаружить отсутствие. В примере я хочу иметь возможность определить, что s1 = SensorStream[level == 'A'] произошло, а SensorStream[level == 'B'] не произошло в течение 10 секунд. Спасибо за помощь. - person Marta; 10.03.2015

Эта функция была добавлена ​​в Siddhi 4.0 (в настоящее время находится в разработке) с PR#483. . В соответствии с этой реализацией ваше требование может быть выполнено с помощью следующего запроса:

from s1 = SensorStream[level == 'A'] -> not SensorStream[level == 'B'] for 10 sec  
select s1.id as id
insert into AlertStream;

Обратите внимание, что шаблон not не может иметь ссылку на поток s2, потому что вы не можете выбрать идентификатор события, которое не прибыло.

Если вы хотите попробовать ранний доступ к Siddhi, следуйте инструкциям, приведенным в этом руководстве: Ранний доступ Siddhi 4.0.0

Дополнительные примеры см. в тестовые случаи.

person Gobinath    schedule 16.08.2017