Flink - 手动删除键

Flink - delete keys manually

我们有一个键控过程函数,它使用状态和在此之前立即完成的“键控”。 “key by”属性涉及事务值,因此我们希望创建许多键。但这些将是短暂的,我们预计它们不会持续超过一天。有什么方法可以从键控过程函数中手动删除与键关联的所有状态和键本身?

是否只需将关联的状态变量的值设置为 null 即可使 Flink 对其进行清理?

我们担心即使是每个键值可能留下的非常少量的剩余数据也会累积并导致巨大的状态大小。

一种解决方案是配置 state TTL 以便状态在一段时间不使用后自动删除。或者你可以在你的键控过程函数中注册一个键控定时器,并在onTimer方法中调用clear()来删除定时器触发时的状态。