You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by "hl9902@126.com" <hl...@126.com> on 2020/11/04 06:48:07 UTC

不同的算子能共用一个状态吗?

Hi,all:
我定义了两个flatmap算子(op1和op2),op1里面定义了一个MapState变量,我想在op2里面直接用这个状态,可以吗?
我感觉是不行的,没有找到相关的api。请各位大佬帮忙明确一下。



hl9902@126.com

Re: Re: 不同的算子能共用一个状态吗?

Posted by 赵一旦 <hi...@gmail.com>.
可以的话,使用ConnectedStream即可。
StreamA和StreamB连接之后的算子中定义2个MapState状态即可。

hl9902@126.com <hl...@126.com> 于2020年11月4日周三 下午3:08写道:

> 感谢。我这个场景中op1和op2是串行的,那只能把op1的状态也发到下游的op2。
>
>
>
> hl9902@126.com
>
> 发件人: Qi Kang
> 发送时间: 2020-11-04 14:53
> 收件人: user-zh
> 主题: Re: 不同的算子能共用一个状态吗?
> Hi,
>
>
> Flink不支持算子共享状态。如果你的op1和op2是并行的,就只能利用外部存储间接地共享状态数据。如果是串行的(op2在op1的下游),也可以尝试考虑把op1产生的状态数据作为流元素发送到op2中去。希望对你有所帮助。
>
>
> > On Nov 4, 2020, at 14:48, hl9902@126.com wrote:
> >
> > Hi,all:
> > 我定义了两个flatmap算子(op1和op2),op1里面定义了一个MapState变量,我想在op2里面直接用这个状态,可以吗?
> > 我感觉是不行的,没有找到相关的api。请各位大佬帮忙明确一下。
> >
> >
> >
> > hl9902@126.com
>
>

Re: Re: 不同的算子能共用一个状态吗?

Posted by "hl9902@126.com" <hl...@126.com>.
感谢。我这个场景中op1和op2是串行的,那只能把op1的状态也发到下游的op2。



hl9902@126.com
 
发件人: Qi Kang
发送时间: 2020-11-04 14:53
收件人: user-zh
主题: Re: 不同的算子能共用一个状态吗?
Hi,
 
Flink不支持算子共享状态。如果你的op1和op2是并行的,就只能利用外部存储间接地共享状态数据。如果是串行的(op2在op1的下游),也可以尝试考虑把op1产生的状态数据作为流元素发送到op2中去。希望对你有所帮助。
 
 
> On Nov 4, 2020, at 14:48, hl9902@126.com wrote:
> 
> Hi,all:
> 我定义了两个flatmap算子(op1和op2),op1里面定义了一个MapState变量,我想在op2里面直接用这个状态,可以吗?
> 我感觉是不行的,没有找到相关的api。请各位大佬帮忙明确一下。
> 
> 
> 
> hl9902@126.com
 

Re: 不同的算子能共用一个状态吗?

Posted by Qi Kang <mi...@126.com>.
Hi,

Flink不支持算子共享状态。如果你的op1和op2是并行的,就只能利用外部存储间接地共享状态数据。如果是串行的(op2在op1的下游),也可以尝试考虑把op1产生的状态数据作为流元素发送到op2中去。希望对你有所帮助。


> On Nov 4, 2020, at 14:48, hl9902@126.com wrote:
> 
> Hi,all:
> 我定义了两个flatmap算子(op1和op2),op1里面定义了一个MapState变量,我想在op2里面直接用这个状态,可以吗?
> 我感觉是不行的,没有找到相关的api。请各位大佬帮忙明确一下。
> 
> 
> 
> hl9902@126.com