一般是按时间(比如天)来group by,state配置了超时过期的时间。
基本的去重方式就是靠state(比如RocksDbState)。
有mini-batch来减少对state的访问。
如果有倾斜,那是解倾斜问题的话题了。
Best,
Jingsong Lee
------------------------------------------------------------------
From:lvwenyuan <
[hidden email]>
Send Time:2019年9月4日(星期三) 15:11
To:user-zh <
[hidden email]>
Subject:Re:回复: 关于Flink SQL DISTINCT问题
对,肯定是按照窗口去重的。我就想问下,窗口去重时,所采用的方式
在 2019-09-04 14:38:29,"
[hidden email]" <
[hidden email]> 写道:
>在窗口内去重吧,不可能无限保留去重数据的
>
>
>
>
[hidden email]
>
>发件人: lvwenyuan
>发送时间: 2019-09-04 14:28
>收件人: user-zh
>主题: 关于Flink SQL DISTINCT问题
>各位大佬好:
> 我想问下,关于flink sql的实时去重,就是count(distinct user_id) 。就是Flink内部是如何做到实时去重,如果对于数据量比较大的时候实时去重,是否会有性能问题。用的Blink Planner