Apache flink Kinesis数据分析Flink:不断增加检查点大小

Apache flink Kinesis数据分析Flink:不断增加检查点大小,apache-flink,flink-streaming,amazon-kinesis-analytics,Apache Flink,Flink Streaming,Amazon Kinesis Analytics,我正在使用AWS Kinesis数据分析(KDA)服务运行一个Flink应用程序。随着时间的推移,我的KDA Flink应用程序最后一个检查点的大小似乎在稳步增长。在所附的图表中,您可以看到检查点大小突然下降,这与我将更改推送到应用程序时的情况相符,导致它拍摄快照、更新,然后从快照恢复。我担心的是,一旦应用程序不再被积极开发,更改将不会被定期部署,检查点的大小最终可能会变得太大 有人知道什么会导致检查点的大小不断增长而没有尽头吗?我在所有重要状态上使用状态TTL,并在应用程序代码中删除不再需要的

我正在使用AWS Kinesis数据分析(KDA)服务运行一个Flink应用程序。随着时间的推移,我的KDA Flink应用程序最后一个检查点的大小似乎在稳步增长。在所附的图表中,您可以看到检查点大小突然下降,这与我将更改推送到应用程序时的情况相符,导致它拍摄快照、更新,然后从快照恢复。我担心的是,一旦应用程序不再被积极开发,更改将不会被定期部署,检查点的大小最终可能会变得太大

有人知道什么会导致检查点的大小不断增长而没有尽头吗?我在所有重要状态上使用状态TTL,并在应用程序代码中删除不再需要的状态。检查点大小的增加是否表明我在处理状态的代码中有一个bug,或者这里可能存在其他问题

更新:请参阅以获得更好的答案


AWS动态数据分析(KDA)目前基于Flink 1.8,其中关于状态清理适用

注意

默认情况下,若未读取过期状态,则不会将其删除,可能会导致状态不断增长

您还可以在完整快照(似乎正在发生)和(听起来像是您想要的)期间激活清理。请注意,对于某些工作负载,即使启用了后台清理,后台清理的默认设置可能不足以跟上应清理状态的速率,并且可能需要进行一些调整

顺便说一下,从Flink 1.10开始,默认情况下启用背景清理


如果这不能回答您的问题,请准确说明如何配置状态TTL。

感谢您的快速回复!,后续问题:如果我有MapState并显式调用someMapState.remove(someKey),该键的数据是否会被删除,即使我再也没有读过它,或者它只是标记为要删除,但仍然存在于RocksDB中?someMapState.remove(someKey)会删除someKey的RocksDB条目。someMapState.clear()删除当前流密钥的整个映射。