NEsper - Event Stream and Complex Event Processing for .NET
Next
NEsper - Event Stream and Complex Event Processing for .NET
Reference Documentation
4.2.0
Copyright © 2011 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 Objects
2.2. Event Properties
2.2.1. Escape Characters
2.3. Dynamic Event Properties
2.4. Fragment and Fragment Type
2.5. Object Events
2.5.1. Object Event Properties
2.5.2. Property Names
2.5.3. Constants and Enumeration
2.5.4. Parameterized Types
2.5.5. Known Limitations
2.6. Map Events
2.6.1. Overview
2.6.2. Map Properties
2.6.3. Map Supertypes
2.6.4. Advanced Map Property Types
2.6.4.1. Nested Properties
2.6.4.2. Map Event Type Properties
2.6.4.3. One-to-Many Relationships
2.7. System.Xml.XmlNode XML Events
2.7.1. Schema-Provided XML Events
2.7.1.1. Getting Started
2.7.1.2. Property Expressions and Namespaces
2.7.1.3. Property Expression to XPath Rewrite
2.7.1.4. Array Properties
2.7.1.5. Dynamic Properties
2.7.1.6. Transposing Properties
2.7.1.7. Event Sender
2.7.2. No-Schema-Provided XML Events
2.7.3. Explicitly-Configured Properties
2.7.3.1. Simple Explicit Property
2.7.3.2. Explicit Property Casting and Parsing
2.7.3.3. Node and Nodeset Explicit Property
2.8. Additional Event Representations
2.9. Updating, Merging and Versioning Events
2.10. Coarse-Grained Events
2.11. Event Objects Populated by Insert Into
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 Aggregation and Group-By
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. Event Visibility and Current Time
4. EPL Reference: Clauses
4.1. EPL Introduction
4.2. EPL Syntax
4.2.1. Specifying Time Periods
4.2.2. Using Comments
4.2.3. Reserved Keywords
4.2.4. Escaping Strings
4.2.5. Data Types
4.2.5.1. Data Type of Constants
4.2.6. Annotation
4.2.6.1. Application-Provided Annotations
4.2.6.2. Built-In Annotations
4.2.6.3. @Name
4.2.6.4. @Description
4.2.6.5. @Tag
4.2.6.6. @Priority
4.2.6.7. @Drop
4.2.6.8. @Hint
4.2.6.9. @Hook
4.2.6.10. @Audit
4.2.7. Expression Declaration
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 insert and remove stream events
4.3.8. Qualifying property names and stream names
4.3.9. Select Distinct
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. Multiple Data Window Views
4.4.5. 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:groupwin view
4.7. Stabilizing and Controlling Output: the Output Clause
4.7.1. Output Clause Options
4.7.1.1. Controlling Output Using an Expression
4.7.1.2. Suppressing Output With After
4.7.2. Aggregation, Group By, Having and Output clause interaction
4.7.3. Runtime Considerations
4.8. Sorting Output: the Order By Clause
4.9. Limiting Row Count: the Limit Clause
4.10. Merging Streams and Continuous Insertion: the Insert Into Clause
4.10.1. Transposing a Property To a Stream
4.10.2. Merging Streams By Event Type
4.10.3. Merging Disparate Types of Events: Variant Streams
4.10.4. Decorated Events
4.10.5. Event as a Property
4.10.6. Populating an Underlying Event Object
4.11. Subqueries
4.11.1. The 'exists' Keyword
4.11.2. The 'in' and 'not in' Keywords
4.11.3. The 'any' and 'some' Keywords
4.11.4. The 'all' Keyword
4.11.5. Multi-Column Selection
4.11.6. Multi-Row Selection
4.11.7. Hints Related to Subqueries
4.12. Joining Event Streams
4.12.1. Introducing Joins
4.12.2. Inner (Default) Joins
4.12.3. Outer, Left and Right Joins
4.12.4. Unidirectional Joins
4.12.5. Hints Related to Joins
4.13. Accessing Relational Data via SQL
4.13.1. Joining SQL Query Results
4.13.2. SQL Query and the EPL Where Clause
4.13.3. Outer Joins With SQL Queries
4.13.4. Using Patterns to Request (Poll) Data
4.13.5. Polling SQL Queries via Enumerator
4.13.6. ADO.NET Implementation Overview
4.13.7. No-Metadata Workaround
4.13.8. SQL Input Parameter and Column Output Conversion
4.13.9. SQL Row Object Conversion
4.14. Accessing Non-Relational Data via Method Invocation
4.14.1. Joining Method Invocation Results
4.14.2. Polling Method Invocation Results via Iterator
4.14.3. Providing the Method
4.14.4. Using a Map Return Type
4.15. Creating and Using Named Windows
4.15.1. Creating Named Windows: the Create Window clause
4.15.1.1. Creation by Modelling after an Existing Type
4.15.1.2. Creation By Defining Columns Names and Types
4.15.1.3. Dropping or Removing Named Windows
4.15.2. Inserting Into Named Windows
4.15.2.1. Named Windows Holding Decorated Events
4.15.2.2. Named Windows Holding Events As Property
4.15.3. Selecting From Named Windows
4.15.4. Triggered Select on Named Windows: the On Select clause
4.15.5. Triggered Playback from Named Windows: the On Insert clause
4.15.6. Populating a Named Window from an Existing Named Window
4.15.7. Updating Named Windows: the On Update clause
4.15.8. Deleting From Named Windows: the On Delete clause
4.15.8.1. Using Patterns in the On Delete Clause
4.15.9. Triggered Upsert using the On-Merge Clause
4.15.10. Explicitly Indexing Named Windows
4.15.11. Versioning and Revision Event Type Use with Named Windows
4.16. Declaring an Event Type: Create Schema
4.16.1. Declare an Event Type by Providing Names and Types
4.16.2. Declare an Event Type by Providing a Class Name
4.16.3. Declare a Variant Stream
4.17. Splitting and Duplicating Streams
4.18. Variables
4.18.1. Creating Variables: the Create Variable clause
4.18.2. Setting Variable Values: the On Set clause
4.18.3. Using Variables
4.18.4. Object-Type Variables
4.18.5. Class and Event-Type Variables
4.19. Contained-Event Selection
4.19.1. Select Clause in a Contained-Event Selection
4.19.2. Where Clause in a Contained-Event Selection
4.19.3. Contained-Event Selection and Joins
4.20. Updating an Insert Stream: the Update IStream Clause
4.20.1. Immutability and Updates
4.21. Controlling Event Delivery : The For Clause
5. EPL Reference: Patterns
5.1. Event Pattern Overview
5.2. How to use Patterns
5.2.1. Pattern Syntax
5.2.2. Patterns in EPL
5.2.3. Subscribing to Pattern Events
5.2.4. Pulling Data from Patterns
5.2.5. Pattern Error Reporting
5.3. Operator Precedence
5.4. Filter Expressions In Patterns
5.5. Pattern Operators
5.5.1. Every
5.5.1.1. Limiting Subexpression Lifetime
5.5.1.2. Every Operator Example
5.5.1.3. Sensor Example
5.5.2. Every-Distinct
5.5.3. Repeat
5.5.4. Repeat-Until
5.5.4.1. Unbound Repeat
5.5.4.2. Bound Repeat Overview
5.5.4.3. Bound Repeat - Open Ended Range
5.5.4.4. Bound Repeat - High Endpoint Range
5.5.4.5. Bound Repeat - Bounded Range
5.5.4.6. Tags and the Repeat Operator
5.5.5. And
5.5.6. Or
5.5.7. Not
5.5.8. Followed-by
5.5.8.1. Limiting Sub-Expression Count
5.5.9. Pattern Guards
5.5.9.1. The timer:within Pattern Guard
5.5.9.2. The timer:withinmax Pattern Guard
5.5.9.3. The while Pattern Guard
5.5.9.4. Guard Time Interval Expressions
5.5.9.5. Combining Guard Expressions
5.6. Pattern Atoms
5.6.1. Filter Atoms
5.6.2. Time-based Observer Atoms
5.6.2.1. timer:interval
5.6.2.2. timer:at
6. EPL Reference: Match Recognize
6.1. Overview
6.2. Comparison of Match Recognize and EPL Patterns
6.3. Syntax
6.3.1. Syntax Example
6.4. Pattern and Pattern Operators
6.4.1. Operator Precedence
6.4.2. Concatenation
6.4.3. Alternation
6.4.4. Quantifiers Overview
6.4.5. Variables Can be Singleton or Group
6.4.5.1. Additional Aggregation Functions
6.4.6. Eliminating Duplicate Matches
6.4.7. Greedy Or Reluctant
6.4.8. Quantifier - One Or More (+ and +?)
6.4.9. Quantifier - Zero Or More (* and *?)
6.4.10. Quantifier - Zero Or One (? and ??)
6.5. Define Clause
6.5.1. The Prev Operator
6.6. Measure Clause
6.7. Datawindow-Bound
6.8. Interval
6.9. Limitations
7. EPL Reference: Operators
7.1. Arithmetic Operators
7.2. Logical And Comparison Operators
7.3. Concatenation Operators
7.4. Binary Operators
7.5. Array Definition Operator
7.6. Dot Operator
7.6.1. Duck Typing
7.7. The 'in' Keyword
7.8. The 'between' Keyword
7.9. The 'like' Keyword
7.10. The 'regexp' Keyword
7.11. The 'any' and 'some' Keywords
7.12. The 'all' Keyword
8. EPL Reference: Functions
8.1. Single-row Function Reference
8.1.1. The Case Control Flow Function
8.1.2. The Cast Function
8.1.3. The Coalesce Function
8.1.4. The Current_Timestamp Function
8.1.5. The Exists Function
8.1.6. The Instance-Of Function
8.1.7. The Min and Max Functions
8.1.8. The Previous Function
8.1.8.1. Restrictions
8.1.8.2. Comparison to the prior Function
8.1.9. The Previous-Tail Function
8.1.9.1. Restrictions
8.1.10. The Previous-Window Function
8.1.10.1. Restrictions
8.1.11. The Previous-Count Function
8.1.11.1. Restrictions
8.1.12. The Prior Function
8.1.13. The Type-Of Function
8.2. Aggregate Functions
8.2.1. SQL-Standard Functions
8.2.2. Data Window Aggregation Functions
8.2.2.1. First Aggregation Function
8.2.2.2. Last Aggregation Function
8.2.2.3. Window Aggregation Function
8.2.3. Additional Aggregation Functions
8.3. User-Defined Functions
9. EPL Reference: Enumeration Methods
9.1. Overview
9.2. Example Events
9.3. How to Use
9.3.1. Syntax
9.3.2. Introductory Examples
9.3.3. Input, Output and Limitations
9.4. Inputs
9.4.1. Subquery Results
9.4.2. Named Window
9.4.3. Event Property
9.4.4. Data Window Aggregation
9.4.5. prev, prevwindow and prevtail Single-Row Functions as Input
9.4.6. Single-Row Function or UDF
9.4.7. Declared Expression
9.5. Example
9.6. Reference
9.6.1. Aggregate
9.6.2. AllOf
9.6.3. AnyOf
9.6.4. Average
9.6.5. CountOf
9.6.6. Except
9.6.7. FirstOf
9.6.8. GroupBy
9.6.9. Intersect
9.6.10. LastOf
9.6.11. LeastFrequent
9.6.12. Max
9.6.13. MaxBy
9.6.14. Min
9.6.15. MinBy
9.6.16. MostFrequent
9.6.17. OrderBy and OrderByDesc
9.6.18. Reverse
9.6.19. SelectFrom
9.6.20. SequenceEqual
9.6.21. SumOf
9.6.22. Take
9.6.23. TakeLast
9.6.24. TakeWhile
9.6.25. TakeWhileLast
9.6.26. ToMap
9.6.27. Union
9.6.28. Where
10. EPL Reference: Date-Time Methods
10.1. Overview
10.2. How to Use
10.2.1. Syntax
10.3. Calendar and Formatting Reference
10.3.1. Between
10.3.2. Format
10.3.3. Get (By Field)
10.3.4. Get (By Name)
10.3.5. Minus
10.3.6. Plus
10.3.7. RoundCeiling
10.3.8. RoundFloor
10.3.9. RoundHalf
10.3.10. Set (By Field)
10.3.11. WithDate
10.3.12. WithMax
10.3.13. WithMin
10.3.14. WithTime
10.3.15. ToCalendar
10.3.16. ToDate
10.3.17. ToMillisec
10.4. Interval Algebra Reference
10.4.1. After
10.4.2. Before
10.4.3. Coincides
10.4.4. During
10.4.5. Finishes
10.4.6. Finished By
10.4.7. Includes
10.4.8. Meets
10.4.9. Met By
10.4.10. Overlaps
10.4.11. Overlapped By
10.4.12. Starts
10.4.13. Started By
11. EPL Reference: Views
11.1. Window views
11.1.1. Length window (win:length)
11.1.2. Length batch window (win:length_batch)
11.1.3. Time window (win:time)
11.1.4. Externally-timed window (win:ext_timed)
11.1.5. Time batch window (win:time_batch)
11.1.6. Time-Length combination batch window (win:time_length_batch)
11.1.7. Time-Accumulating window (win:time_accum)
11.1.8. Keep-All window (win:keepall)
11.1.9. First Length (win:firstlength)
11.1.10. First Time (win:firsttime)
11.2. Standard view set
11.2.1. Unique (std:unique)
11.2.2. Grouped Data Window (std:groupwin)
11.2.3. Size (std:size)
11.2.4. Last Event (std:lastevent)
11.2.5. First Event (std:firstevent)
11.2.6. First Unique (std:firstunique)
11.3. Statistics views
11.3.1. Univariate statistics (stat:uni)
11.3.2. Regression (stat:linest)
11.3.3. Correlation (stat:correl)
11.3.4. Weighted average (stat:weighted_avg)
11.4. Extension View Set
11.4.1. Sorted Window View (ext:sort)
11.4.2. Time-Order View (ext:time_order)
12. API Reference
12.1. API Overview
12.2. The Service Provider Interface
12.3. The Administrative Interface
12.3.1. Creating Statements
12.3.2. Receiving Statement Results
12.3.3. Setting a Subscriber Object
12.3.3.1. Row-By-Row Delivery
12.3.3.2. Multi-Row Delivery
12.3.4. Adding Event Handlers
12.3.4.1. Subscription Snapshot and Atomic Delivery
12.3.5. Using Enumerators
12.3.6. Managing Statements
12.3.7. Runtime Configuration
12.4. The Runtime Interface
12.4.1. Event Sender
12.4.2. Receiving Unmatched Events
12.4.3. On-Demand Snapshot Query Execution
12.4.3.1. On-Demand Query API
12.5. Event and Event Type
12.5.1. Event Type Metadata
12.5.2. Event Object
12.5.3. Query Example
12.5.4. Pattern Example
12.6. Engine Threading and Concurrency
12.6.1. Advanced Threading
12.6.1.1. Inbound Threading
12.6.1.2. Outbound Threading
12.6.1.3. Timer Execution Threading
12.6.1.4. Route Execution Threading
12.6.1.5. Threading Service Provider Interface
12.6.2. Processing Order
12.6.2.1. Competing Statements
12.6.2.2. Competing Events in a Work Queue
12.7. Controlling Time-Keeping
12.7.1. Controlling Time Using Time Span Events
12.7.2. Additional Time-Related APIs
12.8. Time Resolution
12.9. Service Isolation
12.9.1. Overview
12.9.2. Example: Suspending a Statement
12.9.3. Example: Catching up a Statement from Historical Data
12.9.4. Isolation for Insert-Into
12.9.5. Isolation for Named Windows
12.9.6. Runtime Considerations
12.10. Exception Handling
12.11. Condition Handling
12.12. Statement Object Model
12.12.1. Building an Object Model
12.12.2. Building Expressions
12.12.3. Building a Pattern Statement
12.12.4. Building a Select Statement
12.12.5. Building a Create-Variable and On-Set Statement
12.12.6. Building Create-Window, On-Delete and On-Select Statements
12.13. Prepared Statement and Substitution Parameters
12.14. Engine and Statement Metrics Reporting
12.14.1. Engine Metrics
12.14.2. Statement Metrics
12.15. Event Rendering to XML and JSON
12.15.1. JSON Event Rendering Conventions and Options
12.15.2. XML Event Rendering Conventions and Options
12.16. Plug-in Loader
12.17. Interrogating EPL Annotations
12.18. CLR-Java Differences
13. Configuration
13.1. Programmatic Configuration
13.2. Configuration via XML File
13.3. XML Configuration File
13.4. Configuration Items
13.4.1. Events represented by CLR types
13.4.1.1. Package of CLR Event Classes
13.4.1.2. Event type name to CLR type mapping
13.4.1.3. Legacy Event Classes
13.4.1.4. Specifying Event Properties for CLR Types
13.4.1.5. Turning off Code Generation
13.4.1.6. Case Sensitivity and Property Names
13.4.1.7. Factory and Copy Method
13.4.2. Events represented by System.Collection.Generic.IDictionary
13.4.3. Events represented by System.Xml.XmlNode
13.4.3.1. Schema Resource
13.4.3.2. Explicit XPath Property
13.4.3.3. Absolute or Deep Property Resolution
13.4.3.4. XPath Variable and Function Resolver
13.4.3.5. Auto Fragment
13.4.3.6. XPath Property Expression
13.4.3.7. Event Sender Setting
13.4.4. Events represented by Plug-in Event Representations
13.4.4.1. Enabling an Custom Event Representation
13.4.4.2. Adding Plug-in Event Types
13.4.4.3. Setting Resolution URIs
13.4.5. Class and package imports
13.4.6. Cache Settings for From-Clause Method Invocations
13.4.7. Variables
13.4.8. Relational Database Access
13.4.8.1. Connections obtained via DataSource
13.4.8.2. Connections obtained via DataSource Factory
13.4.8.3. Connections obtained via DriverManager
13.4.8.4. Connections-level settings
13.4.8.5. Connections lifecycle settings
13.4.8.6. Cache settings
13.4.8.7. Column Change Case
13.4.8.8. SQL Types Mapping
13.4.8.9. Metadata Origin
13.4.9. Engine Settings related to Concurrency and Threading
13.4.9.1. Preserving the order of events delivered to listeners
13.4.9.2. Preserving the order of events for insert-into streams
13.4.9.3. Internal Timer Settings
13.4.9.4. Advanced Threading Options
13.4.10. Engine Settings related to Event Metadata
13.4.10.1. Type Property Names, Case Sensitivity and Accessor Style
13.4.11. Engine Settings related to View Resources
13.4.11.1. Sharing View Resources between Statements
13.4.11.2. Configuring Multi-Expiry Policy Defaults
13.4.12. Engine Settings related to Logging
13.4.12.1. Execution Path Debug Logging
13.4.12.2. Query Plan Logging
13.4.12.3. JDBC Logging
13.4.13. Engine Settings related to Variables
13.4.13.1. Variable Version Release Interval
13.4.14. Engine Settings related to Stream Selection
13.4.14.1. Default Statement Stream Selection
13.4.15. Engine Settings related to Time Source
13.4.15.1. Default Time Source
13.4.16. Engine Settings related to Metrics Reporting
13.4.17. Engine Settings related to Language and Locale
13.4.18. Engine Settings related to Expression Evaluation
13.4.18.1. Integer Division and Division by Zero
13.4.18.2. Subselect Evaluation Order
13.4.18.3. User-Defined Function or Static Method Cache
13.4.18.4. Extended Built-in Aggregation Functions
13.4.18.5. Duck Typing
13.4.19. Engine Settings related to Execution of Statements
13.4.19.1. Prioritized Execution
13.4.20. Engine Settings related to Exception Handling
13.4.21. Engine Settings related to Condition Handling
13.4.22. Revision Event Type
13.4.23. Variant Stream
13.5. Type Names
13.6. Runtime Configuration
13.7. Logging Configuration
13.7.1. Log4net Logging Configuration
14. Development Lifecycle
14.1. Authoring
14.2. Testing
14.3. Debugging
14.3.1. @Audit Annotation
14.4. Packaging and Deploying Overview
14.5. EPL Modules
14.6. The Deployment Administrative Interface
14.6.1. Reading Module Content
14.6.2. Ordering Multiple Modules
14.6.3. Deploying and Undeploying
14.6.4. Listing Deployments
14.6.5. State Transitioning a Module
14.6.6. Best Practices
14.7. J2EE Packaging and Deployment
14.7.1. J2EE Deployment Considerations
14.7.2. Servlet Context Listener
15. Extension and Plug-in
15.1. Overview
15.2. Virtual Data Window
15.2.1. How to Use
15.2.1.1. Query Access Path
15.2.2. Implementing the Factory
15.2.3. Implementing the Virtual Data Window
15.2.4. Implementing the Lookup
15.3. Single-Row Functions
15.3.1. Implementing a Single-Row Function
15.3.2. Configuring the Single-Row Function Name
15.4. Derived-value and Data Window View
15.4.1. Implementing a View Factory
15.4.2. Implementing a View
15.4.3. View Contract
15.4.4. Configuring View Namespace and Name
15.4.5. Requirement for Data Window Views
15.4.6. Requirement for Grouped Views
15.5. Aggregation Functions
15.5.1. Implementing an Aggregation Function
15.5.2. Configuring the Aggregation Function Name
15.5.3. Accepting Multiple Parameters
15.6. Pattern Guard
15.6.1. Implementing a Guard Factory
15.6.2. Implementing a Guard Class
15.6.3. Configuring Guard Namespace and Name
15.7. Pattern Observer
15.7.1. Implementing an Observer Factory
15.7.2. Implementing an Observer Class
15.7.3. Configuring Observer Namespace and Name
15.8. Event Type And Event Object
15.8.1. How It Works
15.8.2. Steps
15.8.3. URI-based Resolution
15.8.4. Example
15.8.4.1. Sample Event Type
15.8.4.2. Sample Event Bean
15.8.4.3. Sample Event Representation
15.8.4.4. Sample Event Bean Factory
16. Examples, Tutorials, Case Studies
16.1. Examples Overview
16.2. Running the Examples
16.3. AutoID RFID Reader
16.4. Runtime Configuration
16.5. Market Data Feed Monitor
16.5.1. Input Events
16.5.2. Computing Rates Per Feed
16.5.3. Detecting a Fall-off
16.5.4. Event generator
16.6. OHLC Plug-in View
16.7. Transaction 3-Event Challenge
16.7.1. The Events
16.7.2. Combined event
16.7.3. Real time summary data
16.7.4. Find problems
16.7.5. Event generator
16.8. Self-Service Terminal
16.8.1. Events
16.8.2. Detecting Customer Check-in Issues
16.8.3. Absence of Status Events
16.8.4. Activity Summary Data
16.9. Assets Moving Across Zones - An RFID Example
16.10. StockTicker
16.11. MatchMaker
16.12. Named Window Query
16.13. Quality of Service
17. Performance
17.1. Performance Results
17.2. Performance Tips
17.2.1. Understand how to tune your application
17.2.2. Compare Esper to other solutions
17.2.3. Input and Output Bottlenecks
17.2.4. Advanced Theading
17.2.5. Select the underlying event rather than individual fields
17.2.6. Prefer stream-level filtering over post-data-window filtering
17.2.7. Reduce the use of arithmetic in expressions
17.2.8. Remove Unneccessary Constructs
17.2.9. End Pattern Sub-Expressions
17.2.10. Consider using EventPropertyGetter for fast access to event properties
17.2.11. Consider casting the underlying event
17.2.12. Turn off logging
17.2.13. Disable view sharing
17.2.14. Tune or disable delivery order guarantees
17.2.15. Use a Subscriber Object to Receive Events
17.2.16. High-Arrival-Rate Streams and Single Statements
17.2.17. Joins And Where-clause And Data Windows
17.2.18. Patterns and Pattern Sub-Expression Instances
17.2.19. The Keep-All Data Window
17.2.20. Statement Design for Reduced Memory Consumption
17.2.21. Performance, JVM, OS and hardware
17.2.22. Consider using Hints
17.2.23. Optimizing Stream Filter Expressions
17.3. Using the performance kit
17.3.1. How to use the performance kit
17.3.2. How we use the performance kit
18. References
18.1. Reference List
A. Output Reference and Samples
A.1. Introduction and Sample Data
A.2. Output for Un-aggregated and Un-grouped Queries
A.2.1. No Output Rate Limiting
A.2.2. Output Rate Limiting - Default
A.2.3. Output Rate Limiting - Last
A.2.4. Output Rate Limiting - First
A.2.5. Output Rate Limiting - Snapshot
A.3. Output for Fully-aggregated and Un-grouped Queries
A.3.1. No Output Rate Limiting
A.3.2. Output Rate Limiting - Default
A.3.3. Output Rate Limiting - Last
A.3.4. Output Rate Limiting - First
A.3.5. Output Rate Limiting - Snapshot
A.4. Output for Aggregated and Un-grouped Queries
A.4.1. No Output Rate Limiting
A.4.2. Output Rate Limiting - Default
A.4.3. Output Rate Limiting - Last
A.4.4. Output Rate Limiting - First
A.4.5. Output Rate Limiting - Snapshot
A.5. Output for Fully-aggregated and Grouped Queries
A.5.1. No Output Rate Limiting
A.5.2. Output Rate Limiting - Default
A.5.3. Output Rate Limiting - All
A.5.4. Output Rate Limiting - Last
A.5.5. Output Rate Limiting - First
A.5.6. Output Rate Limiting - Snapshot
A.6. Output for Aggregated and Grouped Queries
A.6.1. No Output Rate Limiting
A.6.2. Output Rate Limiting - Default
A.6.3. Output Rate Limiting - All
A.6.4. Output Rate Limiting - Last
A.6.5. Output Rate Limiting - First
A.6.6. Output Rate Limiting - Snapshot
B. Reserved Keywords
Index
© 2011 EsperTech Inc. All Rights Reserved