Esper - Java Event Stream Processor

Esper Reference Documentation

1.10.0


Table of Contents

Preface
1. Technology Overview
1.1. Introduction to CEP and event stream analysis
1.2. CEP and relational databases
1.3. The Esper engine for CEP
1.4. Required 3rd Party Libraries
2. Configuration
2.1. Programmatic Configuration
2.2. Configuration via XML File
2.3. XML Configuration File
2.4. Configuration Items
2.4.1. Events represented by Java Classes
2.4.1.1. Event type alias to Java class mapping
2.4.1.2. Non-JavaBean and Legacy Java Event Classes
2.4.1.3. Specifying Event Properties for Java Classes
2.4.1.4. Turning off Code Generation
2.4.1.5. Case Sensitivity and Property Names
2.4.2. Events represented by java.util.Map
2.4.3. Events represented by org.w3c.dom.Node
2.4.3.1. Schema Resource
2.4.3.2. XPath Property
2.4.4. Class and package imports
2.4.5. Relational Database Access
2.4.5.1. Connections obtained via DataSource
2.4.5.2. Connections obtained via DriverManager
2.4.5.3. Connections-level settings
2.4.5.4. Connections lifecycle settings
2.4.5.5. Cache settings
2.4.6. Engine Settings related to Concurrency and Threading
2.4.6.1. Preserving the order of events delivered to listeners
2.4.6.2. Preserving the order of events for insert-into streams
2.4.6.3. Internal Timer Settings
2.4.7. Engine Settings related to Event Metadata
2.4.7.1. Java Class Property Names and Case Sensitivity
2.4.8. Engine Settings related to View Resources
2.4.8.1. Sharing View Resources between Statements
2.4.9. Engine Settings related to Logging
2.4.9.1. Execution Path Debug Logging
3. API Reference
3.1. API Overview
3.2. Engine Instances
3.3. The Administrative Interface
3.3.1. Creating Statements
3.3.2. Adding Listeners
3.3.3. Using Iterators
3.3.4. Managing Statements
3.3.5. Runtime Engine Configuration
3.4. The Runtime Interface
3.5. Time-Keeping Events
3.6. Events Received from the Engine
3.7. Engine Threading and Concurrency
4. Understanding the Output Model
4.1. Introduction
4.2. Insert Stream
4.3. Insert and Remove Stream
4.4. Filters and Where-clauses
4.5. Time Windows
4.5.1. Time Window
4.5.2. Time Batch
4.6. Aggregation and Grouping
4.6.1. Insert and Remove Stream
4.6.2. Output for Event Batches
4.6.2.1. Un-aggregated and Un-grouped
4.6.2.2. Fully Aggregated and Un-grouped
4.6.2.3. Aggregated and Un-Grouped
4.6.2.4. Fully Aggregated and Grouped
4.6.2.5. Aggregated and Grouped
4.7. EventBean Query Results
5. Event Representations
5.1. Event Underlying Java Objects
5.2. Event Properties
5.3. Plain Java Object Events
5.3.1. Java Object Event Properties
5.4. java.util.Map Events
5.5. org.w3c.dom.Node XML Events
6. EQL Reference
6.1. EQL Introduction
6.2. EQL Syntax
6.2.1. Specifying Time Periods
6.3. Choosing Event Properties And Events: the Select Clause
6.3.1. Choosing all event properties: select *
6.3.2. Choosing specific event properties
6.3.3. Expressions
6.3.4. Renaming event properties
6.3.5. Selecting istream and rstream events
6.4. Specifying Event Streams : the From Clause
6.4.1. Filter-based event streams
6.4.1.1. Specifying an event type
6.4.1.2. Specifying filter criteria
6.4.1.3. Filtering Ranges
6.4.1.4. Filtering Sets of Values
6.4.1.5. Filter Limitations
6.4.2. Pattern-based event streams
6.4.3. Specifying views
6.5. Specifying Search Conditions: the Where Clause
6.6. Aggregates and grouping: the Group-by Clause and the Having Clause
6.6.1. Using aggregate functions
6.6.2. Organizing statement results into groups: the Group-by clause
6.6.3. Selecting groups of events: the Having clause
6.6.4. How the stream filter, Where, Group By and Having clauses interact
6.6.5. Comparing the Group By clause and the std:groupby view
6.7. Stabilizing and Limiting Output: the Output Clause
6.7.1. Output Clause Options
6.7.2. Group By, Having and Output clause interaction
6.8. Sorting Output: the Order By Clause
6.9. Merging Streams and Continuous Insertion: the Insert Into Clause
6.10. Joining Event Streams
6.11. Outer Joins
6.12. Subqueries
6.12.1. The 'exists' keyword
6.12.2. The 'in' keyword
6.13. Joining Relational Data via SQL
6.13.1. Joining SQL Query Results
6.13.2. Outer Joins With SQL Queries
6.13.3. Using Patterns to Request (Poll) Data
6.13.4. JDBC Implementation Overview
6.14. Single-row Function Reference
6.14.1. The Min and Max Functions
6.14.2. The Coalesce Function
6.14.3. The Case Control Flow Function
6.14.4. The Previous Function
6.14.4.1. Previous Event per Group
6.14.4.2. Restrictions
6.14.4.3. Comparison to the prior Function
6.14.5. The Prior Function
6.15. Operator Reference
6.15.1. Arithmatic Operators
6.15.2. Logical And Comparsion Operators
6.15.3. Concatenation Operators
6.15.4. Binary Operators
6.15.5. Array Definition Operator
6.15.6. The 'in' Keyword
6.15.7. The 'between' Keyword
6.15.8. The 'like' Keyword
6.15.9. The 'regexp' Keyword
6.16. Built-in views
6.16.1. Window views
6.16.1.1. Length window (win:length)
6.16.1.2. Length window batch (win:length_batch)
6.16.1.3. Time window (win:time)
6.16.1.4. Externally-timed window (win:ext_timed)
6.16.1.5. Time window batch (win:time_batch)
6.16.2. Standard view set
6.16.2.1. Unique (std:unique)
6.16.2.2. Group By (std:groupby)
6.16.2.3. Size (std:size)
6.16.2.4. Last (std:lastevent)
6.16.3. Statistics views
6.16.3.1. Univariate statistics (stat:uni)
6.16.3.2. Regression (stat:linest)
6.16.3.3. Correlation (stat:correl)
6.16.3.4. Weighted average (stat:weighted_avg)
6.16.3.5. Multi-dimensional statistics (stat:cube)
6.16.4. Extension View Set
6.16.4.1. Sorted Window View (ext:sort)
6.17. User-Defined Functions
7. Event Pattern Reference
7.1. Event Pattern Overview
7.2. How to use Patterns
7.2.1. Pattern Syntax
7.2.2. Subscribing to Pattern Events
7.2.3. Pulling Data from Patterns
7.3. Pattern Filter Expressions
7.4. Pattern Operators
7.4.1. Every
7.4.2. And
7.4.3. Or
7.4.4. Not
7.4.5. Followed-by
7.5. Pattern Guards
7.5.1. timer:within
7.6. Pattern Observers
7.6.1. timer:interval
7.6.2. timer:at
8. Extension and Plug-in
8.1. Overview
8.2. Custom View Implementation
8.2.1. Implementing a View Factory
8.2.2. Implementing a View
8.2.3. Configuring View Namespace and Name
8.3. Custom Aggregation Functions
8.3.1. Implementing an Aggregation Function
8.3.2. Configuring Aggregation Function Name
8.4. Custom Pattern Guard
8.4.1. Implementing a Guard Factory
8.4.2. Implementing a Guard Class
8.4.3. Configuring Guard Namespace and Name
8.5. Custom Pattern Observer
8.5.1. Implementing an Observer Factory
8.5.2. Implementing an Observer Class
8.5.3. Configuring Observer Namespace and Name
9. Examples, Tutorials, Case Studies
9.1. Examples Overview
9.2. Market Data Feed Monitor
9.2.1. Input Events
9.2.2. Computing Rates Per Feed
9.2.3. Detecting a Fall-off
9.2.4. Event generator
9.3. Transaction 3-Event Challenge
9.3.1. The Events
9.3.2. Combined event
9.3.3. Real time summary data
9.3.4. Find problems
9.3.5. Event generator
9.4. J2EE Self-Service Terminal Management
9.4.1. Events
9.4.2. Detecting Customer Check-in Issues
9.4.3. Absence of Status Events
9.4.4. Activity Summary Data
9.4.5. Sample Application for J2EE Application Server
9.4.5.1. Running the Example
9.4.5.2. Building the Example
9.4.5.3. Running the Event Simulator and Receiver
9.5. Assets Moving Across Zones - An RFID Example
9.6. AutoID RFID Reader generating XML documents
9.7. StockTicker
9.8. MatchMaker
9.9. QualityOfService
9.10. LinearRoad
9.11. StockTick RSI
10. References
10.1. Reference List