public abstract class WindowsGrouping extends Object implements Closeable
Assign windows and trigger aggregate calculation based on WindowsGrouping
. It can
avoid data expansion in time sliding window case.
Tumbling window case Each keyed window corresponds to only one element in the WindowsGrouping
Buffer (grouping keys, assigned windows, agg buffers).
Sliding window case 1. If the assign pane optimization strategy is used, each keyed window
corresponding to WindowsGrouping
buffer contains windowsSize/paneSize number of elements
(assuming 1s/24h window, there are 86400 elements). 2. Otherwise, the maximum number of elements
in WindowsGrouping
buffer is the maximum number of inputs in a sliding window.
In most cases, assign pane optimization should be applied, so there should not be much data in
WindowsGrouping
, and HeapWindowsGrouping
is basically okay.
Modifier and Type | Method and Description |
---|---|
void |
addInputToBuffer(BinaryRowData input) |
protected abstract void |
addIntoBuffer(BinaryRowData input) |
void |
advanceWatermarkToTriggerAllWindows()
Advance the watermark to trigger all the possible windows.
|
RowIterator<BinaryRowData> |
buildTriggerWindowElementsIterator() |
TimeWindow |
getTriggerWindow() |
boolean |
hasTriggerWindow()
Check if there are windows could be triggered according to the current watermark.
|
protected abstract RowIterator<BinaryRowData> |
newBufferIterator(int startIndex) |
protected abstract void |
onBufferEvict(int limitIndex) |
void |
reset()
Reset for next group.
|
protected abstract void |
resetBuffer() |
public void reset()
public void addInputToBuffer(BinaryRowData input) throws IOException
IOException
public void advanceWatermarkToTriggerAllWindows()
public boolean hasTriggerWindow()
public RowIterator<BinaryRowData> buildTriggerWindowElementsIterator()
public TimeWindow getTriggerWindow()
protected abstract void resetBuffer()
protected abstract void addIntoBuffer(BinaryRowData input) throws IOException
IOException
protected abstract void onBufferEvict(int limitIndex)
protected abstract RowIterator<BinaryRowData> newBufferIterator(int startIndex)
Copyright © 2014–2024 The Apache Software Foundation. All rights reserved.