我不知道在Flink中是否有可能在运营商之间共享状态。
例如,假设我对一个操作符按键进行分区,并且我需要分区A在分区C中的一段状态(由于任何原因)(图1.a),或者我需要下游操作符F中的运算符C的状态(图1.b)。

我知道可以对所有分区进行broadcast记录。因此,如果在记录中包含操作符的内部状态,则可以与下游运算符共享内部状态。
然而,这可能是一个昂贵的操作,而不是简单地让op1专门请求op2状态。
最近围绕可查询状态的发展是朝着这个概念发展,还是只允许外部用户查询拓扑的内部状态?
预先感谢您的见解
发布于 2016-10-13 09:11:36
一般来说,Flink的设计不允许读取或写入相同或不同运算符的其他子任务的状态。正如您所说的,您可以使用broadcast使状态全局可用。可查询状态特性用于外部用户查询。
但是,我听说一些用户利用操作符中的这些特性从同一作业的其他操作符中获取数据。我不知道这有多好(稳定性和性能方面)。如果您想尝试这一点,我将向您指出用户邮件列表,以便进行更深入的技术讨论。
https://stackoverflow.com/questions/40015086
复制相似问题