处理数据的模式是,我有一条记录流,其中包含一些信息A。这些记录由某些ID进行分片。该信息A取决于当前记录,上一次计算的结果以及较大的查找表。查找表不经常更改,更改很小。我知道我可以使用mapWithState/flatMapWithState进行状态计算。但是,我应该如何处理查找表?惯用的方式是也将其作为状态来处理(例如A),但是查找表的大小可能对于性能/内存(例如快照时)来说太可怕了。

我目前正在考虑使其成为受读取器/写入器锁保护的共享资源。有没有更好的方法来处理这种模式?

最佳答案

如前所述,目前唯一可行的方法是使用状态。我们正在研究一种替代方法。这是我们的一些想法:https://docs.google.com/document/d/1hIgxi2Zchww_5fWUHLoYiXwSBXjv-M5eOv-MKQYN3m4/edit?usp=sharing

关于apache-flink - 如何处理大型查找表,这些表在Apache Flink中很少更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37448847/

10-15 19:33