Complex Event Processing

s-Server’s temporal predicates let you query relationships between two time periods, using terms such as CONTAINS, OVERLAPS, PRECEDES, SUCCEEDS, and so on. You can run these queries in conjunction with other data analysis, including relational operators, aggregates, and windowed expressions. See the topic s-Server Temporal Predicates in the SQLstream Streaming SQL Reference Guide for more details on s-Server’s implementation of temporal predicates.

Temporal predicates allow s-Server to perform what Esper and Etalis call “complex event processing” (CEP): “the analysis of complicated, long-running events.” A complicated, long-running event has a non-trivial duration. That is, it spans an interval of time rather than a single instant.

SQLstream’s approach to temporal predicates has two big advantages over competing approaches which use event processors modeled with rules-engines and state machine transitions:

  • SQLstream s-Server’s query optimizer combines temporal predicates, relational operators, aggregates, and windowed expressions into compact programs which run efficiently on bare metal in a single processing step. In other words, the heavy lifting is done by the optimizer before the data starts flowing. As a result, s-Server runs queries faster, because it does not incur the queuing overhead associated with rules-based and state-machine-based solutions.
  • Because s-Server uses the widely-known SQL as a programming interface, new analysts and engineers face a short learning curve when using SQLstream s-Server. It takes considerably more time to master the proprietary programming models of rules-based and state-machine-based solutions. That, in turn, limits the number of problems which those approaches can solve under a tight deadline.