非键控流的 Flink 检查点状态
Flink checkpointing state for non-keyed stream
我是Flink新手。我正在尝试在我的应用程序中启用检查点和有状态。我从 Flink 文档中看到了我们如何存储键控状态。但我想知道我们能否存储非键控状态(ProcessFunction
的状态)
需要非键控状态有点不寻常,但是有documentation with examples。
在用户代码中,这通常仅在实现自定义源和接收器时才需要,这就是为什么示例侧重于这些用例的原因。但是在 ProcessFunction
中你会做同样的事情,即实现 CheckpointedFunction
接口(即 initializeState
和 snapshotState
方法)。
非键控状态的唯一类型是 ListState
、UnionState
和 BroadcastState
,ListState
可能是您要使用的类型。 UnionState
与 ListState
非常相似,只是在重新缩放时使用了不同的策略来重新分配状态(每个并行实例获取整个列表,而不是被分配到列表的一部分,并且实例负责知道该做什么)。 BroadcastState
是 BroadcastProcessFunction
或 KeyedBroadcastProcessFunction
所使用的。
我是Flink新手。我正在尝试在我的应用程序中启用检查点和有状态。我从 Flink 文档中看到了我们如何存储键控状态。但我想知道我们能否存储非键控状态(ProcessFunction
的状态)
需要非键控状态有点不寻常,但是有documentation with examples。
在用户代码中,这通常仅在实现自定义源和接收器时才需要,这就是为什么示例侧重于这些用例的原因。但是在 ProcessFunction
中你会做同样的事情,即实现 CheckpointedFunction
接口(即 initializeState
和 snapshotState
方法)。
非键控状态的唯一类型是 ListState
、UnionState
和 BroadcastState
,ListState
可能是您要使用的类型。 UnionState
与 ListState
非常相似,只是在重新缩放时使用了不同的策略来重新分配状态(每个并行实例获取整个列表,而不是被分配到列表的一部分,并且实例负责知道该做什么)。 BroadcastState
是 BroadcastProcessFunction
或 KeyedBroadcastProcessFunction
所使用的。