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 star <31...@qq.com> on 2020/06/03 08:31:15 UTC

回复: flink 1.9 关于回撤流的问题

感谢两位的回复,
转成回撤流的这个流其实是一张轻度汇总表,
例如,select year,month,day,province,sub_name,sum(amount),count(*) as cou from mytable group by year,month,day,province,sub_name;


后面有几十张实时报表依赖这个流 再进行汇总 计算;
我现在是把这个轻度汇总表转成了回撤流输出到了kafka里面,如果后面这几十张报表能够消费这个topic并转成table,就可以做后面到运算了。


不知道能不能转成这样到table?






------------------&nbsp;原始邮件&nbsp;------------------
发件人:&nbsp;"godfrey he"<godfreyhe@gmail.com&gt;;
发送时间:&nbsp;2020年6月3日(星期三) 下午3:40
收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;

主题:&nbsp;Re: flink 1.9 关于回撤流的问题



hi star,
Flink 1.11 开始已经支持 table source 读取 retract 消息,update 消息。
目前支持 Debezium format,Canal format [1],其他的情况目前需要自己实现。


Best,
Godfrey

[1]
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=147427289#FLIP105:SupporttoInterpretChangeloginFlinkSQL(IntroducingDebeziumandCanalFormat)-CanalFormat


1048262223 <1048262223@qq.com&gt; 于2020年6月3日周三 下午2:59写道:

&gt; Hi
&gt; Flink 中RetractStream
&gt; 是必须要sink支持update的,kafka消息队列本身是不支持update的,所以基于sink为kafka的程序是不能做RetractStream的。
&gt;
&gt;
&gt; Best,
&gt; Yichao Yang
&gt;
&gt;
&gt; ------------------&amp;nbsp;原始邮件&amp;nbsp;------------------
&gt; 发件人:&amp;nbsp;"star"<3149768603@qq.com&amp;gt;;
&gt; 发送时间:&amp;nbsp;2020年6月3日(星期三) 下午2:47
&gt; 收件人:&amp;nbsp;"user-zh@flink.apache.org"<user-zh@flink.apache.org&amp;gt;;
&gt;
&gt; 主题:&amp;nbsp;flink 1.9 关于回撤流的问题
&gt;
&gt;
&gt;
&gt; 大家好,
&gt;
&gt;
&gt;
&gt; 在做实时统计分析的时候我将基础汇总层做成了一个回撤流(toRetractStream)输出到kafka里(因为后面很多实时报表依赖这个流,所以就输出了)
&gt; 问题是这个kafka里到回撤流还能转成flink 的RetractStream流吗,转成后我想注册成一张表,然后基于这个表再做聚合分析
&gt;
&gt;
&gt;
&gt;
&gt; 谢谢

回复: flink 1.9 关于回撤流的问题

Posted by star <31...@qq.com>.
目前就是使用的窗口模式,生产append流,没什么大的state。但是有些指标(如 distinct)是不能使用append流的;
后面的几十个任务基于这个append流分别聚合,每个任务都会有很大的状态,造成资源浪费。如果能在轻度汇总层就搞成一张流表;后面的任务就会轻松一些。




------------------&nbsp;原始邮件&nbsp;------------------
发件人:&nbsp;"LakeShen"<shenleifighting@gmail.com&gt;;
发送时间:&nbsp;2020年6月4日(星期四) 上午9:45
收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;

主题:&nbsp;Re: flink 1.9 关于回撤流的问题



Hi,

RetractStream 目前是无法输出到 kafka 的,因为 kafka 是 Append 模式。

不过你应该可以定义一个时间窗口 T ,滚动窗口的时间就是 T,然后聚合一次,输出到 kafka,后面都使用这个 kafka topic。

Best,
LakeShen

star <3149768603@qq.com&gt; 于2020年6月3日周三 下午4:31写道:

&gt; 感谢两位的回复,
&gt; 转成回撤流的这个流其实是一张轻度汇总表,
&gt; 例如,select year,month,day,province,sub_name,sum(amount),count(*) as cou
&gt; from mytable group by year,month,day,province,sub_name;
&gt;
&gt;
&gt; 后面有几十张实时报表依赖这个流 再进行汇总 计算;
&gt; 我现在是把这个轻度汇总表转成了回撤流输出到了kafka里面,如果后面这几十张报表能够消费这个topic并转成table,就可以做后面到运算了。
&gt;
&gt;
&gt; 不知道能不能转成这样到table?
&gt;
&gt;
&gt;
&gt;
&gt;
&gt;
&gt; ------------------&amp;nbsp;原始邮件&amp;nbsp;------------------
&gt; 发件人:&amp;nbsp;"godfrey he"<godfreyhe@gmail.com&amp;gt;;
&gt; 发送时间:&amp;nbsp;2020年6月3日(星期三) 下午3:40
&gt; 收件人:&amp;nbsp;"user-zh"<user-zh@flink.apache.org&amp;gt;;
&gt;
&gt; 主题:&amp;nbsp;Re: flink 1.9 关于回撤流的问题
&gt;
&gt;
&gt;
&gt; hi star,
&gt; Flink 1.11 开始已经支持 table source 读取 retract 消息,update 消息。
&gt; 目前支持 Debezium format,Canal format [1],其他的情况目前需要自己实现。
&gt;
&gt;
&gt; Best,
&gt; Godfrey
&gt;
&gt; [1]
&gt;
&gt; https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=147427289#FLIP105:SupporttoInterpretChangeloginFlinkSQL(IntroducingDebeziumandCanalFormat)-CanalFormat
&gt;
&gt;
&gt; 1048262223 <1048262223@qq.com&amp;gt; 于2020年6月3日周三 下午2:59写道:
&gt;
&gt; &amp;gt; Hi
&gt; &amp;gt; Flink 中RetractStream
&gt; &amp;gt;
&gt; 是必须要sink支持update的,kafka消息队列本身是不支持update的,所以基于sink为kafka的程序是不能做RetractStream的。
&gt; &amp;gt;
&gt; &amp;gt;
&gt; &amp;gt; Best,
&gt; &amp;gt; Yichao Yang
&gt; &amp;gt;
&gt; &amp;gt;
&gt; &amp;gt; ------------------&amp;amp;nbsp;原始邮件&amp;amp;nbsp;------------------
&gt; &amp;gt; 发件人:&amp;amp;nbsp;"star"<3149768603@qq.com&amp;amp;gt;;
&gt; &amp;gt; 发送时间:&amp;amp;nbsp;2020年6月3日(星期三) 下午2:47
&gt; &amp;gt; 收件人:&amp;amp;nbsp;"user-zh@flink.apache.org"<user-zh@flink.apache.org
&gt; &amp;amp;gt;;
&gt; &amp;gt;
&gt; &amp;gt; 主题:&amp;amp;nbsp;flink 1.9 关于回撤流的问题
&gt; &amp;gt;
&gt; &amp;gt;
&gt; &amp;gt;
&gt; &amp;gt; 大家好,
&gt; &amp;gt;
&gt; &amp;gt;
&gt; &amp;gt;
&gt; &amp;gt;
&gt; 在做实时统计分析的时候我将基础汇总层做成了一个回撤流(toRetractStream)输出到kafka里(因为后面很多实时报表依赖这个流,所以就输出了)
&gt; &amp;gt; 问题是这个kafka里到回撤流还能转成flink 的RetractStream流吗,转成后我想注册成一张表,然后基于这个表再做聚合分析
&gt; &amp;gt;
&gt; &amp;gt;
&gt; &amp;gt;
&gt; &amp;gt;
&gt; &amp;gt; 谢谢

Re: flink 1.9 关于回撤流的问题

Posted by LakeShen <sh...@gmail.com>.
Hi,

RetractStream 目前是无法输出到 kafka 的,因为 kafka 是 Append 模式。

不过你应该可以定义一个时间窗口 T ,滚动窗口的时间就是 T,然后聚合一次,输出到 kafka,后面都使用这个 kafka topic。

Best,
LakeShen

star <31...@qq.com> 于2020年6月3日周三 下午4:31写道:

> 感谢两位的回复,
> 转成回撤流的这个流其实是一张轻度汇总表,
> 例如,select year,month,day,province,sub_name,sum(amount),count(*) as cou
> from mytable group by year,month,day,province,sub_name;
>
>
> 后面有几十张实时报表依赖这个流 再进行汇总 计算;
> 我现在是把这个轻度汇总表转成了回撤流输出到了kafka里面,如果后面这几十张报表能够消费这个topic并转成table,就可以做后面到运算了。
>
>
> 不知道能不能转成这样到table?
>
>
>
>
>
>
> ------------------&nbsp;原始邮件&nbsp;------------------
> 发件人:&nbsp;"godfrey he"<godfreyhe@gmail.com&gt;;
> 发送时间:&nbsp;2020年6月3日(星期三) 下午3:40
> 收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;
>
> 主题:&nbsp;Re: flink 1.9 关于回撤流的问题
>
>
>
> hi star,
> Flink 1.11 开始已经支持 table source 读取 retract 消息,update 消息。
> 目前支持 Debezium format,Canal format [1],其他的情况目前需要自己实现。
>
>
> Best,
> Godfrey
>
> [1]
>
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=147427289#FLIP105:SupporttoInterpretChangeloginFlinkSQL(IntroducingDebeziumandCanalFormat)-CanalFormat
>
>
> 1048262223 <1048262223@qq.com&gt; 于2020年6月3日周三 下午2:59写道:
>
> &gt; Hi
> &gt; Flink 中RetractStream
> &gt;
> 是必须要sink支持update的,kafka消息队列本身是不支持update的,所以基于sink为kafka的程序是不能做RetractStream的。
> &gt;
> &gt;
> &gt; Best,
> &gt; Yichao Yang
> &gt;
> &gt;
> &gt; ------------------&amp;nbsp;原始邮件&amp;nbsp;------------------
> &gt; 发件人:&amp;nbsp;"star"<3149768603@qq.com&amp;gt;;
> &gt; 发送时间:&amp;nbsp;2020年6月3日(星期三) 下午2:47
> &gt; 收件人:&amp;nbsp;"user-zh@flink.apache.org"<user-zh@flink.apache.org
> &amp;gt;;
> &gt;
> &gt; 主题:&amp;nbsp;flink 1.9 关于回撤流的问题
> &gt;
> &gt;
> &gt;
> &gt; 大家好,
> &gt;
> &gt;
> &gt;
> &gt;
> 在做实时统计分析的时候我将基础汇总层做成了一个回撤流(toRetractStream)输出到kafka里(因为后面很多实时报表依赖这个流,所以就输出了)
> &gt; 问题是这个kafka里到回撤流还能转成flink 的RetractStream流吗,转成后我想注册成一张表,然后基于这个表再做聚合分析
> &gt;
> &gt;
> &gt;
> &gt;
> &gt; 谢谢

Re:回复: flink 1.9 关于回撤流的问题

Posted by Michael Ran <gr...@163.com>.
可以的吧。 你最好以json格式再次输出到kafka,这样flink 能直接接受这个流,json到table。当然 输出json 数据量会大点,不然直接输出,你后面自己弄个序列化解析也行
在 2020-06-03 16:31:15,"star" <31...@qq.com> 写道:
>感谢两位的回复,
>转成回撤流的这个流其实是一张轻度汇总表,
>例如,select year,month,day,province,sub_name,sum(amount),count(*) as cou from mytable group by year,month,day,province,sub_name;
>
>
>后面有几十张实时报表依赖这个流 再进行汇总 计算;
>我现在是把这个轻度汇总表转成了回撤流输出到了kafka里面,如果后面这几十张报表能够消费这个topic并转成table,就可以做后面到运算了。
>
>
>不知道能不能转成这样到table?
>
>
>
>
>
>
>------------------&nbsp;原始邮件&nbsp;------------------
>发件人:&nbsp;"godfrey he"<godfreyhe@gmail.com&gt;;
>发送时间:&nbsp;2020年6月3日(星期三) 下午3:40
>收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;
>
>主题:&nbsp;Re: flink 1.9 关于回撤流的问题
>
>
>
>hi star,
>Flink 1.11 开始已经支持 table source 读取 retract 消息,update 消息。
>目前支持 Debezium format,Canal format [1],其他的情况目前需要自己实现。
>
>
>Best,
>Godfrey
>
>[1]
>https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=147427289#FLIP105:SupporttoInterpretChangeloginFlinkSQL(IntroducingDebeziumandCanalFormat)-CanalFormat
>
>
>1048262223 <1048262223@qq.com&gt; 于2020年6月3日周三 下午2:59写道:
>
>&gt; Hi
>&gt; Flink 中RetractStream
>&gt; 是必须要sink支持update的,kafka消息队列本身是不支持update的,所以基于sink为kafka的程序是不能做RetractStream的。
>&gt;
>&gt;
>&gt; Best,
>&gt; Yichao Yang
>&gt;
>&gt;
>&gt; ------------------&amp;nbsp;原始邮件&amp;nbsp;------------------
>&gt; 发件人:&amp;nbsp;"star"<3149768603@qq.com&amp;gt;;
>&gt; 发送时间:&amp;nbsp;2020年6月3日(星期三) 下午2:47
>&gt; 收件人:&amp;nbsp;"user-zh@flink.apache.org"<user-zh@flink.apache.org&amp;gt;;
>&gt;
>&gt; 主题:&amp;nbsp;flink 1.9 关于回撤流的问题
>&gt;
>&gt;
>&gt;
>&gt; 大家好,
>&gt;
>&gt;
>&gt;
>&gt; 在做实时统计分析的时候我将基础汇总层做成了一个回撤流(toRetractStream)输出到kafka里(因为后面很多实时报表依赖这个流,所以就输出了)
>&gt; 问题是这个kafka里到回撤流还能转成flink 的RetractStream流吗,转成后我想注册成一张表,然后基于这个表再做聚合分析
>&gt;
>&gt;
>&gt;
>&gt;
>&gt; 谢谢