public class UpdatableTopNFunction extends AbstractTopNFunction implements org.apache.flink.streaming.api.checkpoint.CheckpointedFunction
RetractableTopNFunction which only hold top n data in state, and keep sorted map in heap.
However, the function only works in some special scenarios: 1. sort field collation is ascending
and its mono is decreasing, or sort field collation is descending and its mono is increasing 2.
input data has unique keys and unique key must contain partition key 3. input stream could not
contain DELETE record or UPDATE_BEFORE recordhitCount, inputRowType, keyContext, outputRankNumber, rankEnd, requestCount, sortKeyComparator, sortKeySelector, ttlConfig| Constructor and Description |
|---|
UpdatableTopNFunction(org.apache.flink.api.common.state.StateTtlConfig ttlConfig,
InternalTypeInfo<org.apache.flink.table.data.RowData> inputRowType,
RowDataKeySelector rowKeySelector,
GeneratedRecordComparator generatedRecordComparator,
RowDataKeySelector sortKeySelector,
RankType rankType,
RankRange rankRange,
boolean generateUpdateBefore,
boolean outputRankNumber,
long cacheSize) |
| Modifier and Type | Method and Description |
|---|---|
void |
initializeState(org.apache.flink.runtime.state.FunctionInitializationContext context) |
void |
open(org.apache.flink.api.common.functions.OpenContext openContext) |
void |
processElement(org.apache.flink.table.data.RowData input,
org.apache.flink.streaming.api.functions.KeyedProcessFunction.Context context,
org.apache.flink.util.Collector<org.apache.flink.table.data.RowData> out) |
void |
snapshotState(org.apache.flink.runtime.state.FunctionSnapshotContext context) |
checkSortKeyInBufferRange, collectDelete, collectDelete, collectInsert, collectInsert, collectUpdateAfter, collectUpdateAfter, collectUpdateBefore, collectUpdateBefore, getDefaultTopNSize, hasOffset, initRankEnd, isInRankEnd, isInRankRange, registerMetric, setKeyContextpublic UpdatableTopNFunction(org.apache.flink.api.common.state.StateTtlConfig ttlConfig,
InternalTypeInfo<org.apache.flink.table.data.RowData> inputRowType,
RowDataKeySelector rowKeySelector,
GeneratedRecordComparator generatedRecordComparator,
RowDataKeySelector sortKeySelector,
RankType rankType,
RankRange rankRange,
boolean generateUpdateBefore,
boolean outputRankNumber,
long cacheSize)
public void open(org.apache.flink.api.common.functions.OpenContext openContext)
throws Exception
open in interface org.apache.flink.api.common.functions.RichFunctionopen in class AbstractTopNFunctionExceptionpublic void initializeState(org.apache.flink.runtime.state.FunctionInitializationContext context)
throws Exception
initializeState in interface org.apache.flink.streaming.api.checkpoint.CheckpointedFunctionExceptionpublic void processElement(org.apache.flink.table.data.RowData input,
org.apache.flink.streaming.api.functions.KeyedProcessFunction.Context context,
org.apache.flink.util.Collector<org.apache.flink.table.data.RowData> out)
throws Exception
processElement in class org.apache.flink.streaming.api.functions.KeyedProcessFunction<org.apache.flink.table.data.RowData,org.apache.flink.table.data.RowData,org.apache.flink.table.data.RowData>ExceptionCopyright © 2014–2024 The Apache Software Foundation. All rights reserved.