概述

基本思路是使用TreeMap保存TopN数据集合。TreeMap内置小顶堆。取堆顶时间复杂度O(1)。从而提高性能。

官方实现

Flink源码 org.apache.flink.table.runtime.operators这个包下面有很多官方实现的Function可以借鉴学习。

其中rank包下的AbstractTopNFunction是官方TopN实现。