You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by "guaishushu1103@163.com" <gu...@163.com> on 2021/01/22 02:53:48 UTC

Flink sql去重问题

    看到社区文档说是Blink的去重是一种特殊Top-N。经了解Top-N会保留一个最小堆,麻烦问下那其他数据是被机制清除了,还是会保存在内存中呀。用了这个Blink去重还需要用Idle State Retention Time来设置状态的TTL吗?



guaishushu1103@163.com

Re: Flink sql去重问题

Posted by Leonard Xu <xb...@gmail.com>.
Hello

特殊的Top-N是说去重的语义是Top 1, 所以只用保留一个大小的堆,其底层实现和其他Top-N的数据结构不一样,并不需要维护一个堆,  其他的数据根据语义 要么被丢掉,要么撤回下发新值,另外这种有状态的算子,数据都是放在state里的,设置的TTL是生效的,表示state中的数据有效期时多久,这个数据会用来判断新来的数据是丢掉还是撤回旧值并下发新的值。

祝好,
Leonard 



> 在 2021年1月22日,10:53,guaishushu1103@163.com 写道:
> 
>     看到社区文档说是Blink的去重是一种特殊Top-N。经了解Top-N会保留一个最小堆,麻烦问下那其他数据是被机制清除了,还是会保存在内存中呀。用了这个Blink去重还需要用Idle State Retention Time来设置状态的TTL吗?
> 
> guaishushu1103@163.com <ma...@163.com>