Flink sql去重问题

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Flink sql去重问题

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


Reply | Threaded
Open this post in threaded view
|

Re: Flink sql去重问题

Leonard Xu
Hello

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

祝好,
Leonard



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