我有一个用例,我在多个流中聚合同一个键上的值,如下所示:
输入->窗口(15秒(->窗口(1分钟(->窗口(15分钟(->。。->out_1->out_2->out_3
在所有的窗口中,我有一个单独的KeyedProcessFunction,它对所有三个流都有一个MapState,然而,在创建MapStateDescriptor时,我对所有实例都使用相同的名称,比如:
MapStateDescriptor<长,浮动>试验=new MapStateDescriptor<gt;(">测试",Long.class,SomeObject.class(;
假定所有三个流都具有它们操作的相同密钥,则映射状态将在流之间共享,因为它在MapStateDescriptor<gt;(">测试"、Long.class、SomeObject.class(,或者它对于每个流都是唯一的
在这种情况下,我应该保持不同的名字吗?
State的作用域始终是使用它的函数/运算符。它不能与其他功能/操作员共享或从其他功能/运算符访问。所以你所做的一切都很好。