Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • It first checks, if the maxWindowTime is reached. In this case all internal buffers for each group is cleared, where the first element is older than the given threashold.
  • After then, it checks, if closewindowafternoupdatesfor is set and closes all buffers where the last element has reached the buffer a time longer than the parameter.
  • The operator determines the group (partition) for the current input.
  • After that, if set, the clear condition is checked for the current group and the current input.
  • If the window for this group is already opened the next step is to check,
    • if the end condition is true. Then the operator creates an output. Typically, the whole window is written and the buffer is cleared. With the clear and advanceWhen condition, this behaviour can be changed.
    • if the end condition is false, the current element is added to the window and kept inside the operator.
  • If the window for this group is not opened, the start condition is checked. It the condition is true, the operator opens a new window and adds the current element to the window.

...

  • start: The start condition for a predicate window. If the condition evaluates to true, the windows is opened until the end predicate evaluates to true (or if not given the start predicate evaluates to false). Note, that all elements that are not inside a window are send to ouput port 1
  • end: The end condition for a predicate window. The tuple for which this condition is evaluated to true is only part of the result, if keepEndingElement is set to true!
  • clear: If this parameter is set, the window will only be cleared, if the condition is true. By this, the same element can be part of multiple windows (sliding)
  • sameStartTime: For predicate windows: If set to true, all produced elements get the same start timestamp
  • size: The maximum size of the window. Can be either a single number or a pair of a number and a time unit. Possible values for the unit are one of TimeUnit like SECONDS, NANOSECODS etc. - default time is the base time of the stream (typically milliseconds)
  • keepEndingElement: Typically, the object that fulfils the end condition will not be part of the result. If setting this attribute to true, the element will be part

  • partition: Evaluate the predicates on partitioned defined by different values of this attribute (similar to group by in aggreation)

  • useElementOnlyForStartOrEnd: Typically, an object is only used to evaluate the start or the end condition. If this value is set to true, an element can be used for both and can be part of multiple windows.
  • keepTimeOrder: If set to false, the output could be out of order.
  • closeWindowWithHeartbeat: if true, the window is closed when a heartbeat is received. Take a look at the session window to see how it works.
  • closewindowafternoupdatesfor: A time parameter by which the window could be closed if some time no new element reaches the buffer. Mostly makes sense for partioned windows but works also with heartbeats.

Parameters for MaxWindowTime

...