Слияние атрибутов из двух потоков в сиддхи
Я намерен объединить атрибуты из двух потоков в сиддхи.
Я использую "соединение" с атрибутом окна, чтобы объединить два потока в моем запросе сиддхи и ввести результат соединения в другой поток, чтобы обогатить его.
Атрибуты окна (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 для получения более подробной информации.