在Flink的运营商之间共享状态

时间:2016-10-13 07:42:58

标签: apache-flink dataflow stream-processing

我想知道Flink是否有可能在运营商之间分享状态。

例如,假设我在操作符上按键进行分区,并且我需要在分区@NgModule({ imports: [ CommonModule, HttpModule, FormsModule, routing, JsonStringifyModule], declarations: [SettingsComponent], exports: [SettingsComponent], providers: [] }) export class SettingsModule { } 内部分区A的状态(出于任何原因)(图1.a),或者我需要下游运算符C中的运算符C的状态(图1.b)。

enter image description here

我知道可以F记录到所有分区。因此,如果在记录中包含运算符的内部状态,则可以与下游运算符共享内部状态 但是,这可能是一项昂贵的操作,而不是简单地让broadcast专门要求op1州。

围绕可查询状态的最新发展是否正朝着这个概念发展,或者它们只是为了让外部用户查询拓扑的内部状态?

提前感谢您的见解

1 个答案:

答案 0 :(得分:1)

通常,Flink的设计不允许读取或写入相同或不同运算符的其他子任务的状态。如您所说,您可以使用broadcast使全局状态可用。可查询状态功能旨在用于外部用户查询。

但是,我听说用户在运营商中利用此功能从同一作业的其他运营商处获取数据。我不知道这有多好(稳定性和性能)。如果您想尝试一下,我会指向用户邮件列表进行更深入的技术讨论。