www.espertech.comDocumentation
Output rate limiting provides output events to your application in regular intervals. Between intervals, the engine may use a buffer to hold data until the output condition is reached, as described below. If your application has high-volume streams, you may need to be mindful of the memory needs for buffers especially if the output condition triggers infrequently.
The output
clause with the snapshot
keyword does not require a buffer for any type of query.
The output
clause with the first
keyword does not require a buffer for any type of query.
We use the term change set to describe all insert and remove stream events that occur since the last triggering of the output condition.
You can override the default behavior for some types of queries by specifying a hint.
Please see ??? for information on the types of queries discussed below.
For queries that define output last
the engine retains only the first remove stream event and the last insert stream event, both matching the having
-clause, if present,
to compute insert and remove stream output when the output condition triggers.
Without an order-by clause:
Upon arrival of any row the engine applies the having
-clause and retains only matching events, or retains all events if there is no having
-clause.
Upon triggering of the output condition the engine computes the insert and remove stream output events according to the select
-clause for output.
With an order-by clause or when your EPL specifies the @Hint('disable_outputlimit_opt')
hint:
The engine retains the change set and computes output from the change set at the time the output condition triggers, after which it discards the change set.
Without an order-by clause:
Upon arrival of the first row since the last triggering of the output condition the engine computes the remove stream output event according to the select
-clause
for later output (when applicable).
Upon triggering of the output condition the engine computes the insert stream output event according to the select
-clause for output.
With an order-by clause or when your EPL specifies the @Hint('disable_outputlimit_opt')
hint:
The engine retains the change set and computes output from the change set at the time the output condition triggers, after which it discards the change set.
Without an order-by clause:
Upon arrival of rows the engine applies the having
-clause and computes the insert and remove stream output event according to the select
-clause
for later output (when applicable).
Upon triggering of the output condition the engine outputs the insert and remove stream output events.
With an order-by clause or when your EPL specifies the @Hint('disable_outputlimit_opt')
hint:
The engine retains the change set and computes output from the change set at the time the output condition triggers, after which it discards the change set.
Without an order-by clause:
Upon arrival of the first row since the last triggering of the output condition the engine computes the insert and remove stream output event according to the
having
-clause (if present) and the select
-clause
for later output (when applicable), retaining only the last computed insert and remove stream output event.
Upon triggering of the output condition the engine outputs the pre-computed last insert stream and remove stream output event.
With an order-by clause or when your EPL specifies the @Hint('disable_outputlimit_opt')
hint:
The engine retains the change set and computes output from the change set at the time the output condition triggers, after which it discards the change set.
Without an order-by clause:
Upon arrival of rows the engine computes the insert and remove stream output events according to the having
-clause (if present) and
the select
-clause for later output, retaining only the computed insert and remove stream output events.
Upon triggering of the output condition the engine outputs the retained output events.
With an order-by clause or when your EPL specifies the @Hint('disable_outputlimit_opt')
hint:
The engine retains the change set and computes output from the change set at the time the output condition triggers, after which it discards the change set.
Without an order-by clause:
Upon arrival of the first row for a given group since the last triggering of the output condition the engine computes the remove stream output event for that group
according to the select
-clause
for later output (when applicable), and also retains a single insert stream event per group.
Upon triggering of the output condition the engine uses the retained insert stream events per group to compute output events according to the select
-clause.
With an order-by clause or when your EPL specifies the @Hint('disable_outputlimit_opt')
hint:
The engine retains the change set and computes output from the change set at the time the output condition triggers, after which it discards the change set.
Without an order-by clause:
The engine retains, for each group, a row to represent the group.
Upon arrival of rows the engine computes the remove stream output events according to the having
-clause (if present) and
the select
-clause for later output.
Upon triggering of the output condition the engine computes the insert stream output events according to the having
-clause (if present) and
the select
-clause for output, for each group.
With an order-by clause or when your EPL specifies the @Hint('disable_outputlimit_opt')
hint:
The engine retains the change set and computes output from the change set at the time the output condition triggers, after which it discards the change set.
Without an order-by clause:
Upon arrival of the first row for a given group since the last triggering of the output condition the engine computes the insert and remove stream output event for that group
according to the select
-clause
for later output (when applicable), and retains a last insert and remove stream event per group.
Upon triggering of the output condition the engine outputs the retained insert and remove stream output events per group.
With an order-by clause or when your EPL specifies the @Hint('disable_outputlimit_opt')
hint:
The engine retains the change set and computes output from the change set at the time the output condition triggers, after which it discards the change set.
Without an order-by clause:
The engine retains, for each group, a row to represent the group.
Upon arrival of rows the engine computes the insert and remove stream output events according to the having
-clause (if present) and
the select
-clause for later output.
Upon triggering of the output condition the engine computes insert stream output events according to the having
-clause (if present) and
the select
-clause for output for each group that does not have output events yet, and outputs all events.
With an order-by clause or when your EPL specifies the @Hint('disable_outputlimit_opt')
hint:
The engine retains the change set and computes output from the change set at the time the output condition triggers, after which it discards the change set.