Object -
streams
:
HoppingWindow
The hopping window releases the events in batches defined by a time period every given time interval. The batch is
also determined by the time period given in the window. When the time interval the events being released and the
time period it hold the events are equal, the hopping window acts as a TimeBatch
window.
E.g.
from inputStream window hopping(5000, 4000)
select inputStream.name, inputStream.age, sum(inputStream.age) as sumAge, count() as count
group by inputStream.name => (TeacherOutput [] teachers) {
foreach var t in teachers {
outputStream.publish(t);
}
}
Hopping window should only have two parameters (
Constructor
__init
( function(StreamEvent[]) returns (())
nextProcessPointer, any windowParameters)
- nextProcessPointer
function(StreamEvent[]) returns (())
- windowParameters any
Methods
The process
function process the incoming events to the events and update the current state of the window.
Returns the events(State) which match with the where condition in the join clause for a given event.
Return current state to be saved as a map of any
typed values.
Restores the saved state which is passed as a map of any
typed values.
Fields
- timeInMilliSeconds int
-
description
- hoppingTime int
-
description
- windowParameters any
-
description
- nextEmitTime int -1
-
description
- currentEventQueue LinkedList
-
description
- resetEvent StreamEvent?
-
description
- nextProcessPointer
function(StreamEvent[]) returns (())
-
description
- scheduler Scheduler
-
description
The process
function process the incoming events to the events and update the current state of the window.
Parameters
- streamEvents StreamEvent[]
-
The array of stream events to be processed.
getCandidateEvents
(StreamEvent originEvent, function(map, map) returns (boolean)
conditionFunc, boolean isLHSTrigger)
Returns the events(State) which match with the where condition in the join clause for a given event.
Parameters
- originEvent StreamEvent
-
The event against which the state or the events being held by the window is matched.
-
conditionFunc
function(map, map) returns (boolean)
-
The function pointer to the lambda function which contain the condition logic in where clause.
- isLHSTrigger boolean (default true)
-
Specify if the join is triggered when the lhs stream received the events, if so it should be true. Most of the time it is true. In rare cases, where the join is triggered when the rhs stream receives events this should be false.
-
Return Type
([StreamEvent?, StreamEvent?]) Returns an array of 2 element tuples of events. A tuple contains the matching events one from lhs stream and one from rhs stream.
Return current state to be saved as a map of any
typed values.
-
Return Type
(map) A map of
any
typed values.