大家好:
版本: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为什么没变小? |
使用的state backend,以及对应的checkpoint 类型是什么(是否开启incremental checkpoint)?
在一开始插入数据后,直到state TTL超过,期间均没有再插入数据过么?还是说一直在以一定的数据量在插入数据? 祝好 唐云 ________________________________ From: 孙啸龙 <[hidden email]> Sent: Thursday, January 14, 2021 15:52 To: [hidden email] <[hidden email]> Subject: Flink sql 状态过期后,checkpoint 大小没变化 大家好: 版本: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为什么没变小? |
你好:
使用的state backend是rocksdb,没有开启增量,后续没有再插入过数据。 > 在 2021年1月14日,下午4:07,Yun Tang <[hidden email]> 写道: > > 使用的state backend,以及对应的checkpoint 类型是什么(是否开启incremental checkpoint)? > > 在一开始插入数据后,直到state TTL超过,期间均没有再插入数据过么?还是说一直在以一定的数据量在插入数据? > > > 祝好 > 唐云 > ________________________________ > From: 孙啸龙 <[hidden email]> > Sent: Thursday, January 14, 2021 15:52 > To: [hidden email] <[hidden email]> > Subject: Flink sql 状态过期后,checkpoint 大小没变化 > > 大家好: > 版本: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为什么没变小? |
Hi,
你本地的数据肯定是过期了,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 祝好 唐云 ________________________________ From: 孙啸龙 <[hidden email]> Sent: Thursday, January 14, 2021 16:11 To: [hidden email] <[hidden email]> Subject: Re: Flink sql 状态过期后,checkpoint 大小没变化 你好: 使用的state backend是rocksdb,没有开启增量,后续没有再插入过数据。 > 在 2021年1月14日,下午4:07,Yun Tang <[hidden email]> 写道: > > 使用的state backend,以及对应的checkpoint 类型是什么(是否开启incremental checkpoint)? > > 在一开始插入数据后,直到state TTL超过,期间均没有再插入数据过么?还是说一直在以一定的数据量在插入数据? > > > 祝好 > 唐云 > ________________________________ > From: 孙啸龙 <[hidden email]> > Sent: Thursday, January 14, 2021 15:52 > To: [hidden email] <[hidden email]> > Subject: Flink sql 状态过期后,checkpoint 大小没变化 > > 大家好: > 版本: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为什么没变小? |
你好:
非常谢谢, 本地的数据是过期了。 不好意思,还有几个疑问想请教下。 1.看文档,开启cleanFullSnapshot是只能对单个状态设置吗,没查到flink sql 开启cleanFullSnapshot的配置的地方?因为只看到StateTtlConfig是对于单个状态的设置,没有对job或者对table的config设置。 2.cleanFullSnapshot 开启后,从checkpoint恢复才会触发清理,不是在checkpoint过程中触发清理掉过期数据? > 在 2021年1月14日,下午4:48,Yun Tang <[hidden email]> 写道: > > Hi, > > 你本地的数据肯定是过期了,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 > > 祝好 > 唐云 > ________________________________ > From: 孙啸龙 <[hidden email]> > Sent: Thursday, January 14, 2021 16:11 > To: [hidden email] <[hidden email]> > Subject: Re: Flink sql 状态过期后,checkpoint 大小没变化 > > 你好: > 使用的state backend是rocksdb,没有开启增量,后续没有再插入过数据。 > >> 在 2021年1月14日,下午4:07,Yun Tang <[hidden email]> 写道: >> >> 使用的state backend,以及对应的checkpoint 类型是什么(是否开启incremental checkpoint)? >> >> 在一开始插入数据后,直到state TTL超过,期间均没有再插入数据过么?还是说一直在以一定的数据量在插入数据? >> >> >> 祝好 >> 唐云 >> ________________________________ >> From: 孙啸龙 <[hidden email]> >> Sent: Thursday, January 14, 2021 15:52 >> To: [hidden email] <[hidden email]> >> Subject: Flink sql 状态过期后,checkpoint 大小没变化 >> >> 大家好: >> 版本: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为什么没变小? > |
Hi
1. 目前没有全局的配置 2. 开启cleanFullSnapshot 并不会物理清除数据,只是确保checkpoint数据中没有相关过期数据 祝好 唐云 ________________________________ From: 孙啸龙 <[hidden email]> Sent: Thursday, January 14, 2021 20:43 To: [hidden email] <[hidden email]> Subject: Re: Flink sql 状态过期后,checkpoint 大小没变化 你好: 非常谢谢, 本地的数据是过期了。 不好意思,还有几个疑问想请教下。 1.看文档,开启cleanFullSnapshot是只能对单个状态设置吗,没查到flink sql 开启cleanFullSnapshot的配置的地方?因为只看到StateTtlConfig是对于单个状态的设置,没有对job或者对table的config设置。 2.cleanFullSnapshot 开启后,从checkpoint恢复才会触发清理,不是在checkpoint过程中触发清理掉过期数据? > 在 2021年1月14日,下午4:48,Yun Tang <[hidden email]> 写道: > > Hi, > > 你本地的数据肯定是过期了,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 > > 祝好 > 唐云 > ________________________________ > From: 孙啸龙 <[hidden email]> > Sent: Thursday, January 14, 2021 16:11 > To: [hidden email] <[hidden email]> > Subject: Re: Flink sql 状态过期后,checkpoint 大小没变化 > > 你好: > 使用的state backend是rocksdb,没有开启增量,后续没有再插入过数据。 > >> 在 2021年1月14日,下午4:07,Yun Tang <[hidden email]> 写道: >> >> 使用的state backend,以及对应的checkpoint 类型是什么(是否开启incremental checkpoint)? >> >> 在一开始插入数据后,直到state TTL超过,期间均没有再插入数据过么?还是说一直在以一定的数据量在插入数据? >> >> >> 祝好 >> 唐云 >> ________________________________ >> From: 孙啸龙 <[hidden email]> >> Sent: Thursday, January 14, 2021 15:52 >> To: [hidden email] <[hidden email]> >> Subject: Flink sql 状态过期后,checkpoint 大小没变化 >> >> 大家好: >> 版本: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 1.12.2 sql,想问下
1.有什么方式能本地物理上删除那些ttl过期的数据吗 2.有什么方式能checkpoint时候删除ttl过期的数据吗?让checkpoint数据不再继续增长? -- Sent from: http://apache-flink.147419.n8.nabble.com/ |
Free forum by Nabble | Edit this page |