2016-05-26 1 views
1

Я хочу, чтобы прочитать таблицу 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; 

ответ

0

В этом случае вы можете просто выполнить соединение с входным потоком вместо потока триггера с помощью окна. Мы можем использовать окно с длиной 0, так как нам не нужно ничего хранить в окне, и нам нужен запрос для запуска, когда событие прибывает через поток. Также мы можем использовать предложение «текущие события» (т. Е. Входящие события), чтобы убедиться, что «истекшие события» (т. Е. События, сохраненные и выпущенные окном) окна не рассматриваются (см. Siddhi QL documentation on windows для получения дополнительной информации).

например (при условии, sensorStream является входной поток):

from sensorStream#window.length(0) join Trazablack as t 
select t.sensorValue as sensorValue 
insert current events into StreamBlack; 
+0

Это отлично, теперь этот вопрос более понятен мне. Привет из Колумбии –