WSO2SP:处理不同计算的正确方法是什么?

WSO2SP: What is the correct way to handle different calculations?

想象一下发送值的许多不同传感器。 有一个后端,可以在其中输入基于传感器 ID 和值的不同计算。这些计算被转换为 siddhi 应用程序并部署在 siddhi 主机上。

为每个单独的计算创建自己的应用程序的方法是否正确?

例子

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

同一个计算有可能被多次部署,其中只有a.idb.id不同.

这种方法正确吗?

将用例划分到多个 siddhi 应用程序将有助于提高可维护性。它有时会导致多次部署相同的查询,这很好。

虽然我建议在管道的开始处使用过滤器以仅过滤掉需要处理的事件,以提高效率。

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

现在,FilteredSpeedStream 可以在以后的查询中使用,如果没有过滤器,FilteredSpeedStream 将只有一种传感器类型的事件,从而提高管道效率。