I wanted to block the same event(which has same title) entering twice to inOrg stream. So I used a "first unique" window. But at some point this will give an out of memory error. I want to clean the first unique window if it contains more than 1000 events. How can I do this?
This is the execution plan.
@Plan:name('ExecutionPlan')
@Import('instream:1.0.0')
define stream inOrg (meta_title string, meta_link string, meta_description string, meta_item string);
@Export('outstream:1.0.0')
define stream out (meta_id int, meta_key string, meta_title string, meta_link string);
@From(eventtable='rdbms', datasource.name='EX_DB', table.name='table')
define table EventTypeTable (meta_id int, meta_key string);
from inOrg#window.firstUnique(meta_title)
select meta_title, meta_link, meta_description, meta_item
insert into in;
from in join EventTypeTable
select meta_id, meta_key, meta_title, meta_link , meta_description, meta_item
insert into StreamTemp;
from StreamTemp [(regex:find(str:lower(meta_key),str:lower(meta_title)) or regex:find(str:lower(meta_key),str:lower(meta_description))) ]
select meta_id, meta_key, meta_title, meta_link
insert into out;