这个想法是实现一个KeySelector
,将其输入对象映射到特定的分区键,
但是此密钥会随着时间而改变。
映射规则可以保存在例如数据库中,
并且KeySelector
会定期或按需更新它们。
我不确定这是否会导致Flink的状态或流分区机制出现问题。
例如,如果最初将输入Foo
映射到分区键0,
但后来更改为分区键1
并且键0不再使用,
Flink会在某个时候简单地“忘记”键0吗?
答案 0 :(得分:2)
不,我无法想象它如何工作。 Flink取决于确定性的KeySelector。如果您这样更改键,则任何键分区状态都将完全混乱。
但是,您可以安排Flink放弃旧密钥的状态。参见StateTtlConfig。