0

I have a platform that leverages Esper. However, all events are inserted into the Event table and sent to Esper to process. My rules are specific to only around 10% of the data set but the 90% other data going through the engine is bottlenecking my alerts from firing.

Is there a way to tell Esper to discard events that I don't care about on ingest so I have a smaller stream going through the actual alert / rule processing engine?

1 Answers1

0

The insert-into could be handy for you. For example:

insert into FilteredStream select * from UnfilteredStream where ...some filter critera...

and

// the FilteredStream has the filtered events only
select count(*) from FilteredStream

There is an overview of under which conditions Esper holds events in memory at http://espertech.com/esper/faq_esper.php#keep_in_memory

user3613754
  • 816
  • 1
  • 5
  • 5
  • Let's say I have the below.. how are the 2 different? `insert into FilteredStream select * from UnfilteredStream where device_type = 'test' select * from FilteredStream where id = 'x'` VS `select * from FilteredStream(device_type = 'test' and id = 'x')` – Naushad Kasu Jul 14 '17 at 18:04
  • Explained at http://espertech.com/esper/release-6.1.0/esper-reference/html_single/index.html#epl-where-clause – user650839 Jul 20 '17 at 08:41