Class AbstractTopNFunction
- java.lang.Object
-
- org.apache.flink.api.common.functions.AbstractRichFunction
-
- org.apache.flink.streaming.api.functions.KeyedProcessFunction<RowData,RowData,RowData>
-
- org.apache.flink.table.runtime.operators.rank.AbstractTopNFunction
-
- All Implemented Interfaces:
Serializable
,Function
,RichFunction
- Direct Known Subclasses:
AppendOnlyFirstNFunction
,AppendOnlyTopNFunction
,FastTop1Function
,RetractableTopNFunction
,UpdatableTopNFunction
public abstract class AbstractTopNFunction extends KeyedProcessFunction<RowData,RowData,RowData>
Base class for TopN Function.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.flink.streaming.api.functions.KeyedProcessFunction
KeyedProcessFunction.Context, KeyedProcessFunction.OnTimerContext
-
-
Field Summary
Fields Modifier and Type Field Description protected long
hitCount
protected InternalTypeInfo<RowData>
inputRowType
protected KeyContext
keyContext
protected boolean
outputRankNumber
protected long
rankEnd
protected long
requestCount
protected Comparator<RowData>
sortKeyComparator
protected KeySelector<RowData,RowData>
sortKeySelector
protected StateTtlConfig
ttlConfig
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected boolean
checkSortKeyInBufferRange(RowData sortKey, TopNBuffer buffer)
Checks whether the record should be put into the buffer.protected void
collectDelete(Collector<RowData> out, RowData inputRow)
protected void
collectDelete(Collector<RowData> out, RowData inputRow, long rank)
protected void
collectInsert(Collector<RowData> out, RowData inputRow)
protected void
collectInsert(Collector<RowData> out, RowData inputRow, long rank)
protected void
collectUpdateAfter(Collector<RowData> out, RowData inputRow)
protected void
collectUpdateAfter(Collector<RowData> out, RowData inputRow, long rank)
protected void
collectUpdateBefore(Collector<RowData> out, RowData inputRow)
protected void
collectUpdateBefore(Collector<RowData> out, RowData inputRow, long rank)
protected long
getDefaultTopNSize()
Gets default topN size.protected boolean
hasOffset()
protected long
initRankEnd(RowData row)
Initialize rank end.protected boolean
isInRankEnd(long rank)
protected boolean
isInRankRange(long rank)
void
open(OpenContext openContext)
Initialization method for the function.protected void
registerMetric(long heapSize)
void
setKeyContext(KeyContext keyContext)
Sets keyContext to RankFunction.-
Methods inherited from class org.apache.flink.streaming.api.functions.KeyedProcessFunction
onTimer, processElement
-
Methods inherited from class org.apache.flink.api.common.functions.AbstractRichFunction
close, getIterationRuntimeContext, getRuntimeContext, setRuntimeContext
-
-
-
-
Field Detail
-
ttlConfig
protected final StateTtlConfig ttlConfig
-
sortKeyComparator
protected Comparator<RowData> sortKeyComparator
-
outputRankNumber
protected final boolean outputRankNumber
-
inputRowType
protected final InternalTypeInfo<RowData> inputRowType
-
sortKeySelector
protected final KeySelector<RowData,RowData> sortKeySelector
-
keyContext
protected KeyContext keyContext
-
rankEnd
protected long rankEnd
-
hitCount
protected long hitCount
-
requestCount
protected long requestCount
-
-
Method Detail
-
open
public void open(OpenContext openContext) throws Exception
Description copied from interface:RichFunction
Initialization method for the function. It is called before the actual working methods (like map or join) and thus suitable for one time setup work. For functions that are part of an iteration, this method will be invoked at the beginning of each iteration superstep.The openContext object passed to the function can be used for configuration and initialization. The openContext contains some necessary information that were configured on the function in the program composition.
public class MyFilter extends RichFilterFunction<String> { private String searchString; public void open(OpenContext openContext) { // initialize the value of searchString } public boolean filter(String value) { return value.equals(searchString); } }
- Specified by:
open
in interfaceRichFunction
- Overrides:
open
in classAbstractRichFunction
- Parameters:
openContext
- The context containing information about the context in which the function is opened.- Throws:
Exception
- Implementations may forward exceptions, which are caught by the runtime. When the runtime catches an exception, it aborts the task and lets the fail-over logic decide whether to retry the task execution.
-
getDefaultTopNSize
protected long getDefaultTopNSize()
Gets default topN size.- Returns:
- default topN size
-
initRankEnd
protected long initRankEnd(RowData row) throws Exception
Initialize rank end.- Parameters:
row
- input record- Returns:
- rank end
- Throws:
Exception
-
checkSortKeyInBufferRange
protected boolean checkSortKeyInBufferRange(RowData sortKey, TopNBuffer buffer)
Checks whether the record should be put into the buffer.- Parameters:
sortKey
- sortKey to testbuffer
- buffer to add- Returns:
- true if the record should be put into the buffer.
-
registerMetric
protected void registerMetric(long heapSize)
-
collectUpdateAfter
protected void collectUpdateAfter(Collector<RowData> out, RowData inputRow, long rank)
-
collectUpdateBefore
protected void collectUpdateBefore(Collector<RowData> out, RowData inputRow, long rank)
-
isInRankEnd
protected boolean isInRankEnd(long rank)
-
isInRankRange
protected boolean isInRankRange(long rank)
-
hasOffset
protected boolean hasOffset()
-
setKeyContext
public void setKeyContext(KeyContext keyContext)
Sets keyContext to RankFunction.- Parameters:
keyContext
- keyContext of current function.
-
-