Class AbstractTopNFunction
- java.lang.Object
-
- org.apache.flink.api.common.functions.AbstractRichFunction
-
- 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>
-
- org.apache.flink.table.runtime.operators.rank.AbstractTopNFunction
-
- All Implemented Interfaces:
Serializable,org.apache.flink.api.common.functions.Function,org.apache.flink.api.common.functions.RichFunction
- Direct Known Subclasses:
AppendOnlyFirstNFunction,AppendOnlyTopNFunction,FastTop1Function,RetractableTopNFunction,UpdatableTopNFunction
public abstract class AbstractTopNFunction extends 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>Base class for TopN Function.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected longhitCountprotected InternalTypeInfo<org.apache.flink.table.data.RowData>inputRowTypeprotected org.apache.flink.streaming.api.operators.KeyContextkeyContextprotected booleanoutputRankNumberprotected longrankEndprotected longrequestCountprotected Comparator<org.apache.flink.table.data.RowData>sortKeyComparatorprotected org.apache.flink.api.java.functions.KeySelector<org.apache.flink.table.data.RowData,org.apache.flink.table.data.RowData>sortKeySelectorprotected org.apache.flink.api.common.state.StateTtlConfigttlConfig
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleancheckSortKeyInBufferRange(org.apache.flink.table.data.RowData sortKey, TopNBuffer buffer)Checks whether the record should be put into the buffer.protected voidcollectDelete(org.apache.flink.util.Collector<org.apache.flink.table.data.RowData> out, org.apache.flink.table.data.RowData inputRow)protected voidcollectDelete(org.apache.flink.util.Collector<org.apache.flink.table.data.RowData> out, org.apache.flink.table.data.RowData inputRow, long rank)protected voidcollectInsert(org.apache.flink.util.Collector<org.apache.flink.table.data.RowData> out, org.apache.flink.table.data.RowData inputRow)protected voidcollectInsert(org.apache.flink.util.Collector<org.apache.flink.table.data.RowData> out, org.apache.flink.table.data.RowData inputRow, long rank)protected voidcollectUpdateAfter(org.apache.flink.util.Collector<org.apache.flink.table.data.RowData> out, org.apache.flink.table.data.RowData inputRow)protected voidcollectUpdateAfter(org.apache.flink.util.Collector<org.apache.flink.table.data.RowData> out, org.apache.flink.table.data.RowData inputRow, long rank)protected voidcollectUpdateBefore(org.apache.flink.util.Collector<org.apache.flink.table.data.RowData> out, org.apache.flink.table.data.RowData inputRow)protected voidcollectUpdateBefore(org.apache.flink.util.Collector<org.apache.flink.table.data.RowData> out, org.apache.flink.table.data.RowData inputRow, long rank)protected longgetDefaultTopNSize()Gets default topN size.protected booleanhasOffset()protected longinitRankEnd(org.apache.flink.table.data.RowData row)Initialize rank end.protected booleanisInRankEnd(long rank)protected booleanisInRankRange(long rank)voidopen(org.apache.flink.configuration.Configuration parameters)protected voidregisterMetric(long heapSize)voidsetKeyContext(org.apache.flink.streaming.api.operators.KeyContext keyContext)Sets keyContext to RankFunction.-
Methods inherited from class org.apache.flink.streaming.api.functions.KeyedProcessFunction
onTimer, processElement
-
-
-
-
Field Detail
-
ttlConfig
protected final org.apache.flink.api.common.state.StateTtlConfig ttlConfig
-
sortKeyComparator
protected Comparator<org.apache.flink.table.data.RowData> sortKeyComparator
-
outputRankNumber
protected final boolean outputRankNumber
-
inputRowType
protected final InternalTypeInfo<org.apache.flink.table.data.RowData> inputRowType
-
sortKeySelector
protected final org.apache.flink.api.java.functions.KeySelector<org.apache.flink.table.data.RowData,org.apache.flink.table.data.RowData> sortKeySelector
-
keyContext
protected org.apache.flink.streaming.api.operators.KeyContext keyContext
-
rankEnd
protected long rankEnd
-
hitCount
protected long hitCount
-
requestCount
protected long requestCount
-
-
Method Detail
-
open
public void open(org.apache.flink.configuration.Configuration parameters) throws Exception- Specified by:
openin interfaceorg.apache.flink.api.common.functions.RichFunction- Overrides:
openin classorg.apache.flink.api.common.functions.AbstractRichFunction- Throws:
Exception
-
getDefaultTopNSize
protected long getDefaultTopNSize()
Gets default topN size.- Returns:
- default topN size
-
initRankEnd
protected long initRankEnd(org.apache.flink.table.data.RowData row) throws ExceptionInitialize rank end.- Parameters:
row- input record- Returns:
- rank end
- Throws:
Exception
-
checkSortKeyInBufferRange
protected boolean checkSortKeyInBufferRange(org.apache.flink.table.data.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)
-
collectInsert
protected void collectInsert(org.apache.flink.util.Collector<org.apache.flink.table.data.RowData> out, org.apache.flink.table.data.RowData inputRow, long rank)
-
collectInsert
protected void collectInsert(org.apache.flink.util.Collector<org.apache.flink.table.data.RowData> out, org.apache.flink.table.data.RowData inputRow)
-
collectDelete
protected void collectDelete(org.apache.flink.util.Collector<org.apache.flink.table.data.RowData> out, org.apache.flink.table.data.RowData inputRow, long rank)
-
collectDelete
protected void collectDelete(org.apache.flink.util.Collector<org.apache.flink.table.data.RowData> out, org.apache.flink.table.data.RowData inputRow)
-
collectUpdateAfter
protected void collectUpdateAfter(org.apache.flink.util.Collector<org.apache.flink.table.data.RowData> out, org.apache.flink.table.data.RowData inputRow, long rank)
-
collectUpdateAfter
protected void collectUpdateAfter(org.apache.flink.util.Collector<org.apache.flink.table.data.RowData> out, org.apache.flink.table.data.RowData inputRow)
-
collectUpdateBefore
protected void collectUpdateBefore(org.apache.flink.util.Collector<org.apache.flink.table.data.RowData> out, org.apache.flink.table.data.RowData inputRow, long rank)
-
collectUpdateBefore
protected void collectUpdateBefore(org.apache.flink.util.Collector<org.apache.flink.table.data.RowData> out, org.apache.flink.table.data.RowData inputRow)
-
isInRankEnd
protected boolean isInRankEnd(long rank)
-
isInRankRange
protected boolean isInRankRange(long rank)
-
hasOffset
protected boolean hasOffset()
-
setKeyContext
public void setKeyContext(org.apache.flink.streaming.api.operators.KeyContext keyContext)
Sets keyContext to RankFunction.- Parameters:
keyContext- keyContext of current function.
-
-