你这个用了distinct的话,肯定就是针对全局的id进行distinct了,设置state也无效。
建议自己使用bigmap或者hyperlog算法实现一个distinct,这样可以节省内存


原始邮件
发件人:谷歌-akulakuzhan...@akulaku.com
收件人:user-zh@flink.apache.orguser...@flink.apache.org
发送时间:2019年11月26日(周二) 20:05
主题:flink检查点状态大小


streamTableEnv.getConfig().setIdleStateRetentionTime(Time.minutes(15), 
Time.minutes(20)); 
我在程序中设置状态保留时间,然后用全局group进行计算,但是过期状态没有清理导致状态也来越大,最终内存溢出,请问这是什么原因导致的 运行SQL select 
count(distinct id) as user_count,adjust_time from (select data.f13 as 
country_id,data.f1 as 
id,concat(DATE_FORMAT(FROM_UNIXTIME(data.f12/1000),'yyyy-MM-dd HH:mm'),':00') 
as adjust_time from userActionLog3) access_user_count where country_id='1' 
group by adjust_time 发送自 Windows 10 版邮件应用

回复