多个 window 流之间的 MapState 值

MapState values in between multiple window streams

我有一个用例,我在多个流中聚合同一个键的值,如下所示:

输入 -> window(15 秒) -> window(1 分钟) -> window(15 分钟) -> ... -> out_1 -> out_2 -> out_3

在所有 windows 中,我有一个单独的 KeyedProcessFunction,它具有用于所有三个流的 MapState,但是我在创建 MapStateDescriptor 时对所有实例使用相同的名称,例如:

MapStateDescriptor 测试 = new MapStateDescriptor<>("test", Long.class, SomeObject.class);

鉴于所有三个流都具有相同的键,它们将在其上运行,mapstate 将在流之间共享,因为它在 MapStateDescriptor<>("test 中具有相同的名称", Long.class, SomeObject.class) 或者它对于每个流都是唯一的

在那种情况下我应该保留不同的名称吗?

State 始终限定在使用它的 function/operator 范围内。它不能与其他 functions/operators 共享或访问。所以你做的很好。