我可以通过状态处理器API在TumblingEventTimeWindows中读取状态吗?

时间:2019-08-23 08:35:01

标签: apache-flink flink-streaming

我在长期窗口上使用flink数据流和TumblingEventTimeWindows,能否通过1.9版本中的状态处理器api在savespoint中读取windowState的数据?

谢谢。

1 个答案:

答案 0 :(得分:3)

是的,那应该可行。您需要为窗口运算符分配一个UID,以便从保存点读取其状态,并且需要构造一个兼容的状态描述符,该描述符应类似

ListStateDescriptor<StreamRecord<T>> stateDesc =
    new ListStateDescriptor<>("window-contents", streamRecordSerializer);

更新:这似乎目前还不能完全解决,因为WindowOperator使用其窗口序列化程序作为名称空间序列化程序,这意味着状态处理器API无法反序列化TriggerContext中的状态,因为它正在使用VoidNamespaceSerializer。