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 "Robert.Zhang" <17...@qq.com> on 2020/07/13 13:49:55 UTC

flink state

Hello,all
目前stream中遇到一个问题,
想使用一个全局的state 在所有的keyed stream中使用,或者global parameter,主要的需求在于是这个state是可变的,需要对其进行修改并且对所有stream operator可见,大家有遇到过类似场景或者可以提供相关思路么,感激不尽


Best regards

回复: 回复:答复: flink state

Posted by "Robert.Zhang" <17...@qq.com>.
感谢各位答疑,可能确实要借助其他方式来间接实现了,thanku all



------------------&nbsp;原始邮件&nbsp;------------------
发件人: "Congxian Qiu"<qcx978132955@gmail.com&gt;; 
发送时间: 2020年7月16日(星期四) 中午1:01
收件人: "user-zh"<user-zh@flink.apache.org&gt;; 
主题: Re: 回复:答复: flink state



Hi
&nbsp;&nbsp;&nbsp; broadcast state 是无法修改的,如果你还希望进行修改的话,可以使用 zhao liang 的方法,另外如果这个全局 state
不需要维护一致性等的话,同样可以考虑放到外存中(Redis,HBase 等)

Best,
Congxian


zhao liang <zhaoawd@gmail.com&gt; 于2020年7月15日周三 下午6:05写道:

&gt; Broadcast
&gt; state是无法满足你的要求的,估计你只能像我这样把涉及的state数据融入到数据流中,在算子中针对不同的类型数据做区分了,等于人工维持这个broadcast的流的变化。
&gt;
&gt; 发件人: Robert.Zhang <173603082@qq.com&gt;
&gt; 日期: 星期三, 2020年7月15日 15:22
&gt; 收件人: user-zh <user-zh@flink.apache.org&gt;, user-zh@flink.apache.org <
&gt; user-zh@flink.apache.org&gt;
&gt; 主题: 回复:答复: flink state
&gt; 是这样的,问题在于我需要使用keyed state 来修改broadcast state,比如根据keyed
&gt; state把某些满足条件的key存入这个broadcast state,并在其他算子计算的时候使用这个broadcast
&gt; state,比如需要这些key来做
&gt; 文档中提到的nonbroadcast side是无法修改broadcast state的,是read-only,
&gt; 似乎无法直接去实现
&gt;
&gt;
&gt;
&gt;
&gt;
&gt; ------------------&amp;nbsp;原始邮件&amp;nbsp;------------------
&gt; 发件人: "zhao liang"<zhaoawd@gmail.com&amp;gt;;
&gt; 发送时间: 2020年7月14日(星期二) 下午4:09
&gt; 收件人: "user-zh"<user-zh@flink.apache.org&amp;gt;;
&gt; 主题: 答复: flink state
&gt;
&gt;
&gt;
&gt; 我这边有个类似的实现,需要根据维表数据改变stream的处理,自定义了一个source(从MySQL中定时刷维表数据),kafka的stream
&gt; union这个维表数据流,
&gt; 额外增加一个数据类型(维表类型或者事实数据)进行数据的处理,后续算子将这个维表进行不同的处理并存到对应算子的state中。
&gt;
&gt; 发件人: Congxian Qiu <qcx978132955@gmail.com&amp;gt;
&gt; 日期: 星期二, 2020年7月14日 14:03
&gt; 收件人: user-zh <user-zh@flink.apache.org&amp;gt;
&gt; 主题: Re: flink state
&gt; Hi Robert
&gt;
&gt; Boardcast state[1] 是否满足你的需求呢?另外也可以看下这篇文章[2]
&gt;
&gt; [1]
&gt;
&gt; https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/dev/stream/state/broadcast_state.html
&gt; [2] https://cloud.tencent.com/developer/article/1509789
&gt; Best,
&gt; Congxian
&gt;
&gt;
&gt; Robert.Zhang <173603082@qq.com&amp;gt; 于2020年7月13日周一 下午9:50写道:
&gt;
&gt; &amp;gt; Hello,all
&gt; &amp;gt; 目前stream中遇到一个问题,
&gt; &amp;gt; 想使用一个全局的state 在所有的keyed stream中使用,或者global
&gt; &amp;gt; parameter,主要的需求在于是这个state是可变的,需要对其进行修改并且对所有stream
&gt; &amp;gt; operator可见,大家有遇到过类似场景或者可以提供相关思路么,感激不尽
&gt; &amp;gt;
&gt; &amp;gt;
&gt; &amp;gt; Best regards
&gt;

Re: 回复:答复: flink state

Posted by Congxian Qiu <qc...@gmail.com>.
Hi
    broadcast state 是无法修改的,如果你还希望进行修改的话,可以使用 zhao liang 的方法,另外如果这个全局 state
不需要维护一致性等的话,同样可以考虑放到外存中(Redis,HBase 等)

Best,
Congxian


zhao liang <zh...@gmail.com> 于2020年7月15日周三 下午6:05写道:

> Broadcast
> state是无法满足你的要求的,估计你只能像我这样把涉及的state数据融入到数据流中,在算子中针对不同的类型数据做区分了,等于人工维持这个broadcast的流的变化。
>
> 发件人: Robert.Zhang <17...@qq.com>
> 日期: 星期三, 2020年7月15日 15:22
> 收件人: user-zh <us...@flink.apache.org>, user-zh@flink.apache.org <
> user-zh@flink.apache.org>
> 主题: 回复:答复: flink state
> 是这样的,问题在于我需要使用keyed state 来修改broadcast state,比如根据keyed
> state把某些满足条件的key存入这个broadcast state,并在其他算子计算的时候使用这个broadcast
> state,比如需要这些key来做
> 文档中提到的nonbroadcast side是无法修改broadcast state的,是read-only,
> 似乎无法直接去实现
>
>
>
>
>
> ------------------&nbsp;原始邮件&nbsp;------------------
> 发件人: "zhao liang"<zhaoawd@gmail.com&gt;;
> 发送时间: 2020年7月14日(星期二) 下午4:09
> 收件人: "user-zh"<user-zh@flink.apache.org&gt;;
> 主题: 答复: flink state
>
>
>
> 我这边有个类似的实现,需要根据维表数据改变stream的处理,自定义了一个source(从MySQL中定时刷维表数据),kafka的stream
> union这个维表数据流,
> 额外增加一个数据类型(维表类型或者事实数据)进行数据的处理,后续算子将这个维表进行不同的处理并存到对应算子的state中。
>
> 发件人: Congxian Qiu <qcx978132955@gmail.com&gt;
> 日期: 星期二, 2020年7月14日 14:03
> 收件人: user-zh <user-zh@flink.apache.org&gt;
> 主题: Re: flink state
> Hi Robert
>
> Boardcast state[1] 是否满足你的需求呢?另外也可以看下这篇文章[2]
>
> [1]
>
> https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/dev/stream/state/broadcast_state.html
> [2] https://cloud.tencent.com/developer/article/1509789
> Best,
> Congxian
>
>
> Robert.Zhang <173603082@qq.com&gt; 于2020年7月13日周一 下午9:50写道:
>
> &gt; Hello,all
> &gt; 目前stream中遇到一个问题,
> &gt; 想使用一个全局的state 在所有的keyed stream中使用,或者global
> &gt; parameter,主要的需求在于是这个state是可变的,需要对其进行修改并且对所有stream
> &gt; operator可见,大家有遇到过类似场景或者可以提供相关思路么,感激不尽
> &gt;
> &gt;
> &gt; Best regards
>

答复: 回复:答复: flink state

Posted by zhao liang <zh...@gmail.com>.
Broadcast state是无法满足你的要求的,估计你只能像我这样把涉及的state数据融入到数据流中,在算子中针对不同的类型数据做区分了,等于人工维持这个broadcast的流的变化。

发件人: Robert.Zhang <17...@qq.com>
日期: 星期三, 2020年7月15日 15:22
收件人: user-zh <us...@flink.apache.org>, user-zh@flink.apache.org <us...@flink.apache.org>
主题: 回复:答复: flink state
是这样的,问题在于我需要使用keyed state 来修改broadcast state,比如根据keyed state把某些满足条件的key存入这个broadcast state,并在其他算子计算的时候使用这个broadcast state,比如需要这些key来做
文档中提到的nonbroadcast side是无法修改broadcast state的,是read-only,
似乎无法直接去实现





------------------&nbsp;原始邮件&nbsp;------------------
发件人: "zhao liang"<zhaoawd@gmail.com&gt;;
发送时间: 2020年7月14日(星期二) 下午4:09
收件人: "user-zh"<user-zh@flink.apache.org&gt;;
主题: 答复: flink state



我这边有个类似的实现,需要根据维表数据改变stream的处理,自定义了一个source(从MySQL中定时刷维表数据),kafka的stream union这个维表数据流,
额外增加一个数据类型(维表类型或者事实数据)进行数据的处理,后续算子将这个维表进行不同的处理并存到对应算子的state中。

发件人: Congxian Qiu <qcx978132955@gmail.com&gt;
日期: 星期二, 2020年7月14日 14:03
收件人: user-zh <user-zh@flink.apache.org&gt;
主题: Re: flink state
Hi Robert

Boardcast state[1] 是否满足你的需求呢?另外也可以看下这篇文章[2]

[1]
https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/dev/stream/state/broadcast_state.html
[2] https://cloud.tencent.com/developer/article/1509789
Best,
Congxian


Robert.Zhang <173603082@qq.com&gt; 于2020年7月13日周一 下午9:50写道:

&gt; Hello,all
&gt; 目前stream中遇到一个问题,
&gt; 想使用一个全局的state 在所有的keyed stream中使用,或者global
&gt; parameter,主要的需求在于是这个state是可变的,需要对其进行修改并且对所有stream
&gt; operator可见,大家有遇到过类似场景或者可以提供相关思路么,感激不尽
&gt;
&gt;
&gt; Best regards

回复:答复: flink state

Posted by "Robert.Zhang" <17...@qq.com>.
是这样的,问题在于我需要使用keyed state 来修改broadcast state,比如根据keyed state把某些满足条件的key存入这个broadcast state,并在其他算子计算的时候使用这个broadcast state,比如需要这些key来做
文档中提到的nonbroadcast side是无法修改broadcast state的,是read-only,
似乎无法直接去实现





------------------&nbsp;原始邮件&nbsp;------------------
发件人: "zhao liang"<zhaoawd@gmail.com&gt;; 
发送时间: 2020年7月14日(星期二) 下午4:09
收件人: "user-zh"<user-zh@flink.apache.org&gt;; 
主题: 答复: flink state



我这边有个类似的实现,需要根据维表数据改变stream的处理,自定义了一个source(从MySQL中定时刷维表数据),kafka的stream union这个维表数据流,
额外增加一个数据类型(维表类型或者事实数据)进行数据的处理,后续算子将这个维表进行不同的处理并存到对应算子的state中。

发件人: Congxian Qiu <qcx978132955@gmail.com&gt;
日期: 星期二, 2020年7月14日 14:03
收件人: user-zh <user-zh@flink.apache.org&gt;
主题: Re: flink state
Hi Robert

Boardcast state[1] 是否满足你的需求呢?另外也可以看下这篇文章[2]

[1]
https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/dev/stream/state/broadcast_state.html
[2] https://cloud.tencent.com/developer/article/1509789
Best,
Congxian


Robert.Zhang <173603082@qq.com&gt; 于2020年7月13日周一 下午9:50写道:

&gt; Hello,all
&gt; 目前stream中遇到一个问题,
&gt; 想使用一个全局的state 在所有的keyed stream中使用,或者global
&gt; parameter,主要的需求在于是这个state是可变的,需要对其进行修改并且对所有stream
&gt; operator可见,大家有遇到过类似场景或者可以提供相关思路么,感激不尽
&gt;
&gt;
&gt; Best regards

答复: flink state

Posted by zhao liang <zh...@gmail.com>.
我这边有个类似的实现,需要根据维表数据改变stream的处理,自定义了一个source(从MySQL中定时刷维表数据),kafka的stream union这个维表数据流,
额外增加一个数据类型(维表类型或者事实数据)进行数据的处理,后续算子将这个维表进行不同的处理并存到对应算子的state中。

发件人: Congxian Qiu <qc...@gmail.com>
日期: 星期二, 2020年7月14日 14:03
收件人: user-zh <us...@flink.apache.org>
主题: Re: flink state
Hi Robert

Boardcast state[1] 是否满足你的需求呢?另外也可以看下这篇文章[2]

[1]
https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/dev/stream/state/broadcast_state.html
[2] https://cloud.tencent.com/developer/article/1509789
Best,
Congxian


Robert.Zhang <17...@qq.com> 于2020年7月13日周一 下午9:50写道:

> Hello,all
> 目前stream中遇到一个问题,
> 想使用一个全局的state 在所有的keyed stream中使用,或者global
> parameter,主要的需求在于是这个state是可变的,需要对其进行修改并且对所有stream
> operator可见,大家有遇到过类似场景或者可以提供相关思路么,感激不尽
>
>
> Best regards

Re: flink state

Posted by Congxian Qiu <qc...@gmail.com>.
Hi Robert

Boardcast state[1] 是否满足你的需求呢?另外也可以看下这篇文章[2]

[1]
https://ci.apache.org/projects/flink/flink-docs-release-1.11/zh/dev/stream/state/broadcast_state.html
[2] https://cloud.tencent.com/developer/article/1509789
Best,
Congxian


Robert.Zhang <17...@qq.com> 于2020年7月13日周一 下午9:50写道:

> Hello,all
> 目前stream中遇到一个问题,
> 想使用一个全局的state 在所有的keyed stream中使用,或者global
> parameter,主要的需求在于是这个state是可变的,需要对其进行修改并且对所有stream
> operator可见,大家有遇到过类似场景或者可以提供相关思路么,感激不尽
>
>
> Best regards