大家好: 版本:1.12.0 方式:flink sql 测试sql: select a.id,b.money,b.createTime from test_state_from a full join test_state_from1 b on a.id=b.id; 问题: test_state_from和test_state_from1 分别插入50万条数据,查看 checkpoint 大小为83m,state ttl 设 置为16分钟,30分钟后查看checkpoint的值还是83m,状态过期清理后的checkpoint为什么没变小?*来自志愿者整理的flink邮件归档
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
你本地的数据肯定是过期了,checkpoint size没有变化是因为你的数据总量83MB,且之后没有插入新数据,导致没有触发RocksDB的compaction,所以本地的数据没有物理上清理,而在full snapshot时候,估计你并没有开启cleanFullSnapshot [1],所以导致full snapshot时候并没有删除掉过期数据。
其实你可以查询一下状态,默认情况下,已经过期的数据是无法再查询到了。
建议开启增量checkpoint即可,过期数据即使物理不删除,也因为过期而无法再读取到了,没必要过分关注UI上的checkpoint size。
[1] https://ci.apache.org/projects/flink/flink-docs-stable/dev/stream/state/state.html#cleanup-in-full-snapshot*来自志愿者整理的flink邮件归档