Esper - Event Stream and Complex Event Processing for Java
Next
Esper - Event Stream and Complex Event Processing for Java
Reference Documentation
1.12.0
Copyright © 2007 EsperTech Inc.
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. Event Representations
2.1. Event Underlying Java Objects
2.2. Event Properties
2.3. Dynamic Event Properties
2.4. Plain-Old Java Object Events
2.4.1. Java Object Event Properties
2.5. java.util.Map Events
2.6. org.w3c.dom.Node XML Events
3. Processing Model
3.1. Introduction
3.2. Insert Stream
3.3. Insert and Remove Stream
3.4. Filters and Where-clauses
3.5. Time Windows
3.5.1. Time Window
3.5.2. Time Batch
3.6. Batch Windows
3.7. Aggregation and Grouping
3.7.1. Insert and Remove Stream
3.7.2. Output for Aggregations
3.7.2.1. Un-aggregated and Un-grouped
3.7.2.2. Fully Aggregated and Un-grouped
3.7.2.3. Aggregated and Un-Grouped
3.7.2.4. Fully Aggregated and Grouped
3.7.2.5. Aggregated and Grouped
3.8. EventBean Query Results
4. EQL Reference: Clauses
4.1. EQL Introduction
4.2. EQL Syntax
4.2.1. Specifying Time Periods
4.2.2. Using Comments
4.3. Choosing Event Properties And Events: the Select Clause
4.3.1. Choosing all event properties: select *
4.3.2. Choosing specific event properties
4.3.3. Expressions
4.3.4. Renaming event properties
4.3.5. Choosing event properties and events in a join
4.3.6. Choosing event properties and events from a pattern
4.3.7. Selecting istream and rstream events
4.4. Specifying Event Streams: the From Clause
4.4.1. Filter-based Event Streams
4.4.1.1. Specifying an event type
4.4.1.2. Specifying filter criteria
4.4.1.3. Filtering Ranges
4.4.1.4. Filtering Sets of Values
4.4.1.5. Filter Limitations
4.4.2. Pattern-based Event Streams
4.4.3. Specifying Views
4.4.4. Using the Stream Name
4.5. Specifying Search Conditions: the Where Clause
4.6. Aggregates and grouping: the Group-by Clause and the Having Clause
4.6.1. Using aggregate functions
4.6.2. Organizing statement results into groups: the Group-by clause
4.6.3. Selecting groups of events: the Having clause
4.6.4. How the stream filter, Where, Group By and Having clauses interact
4.6.5. Comparing the Group By clause and the std:groupby view
4.7. Stabilizing and Limiting Output: the Output Clause
4.7.1. Output Clause Options
4.7.2. Group By, Having and Output clause interaction
4.8. Sorting Output: the Order By Clause
4.9. Merging Streams and Continuous Insertion: the Insert Into Clause
4.10. Joining Event Streams
4.11. Outer Joins
4.12. Subqueries
4.12.1. The 'exists' keyword
4.12.2. The 'in' keyword
4.13. Joining Relational Data via SQL
4.13.1. Joining SQL Query Results
4.13.2. SQL Query and the EQL Where Clause
4.13.3. Outer Joins With SQL Queries
4.13.4. Using Patterns to Request (Poll) Data
4.13.5. JDBC Implementation Overview
4.13.6. Oracle Drivers and No-Metadata Workaround
4.14. Joining Non-Relational Data via Method Invocation
4.14.1. Joining Method Invocation Results
4.14.2. Providing the Method
4.15. Creating and Using Named Windows
4.15.1. Creating Named Windows: the Create Window clause
4.15.2. Deleting From Named Windows: the On Delete clause
4.15.2.1. Using Patterns in the On Delete Clause
4.15.3. Inserting Into Named Windows
4.15.4. Selecting From Named Windows
4.15.5. Triggered Select on Named Windows: the On Select clause
4.15.6. Triggered Playback from Named Windows: the On Insert clause
4.16. Variables
4.16.1. Creating Variables: the Create Variable clause
4.16.2. Setting Variable Values: the On Set clause
4.16.3. Using Variables
5. EQL Reference: Patterns
5.1. Event Pattern Overview
5.2. How to use Patterns
5.2.1. Pattern Syntax
5.2.2. Subscribing to Pattern Events
5.2.3. Pulling Data from Patterns
5.3. Operator Precedence
5.4. Filter Expressions In Patterns
5.5. Pattern Operators
5.5.1. Every
5.5.1.1. Every Operator Example
5.5.1.2. Sensor Example
5.5.2. And
5.5.3. Or
5.5.4. Not
5.5.5. Followed-by
5.6. Pattern Guards
5.6.1. timer:within
5.7. Pattern Observers
5.7.1. timer:interval
5.7.2. timer:at
6. EQL Reference: Operators
6.1. Arithmetic Operators
6.2. Logical And Comparsion Operators
6.3. Concatenation Operators
6.4. Binary Operators
6.5. Array Definition Operator
6.6. The 'in' Keyword
6.7. The 'between' Keyword
6.8. The 'like' Keyword
6.9. The 'regexp' Keyword
7. EQL Reference: Functions
7.1. Single-row Function Reference
7.1.1. The Case Control Flow Function
7.1.2. The Cast Function
7.1.3. The Coalesce Function
7.1.4. The Current_Timestamp Function
7.1.5. The Exists Function
7.1.6. The Instance-Of Function
7.1.7. The Min and Max Functions
7.1.8. The Previous Function
7.1.8.1. Previous Event per Group
7.1.8.2. Restrictions
7.1.8.3. Comparison to the prior Function
7.1.9. The Prior Function
7.2. Aggregate Functions
7.3. User-Defined Functions
8. EQL Reference: Views
8.1. Window views
8.1.1. Length window (win:length)
8.1.2. Length batch window (win:length_batch)
8.1.3. Time window (win:time)
8.1.4. Externally-timed window (win:ext_timed)
8.1.5. Time batch window (win:time_batch)
8.1.6. Time-Length combination batch window (win:time_length_batch)
8.1.7. Time-Accumulating window (win:time_accum)
8.1.8. Keep-All window (win:keepall)
8.2. Standard view set
8.2.1. Unique (std:unique)
8.2.2. Group-By (std:groupby)
8.2.3. Size (std:size)
8.2.4. Last Event (std:lastevent)
8.3. Statistics views
8.3.1. Univariate statistics (stat:uni)
8.3.2. Regression (stat:linest)
8.3.3. Correlation (stat:correl)
8.3.4. Weighted average (stat:weighted_avg)
8.3.5. Multi-dimensional statistics (stat:cube)
8.4. Extension View Set
8.4.1. Sorted Window View (ext:sort)
8.4.2. Time-Order View (ext:time_order)
9. API Reference
9.1. API Overview
9.2. Engine Instances
9.3. The Administrative Interface
9.3.1. Creating Statements
9.3.2. Adding Listeners
9.3.3. Using Iterators
9.3.4. Managing Statements
9.3.5. Runtime Engine Configuration
9.4. The Runtime Interface
9.4.1. Receiving Unmatched Events
9.4.2. Emit Facility for Publish-Subscribe
9.5. Time-Keeping Events
9.6. Events Received from the Engine
9.7. Engine Threading and Concurrency
9.8. Statement Object Model
9.8.1. Building an Object Model
9.8.2. Building Complex Expressions
9.8.3. Building Patterns
9.8.4. Building Complete Statements
9.9. Prepared Statement and Substitution Parameters
10. Configuration
10.1. Programmatic Configuration
10.2. Configuration via XML File
10.3. XML Configuration File
10.4. Configuration Items
10.4.1. Events represented by Java Classes
10.4.1.1. Package of Java Event Classes
10.4.1.2. Event type alias to Java class mapping
10.4.1.3. Non-JavaBean and Legacy Java Event Classes
10.4.1.4. Specifying Event Properties for Java Classes
10.4.1.5. Turning off Code Generation
10.4.1.6. Case Sensitivity and Property Names
10.4.2. Events represented by java.util.Map
10.4.3. Events represented by org.w3c.dom.Node
10.4.3.1. Schema Resource
10.4.3.2. XPath Property
10.4.3.3. Absolute or Deep Property Resolution
10.4.4. Class and package imports
10.4.5. Cache Settings for Method Invocations
10.4.6. Variables
10.4.7. Relational Database Access
10.4.7.1. Connections obtained via DataSource
10.4.7.2. Connections obtained via DriverManager
10.4.7.3. Connections-level settings
10.4.7.4. Connections lifecycle settings
10.4.7.5. Cache settings
10.4.7.6. Column Change Case
10.4.7.7. SQL Types Mapping
10.4.7.8. Metadata Origin
10.4.8. Engine Settings related to Concurrency and Threading
10.4.8.1. Preserving the order of events delivered to listeners
10.4.8.2. Preserving the order of events for insert-into streams
10.4.8.3. Internal Timer Settings
10.4.9. Engine Settings related to Event Metadata
10.4.9.1. Java Class Property Names and Case Sensitivity
10.4.10. Engine Settings related to View Resources
10.4.10.1. Sharing View Resources between Statements
10.4.11. Engine Settings related to Logging
10.4.11.1. Execution Path Debug Logging
10.4.12. Engine Settings related to Variables
10.4.12.1. Variable Version Release Interval
11. Extension and Plug-in
11.1. Overview
11.2. Custom View Implementation
11.2.1. Implementing a View Factory
11.2.2. Implementing a View
11.2.3. Configuring View Namespace and Name
11.3. Custom Aggregation Functions
11.3.1. Implementing an Aggregation Function
11.3.2. Configuring Aggregation Function Name
11.4. Custom Pattern Guard
11.4.1. Implementing a Guard Factory
11.4.2. Implementing a Guard Class
11.4.3. Configuring Guard Namespace and Name
11.5. Custom Pattern Observer
11.5.1. Implementing an Observer Factory
11.5.2. Implementing an Observer Class
11.5.3. Configuring Observer Namespace and Name
12. Examples, Tutorials, Case Studies
12.1. Examples Overview
12.2. Market Data Feed Monitor
12.2.1. Input Events
12.2.2. Computing Rates Per Feed
12.2.3. Detecting a Fall-off
12.2.4. Event generator
12.3. JMS Server Shell and Client
12.3.1. Overview
12.3.2. JMS Messages as Events
12.3.3. JMX for Remote Dynamic Statement Management
12.4. Transaction 3-Event Challenge
12.4.1. The Events
12.4.2. Combined event
12.4.3. Real time summary data
12.4.4. Find problems
12.4.5. Event generator
12.5. J2EE Self-Service Terminal Management
12.5.1. Events
12.5.2. Detecting Customer Check-in Issues
12.5.3. Absence of Status Events
12.5.4. Activity Summary Data
12.5.5. Sample Application for J2EE Application Server
12.5.5.1. Running the Example
12.5.5.2. Building the Example
12.5.5.3. Running the Event Simulator and Receiver
12.6. Assets Moving Across Zones - An RFID Example
12.7. AutoID RFID Reader generating XML documents
12.8. StockTicker
12.9. MatchMaker
12.10. QualityOfService
12.11. LinearRoad
12.12. StockTick RSI
13. Performance
13.1. Performance Results
13.2. Performance Tips
13.2.1. Understand how to tune your Java virtual machine
13.2.2. Compare Esper to other solutions
13.2.3. Select the underlying event rather than individual fields
13.2.4. Prefer stream-level filtering over post-data-window filtering
13.2.5. Reduce the use of arithmetic in expressions
13.2.6. Consider using EventPropertyGetter for fast access to event properties
13.2.7. Consider casting the underlying event
13.2.8. Turn off logging
13.2.9. Disable view sharing
13.2.10. Disable delivery order guarantees
13.3. Using the performance kit
13.3.1. How to use the performance kit
13.3.2. How we use the performance kit
14. References
14.1. Reference List
Index
© 2007 EsperTech Inc. All Rights Reserved