gpt4 book ai didi

apache-flink - Flink 算子间共享状态

转载 作者:行者123 更新时间:2023-12-04 04:40:21 26 4
gpt4 key购买 nike

这个问题已经被问过here但自从两年过去了,我想知道是否有任何改变。

我有一个用例,我想在两个 Flink 运算符之间共享状态:

desired stream diagram

  • A流是主流,源源不断
  • 流 B 只是丰富数据的数据集。它很大(几 GB),因此不适合作为广播流。
  • Stream B 有一个与之关联的运算符(FlatMap,但实际上可以是任何东西)充当状态加载器并将丰富数据作为列表状态加载到 RocksDB 中。

    • 然后,我连接流,我想在其中访问在丰富流中创建的相同状态

最后,我知道在使用“co”函数连接流后,我可以简单地加载整个状态。只是从软件工程的角度来看,将职责分为“状态加载器”类和实际的“数据丰富器”类似乎更清晰,所以我只想知道这是否可能。

谢谢。

最佳答案

  1. 实际上很难“简单地加载整个状态”,因为您无法控制加载的顺序。通常,您希望在处理任何主流之前完全加载丰富数据(参见 FLIP-23 )。
  2. 撇开这个不谈,我不会将其视为“状态加载”。基本上,您是在需要的地方缓存扩充数据(在扩充函数中)。
  3. 最后,不,我不知道 Flink 中有一种简单的内置方法可以在操作符之间共享状态。您显然可以使用一些外部键值存储来实现这一点,但 (a) 这是额外的基础设施,并且 (b) 它不会那么高效。

关于apache-flink - Flink 算子间共享状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54508798/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com