Siddhi CEP 4.x: несколько результатов для каждой группы при использовании временного пакетного окна

Использование сиддхи 4.1.0

Есть ли возможность применить time.windowBatch к предстоящим событиям? Я понял, что временное окно работает на основе уже поступивших событий.

Скажите, например,

Я получаю несколько результатов при использовании window.timeBatch (2 мин) с предложением group by.

В течение данной 2-минутной продолжительности я периодически пропускал 50 входных событий. Ожидаемое поведение - это все эти события, собранные вместе и представленные в виде единого результата (для проверки используется функция подсчета). Но он дает два результата, например 40 и 10. Неужели первые 40 событий попадают в период одного временного окна, а второе - в следующее окно? В этом случае, как я объединю или получу, что все эти события будут одним выходом в течение 2 минут?

Также я хочу запустить временное окно после прибытия первого события.

Я испытал, что временное окно работает в фоновом режиме, в случае, если события происходят в середине первого временного окна, оно собирает события только в течение 1 минуты. Оставшиеся минутные события собираются в следующее временное окно. Итак, наконец, я получил 2 пакетных результата.

Пожалуйста, предложите другое решение.

Пример использования:

Мой вариант использования основан на продолжительности времени (time.windowBatch (1 мин)) для мониторинга переключателей. Я хотел бы реализовать следующий вариант использования.

Пример использования: коммутатор отправляет ловушки SNMP в CEP. Ловушки похожи на switchFanFailed и switchFanOk.

Если я получаю ловушку switchFanFailed, следующая ожидаемая ловушка switchFanOk будет в пределах 1 мин. Если ловушка switchFanOk не будет получена в течение 1 минуты, CEP сгенерирует уведомление по электронной почте. В противном случае он сбросит эту ловушку.

Несмотря на то, что мой генератор ловушек генерирует ловушки switchFanFailed и switchFanOk в течение 1 минуты как постоянные, в некоторых случаях я не могу получать ловушки в том же окне.

Скажем, например, switchFanFailed приближается к концу 0,50 секунды, отсюда я должен подождать 1 минуту, чтобы ожидать ловушку switchFanOk.


person Muthusamy    schedule 13.07.2016    source источник


Ответы (2)


Извините, я немного запутался в вашем случае использования .. :)

Независимо от того, основан ли ваш вариант использования на времени или длине или на обоих ... Для окна временного пакета оно запускается только после наступления 1-го события.

Если вы хотите дождаться 50 событий (или каких-либо событий), вам нужно использовать окно lengthBatch. Если вы хотите, чтобы процесс был основан на времени и пакетировал его, используйте окно timeBatch ..

У вас нет фиксированных событий? В противном случае CEP / Siddhi не может ждать / пакетировать бесконечно. Должно быть что сказать конец партии. Не так ли?

person Mohanadarshan    schedule 15.07.2016
comment
Спасибо за ваш ответ. Добавлен вариант использования для справки. - person Muthusamy; 18.07.2016
comment
Хорошо, понятно .. Мы должны использовать шаблон для вашего варианта использования, а не окно временного пакета .. Вы можете сослаться на образец [1], который аналогичен вашему требованию .. [1] docs.wso2.com/display/CEP400/ - person Mohanadarshan; 18.07.2016
comment
Спасибо за совет! Я проверю выкройку. - person Muthusamy; 20.07.2016

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

Если вы думаете об объединении двух записей, я предлагаю вам использовать временное окно пакета timeBatch (1 мин), которое суммирует выход вашего текущего набора данных.

person Nu-ONE    schedule 26.09.2017