Hi,
    
一般来说,业务上如果坚持要使用大state,可以尝试下尽可能的给多并发(让每个并发都持有一部分key的state,摊平大state)和内存(尽可能减少访问落盘的数据,减少IO)来提高性能。
    对于你这个case来说,CUMULATE Window 
TVF在实现层面已经尽可能将小窗口的数据进行merge了[1]。可以dump下来看下具体是哪里的问题,是不是有进一步优化的空间。


[1] 
https://github.com/apache/flink/blob/b25dfaee80727d6662a5fd445fe51cc139a8b9eb/flink-table/flink-table-runtime/src/main/java/org/apache/flink/table/runtime/operators/window/slicing/SliceAssigners.java#L340C15-L340C15

--

    Best!
    Xuyang





在 2024-01-05 09:41:01,"jiaot...@mail.jj.cn" <jiaot...@mail.jj.cn> 写道:
>Hi All,
>         我使用了CUMULATE( STEP => INTERVAL '1' MINUTES, SIZE => INTERVAL '1' 
> DAYS) 
> 累积窗口,导致太多数据保存在状态中,即使开启了增量式RocksDB,但是当程序运行一段时间后,CK依然超时从而导致任务失败。因此想咨询对于这种大窗口大状态应该如何优化和使用。非常感谢
>注:Flink版本 1.14.0

回复