通过创建 GlobalKTable 来使用 Kafka Streams,我知道根据定义,该表将在其他源的流式传输开始之前完全填充。
我正在 Apache Flink 中寻找类似的功能。 主题一保存几乎静态的配置数据。我希望 Flink 在开始阅读主题二之前充分理解这个主题。 主题一包含~5条Mio记录,总大小约为600MB
有没有办法实现这一点,或者我是否需要缓冲主题二中的数据,直到获得主题一中的匹配数据?
您可以探索几种途径来解决这个问题:
Flink 公开了一个 State Processor API,它允许您运行批处理过程,从而允许您播种作业中使用的状态。基本上读取整个主题,将其存储在与操作符关联的状态中,然后使用批处理过程中的状态运行“实际”作业(这样当它恢复时,它已经拥有所有状态数据并准备好使用)。 这是我最常用的方法。
使用混合源
旨在通过允许您顺序执行管道的某些部分来解决的问题。我想理论上你可以用它来加载你现有的状态,然后转向从其他地方读取/根本不读取。 作业前初始化