Apache flink 不带数据接收器且打开检查点的Flink管道

Apache flink 不带数据接收器且打开检查点的Flink管道,apache-flink,flink-streaming,Apache Flink,Flink Streaming,我正在研究建造一条没有数据接收器的flink管道。i、 e我的管道在成功调用数据存储时结束 在这种情况下,如果我们不使用sink操作符,检查点将如何工作 因为检查点是基于检查点前历元(所有保持在状态或发射到接收器中的事件)和检查点后历元的概念。flink管道是否需要水槽?是的,水槽是flink执行模型的一部分: Flink中的数据流程序是实现 数据流上的转换(例如,过滤、更新状态、, 定义窗口、聚合)。数据流最初是创建的 来自各种来源(例如,消息队列、套接字流、文件)。 结果通过接收器返回,例如

我正在研究建造一条没有数据接收器的flink管道。i、 e我的管道在成功调用数据存储时结束

在这种情况下,如果我们不使用sink操作符,检查点将如何工作


因为检查点是基于检查点前历元(所有保持在状态或发射到接收器中的事件)和检查点后历元的概念。flink管道是否需要水槽?

是的,水槽是flink执行模型的一部分:

Flink中的数据流程序是实现 数据流上的转换(例如,过滤、更新状态、, 定义窗口、聚合)。数据流最初是创建的 来自各种来源(例如,消息队列、套接字流、文件)。 结果通过接收器返回,例如,接收器可以写入数据 到文件或标准输出(例如命令行 终点站)

有人可能会说,对数据存储的调用是您可以使用的实际接收器实现。您可以定义自己的接收器并在那里执行数据存储调用


我对数据存储的细节不感兴趣,但可以假设您正在序列化这些事件,并以某种方式将它们发送到数据存储。在这种情况下,您可以将所有元素流到sink操作符,并将这些元素存储在一些
ListState
中,您可以不断卸载和发送这些元素。这样,如果您的应用程序需要升级,飞行记录将不会丢失,并将在作业恢复后恢复并发送。

感谢您的澄清