首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flink算子之间的共享状态

Flink算子之间的共享状态
EN

Stack Overflow用户
提问于 2019-02-04 00:00:43
回答 1查看 2.1K关注 0票数 3

这个问题已经被这里问过了,但是已经两年了,我想知道是否有什么改变。

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

  • A流是主流,它源源不断地流动
  • 流B只是一个丰富数据集。它很大(几个GBs),因此不适合作为广播流。
  • 流B有一个与它相关联的操作符(FlatMap,但可能是任何东西),它充当状态加载器,并以列表状态将丰富数据加载到RocksDB中。
代码语言:javascript
复制
- Then, I connect the streams, where I would like to have access to the **same state** that was created in the enrichment stream.

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

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-02-04 18:59:29

  1. 实际上,很难“简单地加载整个状态”,因为您无法控制加载的顺序。通常,您希望在处理任何主流之前完全加载富集数据(请参阅翻转-23)。
  2. 撇开这点不说,我不认为它是“状态加载”。基本上,您将在需要的地方缓存浓缩数据(在充实函数中)。
  3. 最后,不,我不知道一个简单的,内置的方式在Flink之间共享状态的运营商。您显然可以使用一些外部密钥值存储来启用它,但是(a)这是额外的基础设施,(b)它不会像性能一样。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54508798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档