如何处理 Apache Flink 中很少更新的大型查找表
How to handle large lookup tables that update rarely in Apache Flink
处理数据的模式是我有一个记录流,其中包含一些信息 A。这些记录由一些 ID 分片。这个信息A依赖于当前记录,之前的计算结果,大查找table。查找 table 不经常更改,更改很小。我知道我可以使用 mapWithState/flatMapWithState 进行状态计算。但是,我应该如何处理查找 table?惯用的方法是也将其作为状态处理(如 A),但查找 table 的大小对于 performance/memory 来说可能是可怕的(例如,在快照时)
我目前正在考虑将其设为受 reader/writer 锁保护的共享资源。有没有更好的方法来处理这种模式?
现在唯一可能的方法就是使用状态,就像你提到的那样。我们正在研究一种替代方法。以下是我们的一些想法:https://docs.google.com/document/d/1hIgxi2Zchww_5fWUHLoYiXwSBXjv-M5eOv-MKQYN3m4/edit?usp=sharing
处理数据的模式是我有一个记录流,其中包含一些信息 A。这些记录由一些 ID 分片。这个信息A依赖于当前记录,之前的计算结果,大查找table。查找 table 不经常更改,更改很小。我知道我可以使用 mapWithState/flatMapWithState 进行状态计算。但是,我应该如何处理查找 table?惯用的方法是也将其作为状态处理(如 A),但查找 table 的大小对于 performance/memory 来说可能是可怕的(例如,在快照时)
我目前正在考虑将其设为受 reader/writer 锁保护的共享资源。有没有更好的方法来处理这种模式?
现在唯一可能的方法就是使用状态,就像你提到的那样。我们正在研究一种替代方法。以下是我们的一些想法:https://docs.google.com/document/d/1hIgxi2Zchww_5fWUHLoYiXwSBXjv-M5eOv-MKQYN3m4/edit?usp=sharing