Сиддхи КЭП - события, которые не были объединены в скользящем окне

У меня есть два потока, streamA а также streamB, Каждый из streamA имеет идентификатор и соответствующее событие в streamB будет иметь тот же идентификатор.

Я хочу знать от streamA какие идентификаторы не пришли streamB после скользящего окна, скажем, 1 минута.

Я пробовал это, но не получилось:

from streamA as A join streamB#window.time(1 min) as B on A.id == B.id select S.Id insert expired events into streamC;

Дайте мне знать, как решить эту проблему.

1 ответ

Вы можете использовать внешнее соединение [1] для выполнения этого требования. Пример:

from streamA as A left outer join streamB#window.time(1 min) as B on A.id == B.id select A.Id, B.Id insert into streamC;

В приведенном выше запросе, если в окне нет совпадающих событий, B.Id будет нулевым. Таким образом, вы можете написать другой запрос для использования streamC, чтобы изолировать события с нулевыми атрибутами и обрабатывать их дальше.

[1] https://docs.wso2.com/display/CEP410/SiddhiQL+Guide+3.0#SiddhiQLGuide3.0-Outerjoins

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