Сиддхи КЭП - события, которые не были объединены в скользящем окне
У меня есть два потока, 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