Слияние атрибутов из двух потоков в сиддхи

Я намерен объединить атрибуты из двух потоков в сиддхи.

Я использую "соединение" с атрибутом окна, чтобы объединить два потока в моем запросе сиддхи и ввести результат соединения в другой поток, чтобы обогатить его.

Атрибуты окна (window.time(1 сек) или window.length(1)) хорошо работают, когда входящие события приходят с регулярным интервалом в 1 секунду или более.

Когда (скажем, 10 или 100) событий отправляются одновременно (в течение секунды). Тогда результат соединения не ожидаемый.

from EventInputStreamOne#window.time(1 sec) as i
        join EventInputStreamTwo as s
        on i.variable2 == s.variable2
select i.variable1 as variable1, i.variable2 as variable2, s.variable2 as variable2
insert into EventOutputStream;

Пожалуйста, дайте мне знать, есть ли способ объединить два потока, в которых входящие события должны обрабатываться / обрабатываться однозначно, даже если количество событий, отправленных за один раз (в течение секунды), велико.

1 ответ

Не могли бы вы подробнее объяснить, что вы имели в виду под

Тогда результат соединения не ожидаемый.

Какой поток EventInputStreamOne или EventInputStreamTwo получает события с большей частотой.

В соответствии с вашим приложением Сиддхов, событие приходит EventInputStreamOne потока в 1сках будут сравниваться с каждым событием из EventInputStreamTwo и соответствующих событий будет выход на EventOutputStream.

Если вы хотите сравнить события, которые приходят как в EventInputStreamOne, так и в EventInputStreamTwo в течение 1 секунды, также установите временное окно в 1 секунду для EventInputStreamTwo.

Обратитесь к документации Siddhi на Joins для получения более подробной информации.

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