这只是天上掉馅饼的头脑风暴之类的东西,不期待具体的答案,但希望得到一些指示。
我正在想象一个工作流,我们触发一个保存点,并检查保存点文件以查看特定运算符的状态 - 也许作为调试助手,或者作为实现我们可能使用可查询状态执行的操作的更简单(?)方法......
假设这可以工作,那么在重新启动相同或修改版本的作业时,修改/修复保存点中要使用的数据的可能性如何?
或者,也许或多或少从头开始生成保存点以定义新作业的初始状态?有点代替将数据输入回填状态?
这样的设施已经存在吗?我的猜测是否定的,基于我目前能够找到的内容。我将如何完成这样的事情?到目前为止,我的高层次想法是这样的:
savepoint -->
SavepointV2Serializer.deserialize -->
write to json -->
manually inspect / edit the files, or
other tooling that works with json to inspect / modify
SavepointV2Serializer.serialize -->
new savepoint
我还没有真正编写任何代码,所以我真的不知道这有多可行。思潮?
你想使用状态处理器 API,它即将作为 Flink 1.9 的一部分推出。这使得使用 Flink 的批处理 DataSet API 读取、写入和修改保存点成为可能。