cool, Thank you !

On Sun, Sep 17, 2017 at 11:58 PM, Grainier Perera <grain...@wso2.com> wrote:

> Hi Jay,
>
> In that case, you can either remove events from the table which are older
> than 24hrs, or you can include a condition to the join query to ignore
> events that are older than 24hrs. Please refer to the sample below;
>
>
> @Plan:name('TestExecutionPlan')
>> define stream publisher (pid string, time string);
>> define stream subscriber (pid string, sid string, time string);
>> define table publisherTable (pid string, time string, timestamp long);
>> define trigger purgeTrigger at '0 0 0 ? * *';
>
>
>> -- Purge records older than 24 hours
>>
>>
>> *from purgeTrigger delete publisherTable on (triggered_time -
>> publisherTable.timestamp) >= 1000 * 60 * 60 * 24; *
>
>
>> from publisher
>> select pid, time, time:timestampInMilliseconds() as timestamp
>> insert into publisherTable;
>
>
>> -- Double check the time range
>> from subscriber as s join publisherTable as p
>> on p.pid == s.pid *AND ((time:timestampInMilliseconds() - p.timestamp) <
>> 1000 * 60 * 60 * 24)*
>> select p.pid, s.sid, s.time
>> insert into AlertStream;
>
>
>
> Regards,
> Grainier.
>
> On Fri, Sep 15, 2017 at 2:21 PM, Jayesh Senjaliya <jhsonl...@gmail.com>
> wrote:
>
>> Hi Grainier,
>>
>> even table approach make sense, but is there a way to limit the event
>> table to keep the events for let say 24 hour or so and then discard it ?
>>
>> Thanks for looking into this.
>> Jay
>>
>>
>>
>>
>> On Thu, Sep 14, 2017 at 11:51 PM, Grainier Perera <grain...@wso2.com>
>> wrote:
>>
>>> Hi Jay,
>>>
>>> In your pattern, when a match found, it will discard that event (e1 in
>>> your scenario), so it won't get compared with other events. However, if you
>>> need to hold that event and match it with more than a single event, then
>>> you can use an event table as shown below.
>>>
>>> @Plan:name('TestExecutionPlan')
>>>> define stream publisher (pid string, time string);
>>>> define stream subscriber (pid string, sid string, time string);
>>>> define table publisherTable (pid string, time string);
>>>
>>>
>>>> from publisher
>>>> insert into publisherTable;
>>>
>>>
>>>
>>> -- Option 1
>>>
>>> from subscriber[publisherTable.pid == pid in publisherTable]
>>>> select pid, time
>>>> insert into AlertStream1;
>>>
>>>
>>>
>>> -- Option 2
>>>> from subscriber as s join publisherTable as p
>>>> on p.pid == s.pid
>>>> select p.pid, s.sid, s.time
>>>> insert into AlertStream2;
>>>
>>>
>>> Regards,
>>> Grainier.
>>>
>>> On Fri, Sep 15, 2017 at 11:41 AM, Jayesh Senjaliya <jhsonl...@gmail.com>
>>> wrote:
>>>
>>>> Hello WSO2 community.
>>>>
>>>> I am trying to implement a siddhi query where 1 event in publisher can
>>>> have multiple event in subscriber. this fits well in pattern query but it
>>>> looks like it outputs as soon as 1 event is matched and there is no way to
>>>> window or tell the count.
>>>>
>>>> here is the execution plan i have came up with that should have matches
>>>> all mapping but its not working that way, it only outputs 1 event, the
>>>> first one that matches.
>>>>
>>>> can someone please look at this and help me figure out why it is not
>>>> working? or what would be right way to get this?
>>>>
>>>> Thanks
>>>> Jay
>>>>
>>>>
>>>> Execution Plan:
>>>>
>>>> @Plan:name('TestExecutionPlan')
>>>> define stream publisher (pid string, time string);
>>>> define stream subscriber (pid string, sid string, time string);
>>>>
>>>> @info(name = 'query2')
>>>> from every( e1=publisher ) -> e2=subscriber[ e2.pid == e1.pid ]
>>>> select e1.pid, e2.sid, e2.time
>>>> insert into AlertStream;
>>>>
>>>>
>>>> here is the sample events if you want to try on siddhi-try-it tool
>>>>
>>>> publisher=[1,2017-08-15 01:08:30.253]
>>>> publisher=[2,2017-08-15 02:08:30.253]
>>>> publisher=[3,2017-08-15 03:08:30.253]
>>>>
>>>> subscriber=[1, 12,2017-08-15 21:08:30.253]
>>>> subscriber=[1, 13,2017-08-15 21:10:30.253]
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Dev mailing list
>>>> Dev@wso2.org
>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>
>>>>
>>>
>>>
>>> --
>>> Grainier Perera
>>> Senior Software Engineer
>>> Mobile : +94716122384 <+94%2071%20612%202384>
>>> WSO2 Inc. | http://wso2.com
>>> lean.enterprise.middleware
>>>
>>
>>
>
>
> --
> Grainier Perera
> Senior Software Engineer
> Mobile : +94716122384 <+94%2071%20612%202384>
> WSO2 Inc. | http://wso2.com
> lean.enterprise.middleware
>
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to