Siddhi에서 지정된 기간 동안 이벤트 조건이 충족되는지 확인하는 쿼리를 작성하려고했습니다. , 내가 사용하는 5 분Siddhi : 일괄 처리 창에서 지정된 기간 동안 조건을 만족하는 이벤트를 확인하는 방법
의 배치 시간 쿼리를 사용하여 출력 스트림에 밀어 시간의 지정된 기간 동안 20보다 항상 커야 온도를 필요 온도 이벤트 스트림 : 다음은 요구 사항입니다 했다 : 위 쿼리에서 이벤트 스트림
sensorStream=[tempID1,190.8]
delay(500)
sensorStream=[tempID1,100]
delay(500)
sensorStream=[tempID1,38.8]
delay(200)
sensorStream=[tempID1,15.8]
delay(100)
sensorStream=[tempID1,45.8]
delay(700)
sensorStream=[tempID1,8.8]
delay(500)
sensorStream=[tempID1,18.8]
delay(500)
sensorStream=[tempID1,34.8]
delay(500)
sensorStream=[tempID1,18.8]
delay(500)
sensorStream=[tempID1,18.8]
delay(500)
sensorStream=[tempID1,18.8]
delay(500)
sensorStream=[tempID1,18.8]
delay(500)
sensorStream=[tempID1,18.8]
delay(500)
sensorStream=[tempID1,18.8]
delay(500)
sensorStream=[tempID1,18.8]
delay(500)
내가 timebatch 1 초 동안 특정 tagId의 수를 가져온 다음 테이블에 저장을 위해
@Plan:name('TestExecutionPlan')
@PrimaryKey('sensorId')
define table stable1 (sensorId string, temperature float,count long);
define table stable2 (sensorId string, temperature float,count long);
define stream sensorStream (sensorId string, temperature float);
from sensorStream[sensorId=="tempID1"]#window.timeBatch (1 sec)
select timestamp() as messageID,sensorId ,temperature,count() as count
insert into test1;
@info(name = 'query1')
from sensorStream[sensorId=="tempID1"]#window.timeBatch (1 sec)
select sensorId ,temperature,count() as count
insert into stable1;
from sensorStream[sensorId=="tempID1" and temperature>20 ]#window.timeBatch (1 sec)
select timestamp() as messageID, sensorId as sensorId, temperature as temperature, count() as count
insert into test2;
from stable1 join test2 on test2.count==stable1.count
select test2.sensorId ,test2.temperature,test2.count
insert into finalStream;
stable1. 또한 시간 배치 1 초 동안 조건 (> 20)으로 특정 tagId에 대한 개수를 가져옵니다. 그런 다음 두 항목 모두에 조인을 적용하여 일치하는지 확인합니다. 그래서 여기의 이슈는 내가이 둘을 합칠 수있는 이드가 없기 때문에 합류가 적절하게 일어나지 않는다.
출력 할 타임 스탬프를 추가하는 방법에 대한 안내를받을 수 있습니다. 동일한 작업에 쉽게 참여할 수 있도록 알려줍니다.
Siddhi 락 확장이에 포함 할 필요가 있는가 – babravahan