我知道 Apache Flink 有 Exactly once 的能力,它依赖于 checkpoint 机制和可重发的数据源。
按照我的理解,如果 Flink 的一个算子出现错误,它需要重新运行它的最后一个操作,所以它必须需要获取历史数据。在这种情况下,历史数据应该/可以存储在哪里?
说数据源是Apache Kafka,那我可以让Kafka存储历史数据吗?我可以让 Flink 存储历史数据吗?或者我可以让他们两个都这样做吗?如果他们两个可以一起做这件事,是不是我可以让Kafka存储一部分历史数据,让Flink存储另一部分历史数据,这样我就可以保存更多的历史数据?