我正在尝试在流中进行一些验证,我目前正在检查无效的卡号,并被问及是否可以保留这些无效的卡号以供将来验证。
在 Apache Flink 上实现这一目标的最佳方法是什么?
谢谢
好的,所以如果您希望能够重新启动作业并保留数据,那么我建议使用检查点的 Flink 状态。我不知道确切的用例,所以我无法判断您应该使用 KeyedState 还是运算符状态。但基本上这个想法是将卡号或您用于验证的任何内容保持在状态中,然后使用保存点取消您的作业,并且每当您想再次启动它时,您可以从给定的保存点开始。这样,您将永远不会有无效卡号的空列表。您可以在此处阅读有关该州的更多信息:https://ci.apache.org/projects/flink/flink-docs-stable/dev/stream/state/state.html
至于您要在外部存储无效卡号的情况,那么例如,您可以将无效的卡号输出并将它们下沉到Kafka或文件中。这样,您将能够在任何应用程序或组件中访问它们。您可以在此处找到有关侧面输出的更多信息:https://ci.apache.org/projects/flink/flink-docs-stable/dev/stream/side_output.html