1

siddhi から postgres テーブルを読みたいのですが、トリガーを使用しています。

@From(eventtable='rdbms', jdbc.url='jdbc:postgresql://localhost:5432/pruebabg', username='postgres', password='Easysoft16', driver.name='org.postgresql.Driver', table.name='Trazablack')
define table Trazablack (sensorValue double);

define trigger FiveMinTriggerStream at every 10 min;

from FiveMinTriggerStream join Trazablack as t
select t.sensorValue as sensorValue
insert into StreamBlack;

しかし、問題があります。クエリは 10 分ごとに実行され、新しいイベントが到着したときに実行する必要があります。

これは可能ですか?

from sensorStream#window.length(2) 
JOIN StreamBlack#window.length(1)
   on sensorStream.sensorValue==StreamBlack.sensorValue
select sensorStream.meta_timestamp, sensorStream.meta_sensorName, sensorStream.correlation_longitude, 
       sensorStream.correlation_latitude, sensorStream.sensorValue as valor1, StreamBlack.sensorValue as valor2
insert INTO StreamPaso;


from sensorStream#window.length(2) 
LEFT OUTER JOIN StreamBlack#window.length(1)
   on sensorStream.sensorValue==StreamBlack.sensorValue
select sensorStream.meta_timestamp, sensorStream.meta_sensorName, sensorStream.correlation_longitude, 
       sensorStream.correlation_latitude, sensorStream.sensorValue as valor1, StreamBlack.sensorValue as valor2
insert INTO StreamPaso;
4

1 に答える 1

0

この場合、ウィンドウを使用してストリームをトリガーする代わりに、単純に入力ストリームとの結合を行うことができます。ウィンドウに何も格納する必要がなく、イベントがストリームを介して到着したときにクエリをトリガーする必要があるため、長さ 0 のウィンドウを使用できます。また、「現在のイベント」(着信イベント) 句を使用して、ウィンドウの「期限切れのイベント」(つまり、ウィンドウによって保持および発行されたイベント) が考慮されないようにすることもできます (詳細については、ウィンドウに関する Siddhi QL ドキュメントを参照してください)。 )。

例 (sensorStream が入力ストリームであると仮定):

from sensorStream#window.length(0) join Trazablack as t
select t.sensorValue as sensorValue
insert current events into StreamBlack;
于 2016-05-27T05:02:23.160 に答える