esper.codehaus.org and espertech.comDocumentation

Esper Reference

Version 5.0.0


Preface
1. Technology Overview
1.1. Introduction to CEP and event series 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.2.1. Escape Characters
2.2.2. Expression as Key or Index Value
2.3. Dynamic Event Properties
2.4. Fragment and Fragment Type
2.5. Plain-Old Java Object Events
2.5.1. Java Object Event Properties
2.5.2. Property Names
2.5.3. Parameterized Types
2.5.4. Setter Methods for Indexed and Mapped Properties
2.5.5. Known Limitations
2.6. java.util.Map Events
2.6.1. Overview
2.6.2. Map Properties
2.6.3. Map Supertypes
2.6.4. Advanced Map Property Types
2.7. Object-array (Object[]) Events
2.7.1. Overview
2.7.2. Object-Array Properties
2.7.3. Object-Array Supertype
2.7.4. Advanced Object-Array Property Types
2.8. org.w3c.dom.Node XML Events
2.8.1. Schema-Provided XML Events
2.8.2. No-Schema-Provided XML Events
2.8.3. Explicitly-Configured Properties
2.9. Additional Event Representations
2.10. Updating, Merging and Versioning Events
2.11. Coarse-Grained Events
2.12. Event Objects Instantiated and Populated by Insert Into
2.13. Comparing Event Representations
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.8. Event Visibility and Current Time
4. Context and Context Partitions
4.1. Introduction
4.2. Context Declaration
4.2.1. Context-Provided Properties
4.2.2. Keyed Segmented Context
4.2.3. Hash Segmented Context
4.2.4. Category Segmented Context
4.2.5. Non-Overlapping Context
4.2.6. Overlapping Context
4.2.7. Context Conditions
4.3. Context Nesting
4.3.1. Built-In Nested Context Properties
4.4. Partitioning Without Context Declaration
4.5. Output When Context Partition Ends
4.6. Context and Named Window
4.7. Context and Variables
4.8. Operations on Specific Context Partitions
5. EPL Reference: Clauses
5.1. EPL Introduction
5.2. EPL Syntax
5.2.1. Specifying Time Periods
5.2.2. Using Comments
5.2.3. Reserved Keywords
5.2.4. Escaping Strings
5.2.5. Data Types
5.2.6. Using Constants and Enum Types
5.2.7. Annotation
5.2.8. Expression Declaration
5.2.9. Script Declaration
5.2.10. Referring to a Context
5.3. Choosing Event Properties And Events: the Select Clause
5.3.1. Choosing all event properties: select *
5.3.2. Choosing specific event properties
5.3.3. Expressions
5.3.4. Renaming event properties
5.3.5. Choosing event properties and events in a join
5.3.6. Choosing event properties and events from a pattern
5.3.7. Selecting insert and remove stream events
5.3.8. Qualifying property names and stream names
5.3.9. Select Distinct
5.3.10. Transposing an Expression Result to a Stream
5.3.11. Selecting EventBean instead of Underlying Event
5.4. Specifying Event Streams: the From Clause
5.4.1. Filter-based Event Streams
5.4.2. Pattern-based Event Streams
5.4.3. Specifying Views
5.4.4. Multiple Data Window Views
5.4.5. Using the Stream Name
5.5. Specifying Search Conditions: the Where Clause
5.6. Aggregates and grouping: the Group-by Clause and the Having Clause
5.6.1. Using aggregate functions
5.6.2. Organizing statement results into groups: the Group-by clause
5.6.3. Using Group-By with Rollup, Cube and Grouping Sets
5.6.4. Selecting groups of events: the Having clause
5.6.5. How the stream filter, Where, Group By and Having clauses interact
5.6.6. Comparing Keyed Segmented Context, the Group By clause and the std:groupwin view
5.7. Stabilizing and Controlling Output: the Output Clause
5.7.1. Output Clause Options
5.7.2. Aggregation, Group By, Having and Output clause interaction
5.7.3. Runtime Considerations
5.8. Sorting Output: the Order By Clause
5.9. Limiting Row Count: the Limit Clause
5.10. Merging Streams and Continuous Insertion: the Insert Into Clause
5.10.1. Transposing a Property To a Stream
5.10.2. Merging Streams By Event Type
5.10.3. Merging Disparate Types of Events: Variant Streams
5.10.4. Decorated Events
5.10.5. Event as a Property
5.10.6. Instantiating and Populating an Underlying Event Object
5.10.7. Transposing an Expression Result
5.10.8. Select-Clause Expression And Inserted-Into Column Event Type
5.11. Subqueries
5.11.1. The 'exists' Keyword
5.11.2. The 'in' and 'not in' Keywords
5.11.3. The 'any' and 'some' Keywords
5.11.4. The 'all' Keyword
5.11.5. Subquery With Group By Clause
5.11.6. Multi-Column Selection
5.11.7. Multi-Row Selection
5.11.8. Hints Related to Subqueries
5.12. Joining Event Streams
5.12.1. Introducing Joins
5.12.2. Inner (Default) Joins
5.12.3. Outer, Left and Right Joins
5.12.4. Unidirectional Joins
5.12.5. Hints Related to Joins
5.13. Accessing Relational Data via SQL
5.13.1. Joining SQL Query Results
5.13.2. SQL Query and the EPL Where Clause
5.13.3. Outer Joins With SQL Queries
5.13.4. Using Patterns to Request (Poll) Data
5.13.5. Polling SQL Queries via Iterator
5.13.6. JDBC Implementation Overview
5.13.7. Oracle Drivers and No-Metadata Workaround
5.13.8. SQL Input Parameter and Column Output Conversion
5.13.9. SQL Row POJO Conversion
5.14. Accessing Non-Relational Data via Method Invocation
5.14.1. Joining Method Invocation Results
5.14.2. Polling Method Invocation Results via Iterator
5.14.3. Providing the Method
5.14.4. Using a Map Return Type
5.14.5. Using a Object Array Return Type
5.15. Creating and Using Named Windows
5.15.1. Creating Named Windows: the Create Window clause
5.15.2. Inserting Into Named Windows
5.15.3. Inserting Into Named Windows Using Fire-And-Forget Queries
5.15.4. Selecting From Named Windows
5.15.5. Triggered Select on Named Windows: the On Select clause
5.15.6. Triggered Select+Delete on Named Windows: the On Select Delete clause
5.15.7. Populating a Named Window from an Existing Named Window
5.15.8. Updating Named Windows: the On Update clause
5.15.9. Updating Named Windows Using Fire-And-Forget Queries
5.15.10. Deleting From Named Windows: the On Delete clause
5.15.11. Deleting From Named Windows Using Fire-And-Forget Queries
5.15.12. Triggered Upsert using the On-Merge Clause
5.15.13. Explicitly Indexing Named Windows
5.15.14. Versioning and Revision Event Type Use with Named Windows
5.16. Declaring an Event Type: Create Schema
5.16.1. Declare an Event Type by Providing Names and Types
5.16.2. Declare an Event Type by Providing a Class Name
5.16.3. Declare a Variant Stream
5.17. Splitting and Duplicating Streams
5.18. Variables and Constants
5.18.1. Creating Variables: the Create Variable clause
5.18.2. Setting Variable Values: the On Set clause
5.18.3. Using Variables
5.18.4. Object-Type Variables
5.18.5. Class and Event-Type Variables
5.19. Declaring Global Expressions And Scripts: Create Expression
5.19.1. Declaring a Global Expression
5.19.2. Declaring a Global Script
5.20. Contained-Event Selection
5.20.1. Select-Clause in a Contained-Event Selection
5.20.2. Where Clause in a Contained-Event Selection
5.20.3. Contained-Event Selection and Joins
5.20.4. Sentence and Word Example
5.20.5. More Examples
5.20.6. Contained-Event Limitations
5.21. Updating an Insert Stream: the Update IStream Clause
5.21.1. Immutability and Updates
5.22. Controlling Event Delivery : The For Clause
6. EPL Reference: Patterns
6.1. Event Pattern Overview
6.2. How to use Patterns
6.2.1. Pattern Syntax
6.2.2. Patterns in EPL
6.2.3. Subscribing to Pattern Events
6.2.4. Pulling Data from Patterns
6.2.5. Pattern Error Reporting
6.2.6. Suppressing Same-Event Matches
6.2.7. Discarding Partially Completed Patterns
6.3. Operator Precedence
6.4. Filter Expressions In Patterns
6.4.1. Controlling Event Consumption
6.4.2. Use With Named Windows
6.5. Pattern Operators
6.5.1. Every
6.5.2. Every-Distinct
6.5.3. Repeat
6.5.4. Repeat-Until
6.5.5. And
6.5.6. Or
6.5.7. Not
6.5.8. Followed-by
6.5.9. Pattern Guards
6.6. Pattern Atoms
6.6.1. Filter Atoms
6.6.2. Time-based Observer Atoms
7. EPL Reference: Match Recognize
7.1. Overview
7.2. Comparison of Match Recognize and EPL Patterns
7.3. Syntax
7.3.1. Syntax Example
7.4. Pattern and Pattern Operators
7.4.1. Operator Precedence
7.4.2. Concatenation
7.4.3. Alternation
7.4.4. Quantifiers Overview
7.4.5. Variables Can be Singleton or Group
7.4.6. Eliminating Duplicate Matches
7.4.7. Greedy Or Reluctant
7.4.8. Quantifier - One Or More (+ and +?)
7.4.9. Quantifier - Zero Or More (* and *?)
7.4.10. Quantifier - Zero Or One (? and ??)
7.5. Define Clause
7.5.1. The Prev Operator
7.6. Measure Clause
7.7. Datawindow-Bound
7.8. Interval
7.9. Interval-Or-Terminated
7.10. Use with Different Event Types
7.11. Limitations
8. EPL Reference: Operators
8.1. Arithmetic Operators
8.2. Logical And Comparison Operators
8.2.1. Null-Value Comparison Operators
8.3. Concatenation Operators
8.4. Binary Operators
8.5. Array Definition Operator
8.6. Dot Operator
8.6.1. Duck Typing
8.7. The 'in' Keyword
8.7.1. 'in' for Range Selection
8.8. The 'between' Keyword
8.9. The 'like' Keyword
8.10. The 'regexp' Keyword
8.11. The 'any' and 'some' Keywords
8.12. The 'all' Keyword
8.13. The 'new' Keyword
9. EPL Reference: Functions
9.1. Single-row Function Reference
9.1.1. The Case Control Flow Function
9.1.2. The Cast Function
9.1.3. The Coalesce Function
9.1.4. The Current_Timestamp Function
9.1.5. The Exists Function
9.1.6. The Grouping Function
9.1.7. The Grouping_Id Function
9.1.8. The Instance-Of Function
9.1.9. The Istream Function
9.1.10. The Min and Max Functions
9.1.11. The Previous Function
9.1.12. The Previous-Tail Function
9.1.13. The Previous-Window Function
9.1.14. The Previous-Count Function
9.1.15. The Prior Function
9.1.16. The Type-Of Function
9.2. Aggregation Functions
9.2.1. SQL-Standard Functions
9.2.2. Event Aggregation Functions
9.2.3. Additional Aggregation Functions
9.3. User-Defined Functions
9.4. Select-Clause transpose Function
9.4.1. Transpose with Insert-Into
10. EPL Reference: Enumeration Methods
10.1. Overview
10.2. Example Events
10.3. How to Use
10.3.1. Syntax
10.3.2. Introductory Examples
10.3.3. Input, Output and Limitations
10.4. Inputs
10.4.1. Subquery Results
10.4.2. Named Window
10.4.3. Event Property
10.4.4. Event Aggregation Function
10.4.5. prev, prevwindow and prevtail Single-Row Functions as Input
10.4.6. Single-Row Function, User-Defined Function and Enum Types
10.4.7. Declared Expression
10.4.8. Variables
10.4.9. Match-Recognize Group Variable
10.4.10. Pattern Repeat and Repeat-Until Operators
10.5. Example
10.6. Reference
10.6.1. Aggregate
10.6.2. AllOf
10.6.3. AnyOf
10.6.4. Average
10.6.5. CountOf
10.6.6. DistinctOf
10.6.7. Except
10.6.8. FirstOf
10.6.9. GroupBy
10.6.10. Intersect
10.6.11. LastOf
10.6.12. LeastFrequent
10.6.13. Max
10.6.14. MaxBy
10.6.15. Min
10.6.16. MinBy
10.6.17. MostFrequent
10.6.18. OrderBy and OrderByDesc
10.6.19. Reverse
10.6.20. SelectFrom
10.6.21. SequenceEqual
10.6.22. SumOf
10.6.23. Take
10.6.24. TakeLast
10.6.25. TakeWhile
10.6.26. TakeWhileLast
10.6.27. ToMap
10.6.28. Union
10.6.29. Where
11. EPL Reference: Date-Time Methods
11.1. Overview
11.2. How to Use
11.2.1. Syntax
11.3. Calendar and Formatting Reference
11.3.1. Between
11.3.2. Format
11.3.3. Get (By Field)
11.3.4. Get (By Name)
11.3.5. Minus
11.3.6. Plus
11.3.7. RoundCeiling
11.3.8. RoundFloor
11.3.9. RoundHalf
11.3.10. Set (By Field)
11.3.11. WithDate
11.3.12. WithMax
11.3.13. WithMin
11.3.14. WithTime
11.3.15. ToCalendar
11.3.16. ToDate
11.3.17. ToMillisec
11.4. Interval Algebra Reference
11.4.1. Examples
11.4.2. Interval Algebra Parameters
11.4.3. Performance
11.4.4. Limitations
11.4.5. After
11.4.6. Before
11.4.7. Coincides
11.4.8. During
11.4.9. Finishes
11.4.10. Finished By
11.4.11. Includes
11.4.12. Meets
11.4.13. Met By
11.4.14. Overlaps
11.4.15. Overlapped By
11.4.16. Starts
11.4.17. Started By
12. EPL Reference: Views
12.1. A Note on View Parameters
12.2. Data Window Views
12.2.1. Length window (win:length)
12.2.2. Length batch window (win:length_batch)
12.2.3. Time window (win:time)
12.2.4. Externally-timed window (win:ext_timed)
12.2.5. Time batch window (win:time_batch)
12.2.6. Externally-timed batch window (win:ext_timed_batch)
12.2.7. Time-Length combination batch window (win:time_length_batch)
12.2.8. Time-Accumulating window (win:time_accum)
12.2.9. Keep-All window (win:keepall)
12.2.10. First Length (win:firstlength)
12.2.11. First Time (win:firsttime)
12.2.12. Expiry Expression (win:expr)
12.2.13. Expiry Expression Batch (win:expr_batch)
12.3. Standard view set
12.3.1. Unique (std:unique)
12.3.2. Grouped Data Window (std:groupwin)
12.3.3. Size (std:size)
12.3.4. Last Event (std:lastevent)
12.3.5. First Event (std:firstevent)
12.3.6. First Unique (std:firstunique)
12.4. Statistics views
12.4.1. Univariate statistics (stat:uni)
12.4.2. Regression (stat:linest)
12.4.3. Correlation (stat:correl)
12.4.4. Weighted average (stat:weighted_avg)
12.5. Extension View Set
12.5.1. Sorted Window View (ext:sort)
12.5.2. Ranked Window View (ext:rank)
12.5.3. Time-Order View (ext:time_order)
13. EPL Reference: Data Flow
13.1. Introduction
13.2. Usage
13.2.1. Overview
13.2.2. Syntax
13.3. Built-in Operators
13.3.1. BeaconSource
13.3.2. EPStatementSource
13.3.3. EventBusSink
13.3.4. EventBusSource
13.3.5. Filter
13.3.6. LogSink
13.3.7. Select
13.4. API
13.4.1. Declaring a Data Flow
13.4.2. Instantiating a Data Flow
13.4.3. Executing a Data Flow
13.4.4. Instantiation Options
13.4.5. Start Captive
13.4.6. Data Flow Punctuation with Markers
13.4.7. Exception Handling
13.5. Examples
13.6. Operator Implementation
13.6.1. Sample Operator Acting as Source
13.6.2. Sample Tokenizer Operator
13.6.3. Sample Aggregator Operator
14. API Reference
14.1. API Overview
14.2. The Service Provider Interface
14.3. The Administrative Interface
14.3.1. Creating Statements
14.3.2. Receiving Statement Results
14.3.3. Setting a Subscriber Object
14.3.4. Adding Listeners
14.3.5. Using Iterators
14.3.6. Managing Statements
14.3.7. Runtime Configuration
14.4. The Runtime Interface
14.4.1. Event Sender
14.4.2. Receiving Unmatched Events
14.5. On-Demand Fire-And-Forget Query Execution
14.5.1. On-Demand Query Single Execution
14.5.2. On-Demand Query Prepared Unparameterized Execution
14.5.3. On-Demand Query Prepared Parameterized Execution
14.6. Event and Event Type
14.6.1. Event Type Metadata
14.6.2. Event Object
14.6.3. Query Example
14.6.4. Pattern Example
14.7. Engine Threading and Concurrency
14.7.1. Advanced Threading
14.7.2. Processing Order
14.8. Controlling Time-Keeping
14.8.1. Controlling Time Using Time Span Events
14.8.2. Additional Time-Related APIs
14.9. Time Resolution
14.10. Service Isolation
14.10.1. Overview
14.10.2. Example: Suspending a Statement
14.10.3. Example: Catching up a Statement from Historical Data
14.10.4. Isolation for Insert-Into
14.10.5. Isolation for Named Windows
14.10.6. Runtime Considerations
14.11. Exception Handling
14.12. Condition Handling
14.13. Statement Object Model
14.13.1. Building an Object Model
14.13.2. Building Expressions
14.13.3. Building a Pattern Statement
14.13.4. Building a Select Statement
14.13.5. Building a Create-Variable and On-Set Statement
14.13.6. Building Create-Window, On-Delete and On-Select Statements
14.14. Prepared Statement and Substitution Parameters
14.15. Engine and Statement Metrics Reporting
14.15.1. Engine Metrics
14.15.2. Statement Metrics
14.16. Event Rendering to XML and JSON
14.16.1. JSON Event Rendering Conventions and Options
14.16.2. XML Event Rendering Conventions and Options
14.17. Plug-in Loader
14.18. Interrogating EPL Annotations
14.19. Context Partition Selection
14.19.1. Selectors
14.20. Context Partition Administration
14.21. Test and Assertion Support
14.21.1. EPAssertionUtil Summary
14.21.2. SupportUpdateListener Summary
14.21.3. Usage Example
15. Configuration
15.1. Programmatic Configuration
15.2. Configuration via XML File
15.3. XML Configuration File
15.4. Configuration Items
15.4.1. Events represented by Java Classes
15.4.2. Events represented by java.util.Map
15.4.3. Events represented by Object[] (Object-array)
15.4.4. Events represented by org.w3c.dom.Node
15.4.5. Events represented by Plug-in Event Representations
15.4.6. Class and package imports
15.4.7. Cache Settings for From-Clause Method Invocations
15.4.8. Variables
15.4.9. Relational Database Access
15.4.10. Engine Settings related to Concurrency and Threading
15.4.11. Engine Settings related to Event Metadata
15.4.12. Engine Settings related to View Resources
15.4.13. Engine Settings related to Logging
15.4.14. Engine Settings related to Variables
15.4.15. Engine Settings related to Patterns
15.4.16. Engine Settings related to Scripts
15.4.17. Engine Settings related to Stream Selection
15.4.18. Engine Settings related to Time Source
15.4.19. Engine Settings related to JMX Metrics
15.4.20. Engine Settings related to Metrics Reporting
15.4.21. Engine Settings related to Language and Locale
15.4.22. Engine Settings related to Expression Evaluation
15.4.23. Engine Settings related to Execution of Statements
15.4.24. Engine Settings related to Exception Handling
15.4.25. Engine Settings related to Condition Handling
15.4.26. Revision Event Type
15.4.27. Variant Stream
15.5. Type Names
15.6. Runtime Configuration
15.7. Logging Configuration
15.7.1. Log4j Logging Configuration
16. Development Lifecycle
16.1. Authoring
16.2. Testing
16.3. Debugging
16.3.1. @Audit Annotation
16.4. Packaging and Deploying Overview
16.5. EPL Modules
16.6. The Deployment Administrative Interface
16.6.1. Reading Module Content
16.6.2. Ordering Multiple Modules
16.6.3. Deploying and Undeploying
16.6.4. Listing Deployments
16.6.5. State Transitioning a Module
16.6.6. Best Practices
16.7. J2EE Packaging and Deployment
16.7.1. J2EE Deployment Considerations
16.7.2. Servlet Context Listener
16.8. Monitoring and JMX
17. Integration and Extension
17.1. Overview
17.2. Virtual Data Window
17.2.1. How to Use
17.2.2. Implementing the Factory
17.2.3. Implementing the Virtual Data Window
17.2.4. Implementing the Lookup
17.3. Single-Row Function
17.3.1. Implementing a Single-Row Function
17.3.2. Configuring the Single-Row Function Name
17.3.3. Value Cache
17.3.4. Single-Row Functions in Filter Predicate Expressions
17.3.5. Single-Row Functions Taking Events as Parameters
17.3.6. Receiving a Context Object
17.3.7. Exception Handling
17.4. Derived-value and Data Window View
17.4.1. Implementing a View Factory
17.4.2. Implementing a View
17.4.3. View Contract
17.4.4. Configuring View Namespace and Name
17.4.5. Requirement for Data Window Views
17.4.6. Requirement for Derived-Value Views
17.4.7. Requirement for Grouped Views
17.5. Aggregation Function
17.5.1. Aggregation Single-Function Development
17.5.2. Aggregation Multi-Function Development
17.6. Pattern Guard
17.6.1. Implementing a Guard Factory
17.6.2. Implementing a Guard Class
17.6.3. Configuring Guard Namespace and Name
17.7. Pattern Observer
17.7.1. Implementing an Observer Factory
17.7.2. Implementing an Observer Class
17.7.3. Configuring Observer Namespace and Name
17.8. Event Type And Event Object
17.8.1. How It Works
17.8.2. Steps
17.8.3. URI-based Resolution
17.8.4. Example
18. Script Support
18.1. Overview
18.2. Syntax
18.3. Examples
18.4. Built-In EPL Script Attributes
18.5. Performance Notes
18.6. Additional Notes
19. Examples, Tutorials, Case Studies
19.1. Examples Overview
19.2. Running the Examples
19.3. AutoID RFID Reader
19.4. Runtime Configuration
19.5. JMS Server Shell and Client
19.5.1. Overview
19.5.2. JMS Messages as Events
19.5.3. JMX for Remote Dynamic Statement Management
19.6. Market Data Feed Monitor
19.6.1. Input Events
19.6.2. Computing Rates Per Feed
19.6.3. Detecting a Fall-off
19.6.4. Event generator
19.7. OHLC Plug-in View
19.8. Transaction 3-Event Challenge
19.8.1. The Events
19.8.2. Combined event
19.8.3. Real time summary data
19.8.4. Find problems
19.8.5. Event generator
19.9. Self-Service Terminal
19.9.1. Events
19.9.2. Detecting Customer Check-in Issues
19.9.3. Absence of Status Events
19.9.4. Activity Summary Data
19.9.5. Sample Application for J2EE Application Server
19.10. Assets Moving Across Zones - An RFID Example
19.11. StockTicker
19.12. MatchMaker
19.13. Named Window Query
19.14. Sample Virtual Data Window
19.15. Sample Cycle Detection
19.16. Quality of Service
19.17. Trivia Geeks Club
20. Performance
20.1. Performance Results
20.2. Performance Tips
20.2.1. Understand how to tune your Java virtual machine
20.2.2. Input and Output Bottlenecks
20.2.3. Theading
20.2.4. Select the underlying event rather than individual fields
20.2.5. Prefer stream-level filtering over where-clause filtering
20.2.6. Reduce the use of arithmetic in expressions
20.2.7. Remove Unneccessary Constructs
20.2.8. End Pattern Sub-Expressions
20.2.9. Consider using EventPropertyGetter for fast access to event properties
20.2.10. Consider casting the underlying event
20.2.11. Turn off logging and audit
20.2.12. Disable view sharing
20.2.13. Tune or disable delivery order guarantees
20.2.14. Use a Subscriber Object to Receive Events
20.2.15. Consider Data Flows
20.2.16. High-Arrival-Rate Streams and Single Statements
20.2.17. Subqueries versus Joins And Where-clause And Data Windows
20.2.18. Patterns and Pattern Sub-Expression Instances
20.2.19. Pattern Sub-Expression Instance Versus Data Window Use
20.2.20. The Keep-All Data Window
20.2.21. Statement Design for Reduced Memory Consumption - Diagnosing OutOfMemoryError
20.2.22. Performance, JVM, OS and hardware
20.2.23. Consider using Hints
20.2.24. Optimizing Stream Filter Expressions
20.2.25. Statement and Engine Metric Reporting
20.2.26. Expression Evaluation Order and Early Exit
20.2.27. Large Number of Threads
20.2.28. Filter Evaluation Tuning
20.2.29. Context Partition Related Information
20.2.30. Prefer Constant Variables over Non-Constant Variables
20.2.31. Prefer Object-array Events
20.2.32. Composite or Compound Keys
20.2.33. Notes on Query Planning
20.2.34. Query Planning Expression Analysis Hints
20.2.35. Query Planning Index Hints
20.2.36. Measuring Throughput
20.2.37. Do not create the same EPL Statement X times
20.2.38. Comparing Single-Threaded and Multi-Threaded Performance
20.2.39. Incremental Versus Recomputed Aggregation for Named Window Events
20.2.40. When Does Memory Get Released
20.2.41. Measure throughput of non-matches as well as matches
20.3. Using the performance kit
20.3.1. How to use the performance kit
20.3.2. How we use the performance kit
21. References
21.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
A.7. Output for Fully-Aggregated, Grouped Queries With Rollup
A.7.1. No Output Rate Limiting
A.7.2. Output Rate Limiting - Default
A.7.3. Output Rate Limiting - All
A.7.4. Output Rate Limiting - Last
A.7.5. Output Rate Limiting - First
A.7.6. Output Rate Limiting - Snapshot
B. Reserved Keywords
Index