WSO2SP: Как правильно выполнять различные вычисления?

Представьте себе множество различных датчиков, которые отправляют значения. Существует серверная часть, в которую можно вводить различные расчеты на основе идентификаторов датчиков и значений. Эти вычисления преобразуются в приложения siddhi и развертываются на хосте siddhi.

Правилен ли подход к созданию собственного приложения для каждого отдельного расчета?

Пример

from a=SpeedStream[a.id == "s1"], b=SpeedStream[b.id == "s1"]
select b.speed-a.speed as acceleration
insert into AccelerationStream

Возможно, что один и тот же расчет будет развернут несколько раз, где будут использоваться только a.id и b.id. отличаются.

Правилен ли этот подход?


person Alex Tbk    schedule 18.07.2019    source источник


Ответы (1)


Разделение варианта использования на несколько приложений siddhi поможет в ремонтопригодности. иногда это может привести к тому, что один и тот же запрос будет развернут несколько раз, и это нормально.

Хотя я бы посоветовал иметь фильтры на старте пайплайна, чтобы отсеивать только те события, которые нужно обработать, для повышения эффективности.

from SpeedStream[id == "s1"] 
select *
insert into FilteredSpeedStream;

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

person Niveathika    schedule 19.07.2019