一般是按时间(比如天)来group by,state配置了超时过期的时间。
基本的去重方式就是靠state(比如RocksDbState)。
有mini-batch来减少对state的访问。

如果有倾斜,那是解倾斜问题的话题了。

Best,
Jingsong Lee


------------------------------------------------------------------
From:lvwenyuan <lvwenyuan...@163.com>
Send Time:2019年9月4日(星期三) 15:11
To:user-zh <user-zh@flink.apache.org>
Subject:Re:回复: 关于Flink SQL DISTINCT问题

对,肯定是按照窗口去重的。我就想问下,窗口去重时,所采用的方式
在 2019-09-04 14:38:29,"athlon...@gmail.com" <athlon...@gmail.com> 写道:
>在窗口内去重吧,不可能无限保留去重数据的
>
>
>
>athlon...@gmail.com
> 
>发件人: lvwenyuan
>发送时间: 2019-09-04 14:28
>收件人: user-zh
>主题: 关于Flink SQL DISTINCT问题
>各位大佬好:
>       我想问下,关于flink sql的实时去重,就是count(distinct user_id) 
> 。就是Flink内部是如何做到实时去重,如果对于数据量比较大的时候实时去重,是否会有性能问题。用的Blink Planner

回复