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?
------------------ 原始邮件 ------------------
发件人: "godfrey he"<godfreyhe@gmail.com>;
发送时间: 2020年6月3日(星期三) 下午3:40
收件人: "user-zh"<user-zh@flink.apache.org>;
主题: 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> 于2020年6月3日周三 下午2:59写道:
> Hi
> Flink 中RetractStream
> 是必须要sink支持update的,kafka消息队列本身是不支持update的,所以基于sink为kafka的程序是不能做RetractStream的。
>
>
> Best,
> Yichao Yang
>
>
> ------------------&nbsp;原始邮件&nbsp;------------------
> 发件人:&nbsp;"star"<3149768603@qq.com&gt;;
> 发送时间:&nbsp;2020年6月3日(星期三) 下午2:47
> 收件人:&nbsp;"user-zh@flink.apache.org"<user-zh@flink.apache.org&gt;;
>
> 主题:&nbsp;flink 1.9 关于回撤流的问题
>
>
>
> 大家好,
>
>
>
> 在做实时统计分析的时候我将基础汇总层做成了一个回撤流(toRetractStream)输出到kafka里(因为后面很多实时报表依赖这个流,所以就输出了)
> 问题是这个kafka里到回撤流还能转成flink 的RetractStream流吗,转成后我想注册成一张表,然后基于这个表再做聚合分析
>
>
>
>
> 谢谢
回复: flink 1.9 关于回撤流的问题
Posted by star <31...@qq.com>.
目前就是使用的窗口模式,生产append流,没什么大的state。但是有些指标(如 distinct)是不能使用append流的;
后面的几十个任务基于这个append流分别聚合,每个任务都会有很大的状态,造成资源浪费。如果能在轻度汇总层就搞成一张流表;后面的任务就会轻松一些。
------------------ 原始邮件 ------------------
发件人: "LakeShen"<shenleifighting@gmail.com>;
发送时间: 2020年6月4日(星期四) 上午9:45
收件人: "user-zh"<user-zh@flink.apache.org>;
主题: Re: flink 1.9 关于回撤流的问题
Hi,
RetractStream 目前是无法输出到 kafka 的,因为 kafka 是 Append 模式。
不过你应该可以定义一个时间窗口 T ,滚动窗口的时间就是 T,然后聚合一次,输出到 kafka,后面都使用这个 kafka topic。
Best,
LakeShen
star <3149768603@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 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?
>
>
>
>
>
>
> ------------------ 原始邮件 ------------------
> 发件人: "godfrey he"<godfreyhe@gmail.com>;
> 发送时间: 2020年6月3日(星期三) 下午3:40
> 收件人: "user-zh"<user-zh@flink.apache.org>;
>
> 主题: 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> 于2020年6月3日周三 下午2:59写道:
>
> > Hi
> > Flink 中RetractStream
> >
> 是必须要sink支持update的,kafka消息队列本身是不支持update的,所以基于sink为kafka的程序是不能做RetractStream的。
> >
> >
> > Best,
> > Yichao Yang
> >
> >
> > ------------------&nbsp;原始邮件&nbsp;------------------
> > 发件人:&nbsp;"star"<3149768603@qq.com&gt;;
> > 发送时间:&nbsp;2020年6月3日(星期三) 下午2:47
> > 收件人:&nbsp;"user-zh@flink.apache.org"<user-zh@flink.apache.org
> &gt;;
> >
> > 主题:&nbsp;flink 1.9 关于回撤流的问题
> >
> >
> >
> > 大家好,
> >
> >
> >
> >
> 在做实时统计分析的时候我将基础汇总层做成了一个回撤流(toRetractStream)输出到kafka里(因为后面很多实时报表依赖这个流,所以就输出了)
> > 问题是这个kafka里到回撤流还能转成flink 的RetractStream流吗,转成后我想注册成一张表,然后基于这个表再做聚合分析
> >
> >
> >
> >
> > 谢谢
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?
>
>
>
>
>
>
>------------------ 原始邮件 ------------------
>发件人: "godfrey he"<godfreyhe@gmail.com>;
>发送时间: 2020年6月3日(星期三) 下午3:40
>收件人: "user-zh"<user-zh@flink.apache.org>;
>
>主题: 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> 于2020年6月3日周三 下午2:59写道:
>
>> Hi
>> Flink 中RetractStream
>> 是必须要sink支持update的,kafka消息队列本身是不支持update的,所以基于sink为kafka的程序是不能做RetractStream的。
>>
>>
>> Best,
>> Yichao Yang
>>
>>
>> ------------------&nbsp;原始邮件&nbsp;------------------
>> 发件人:&nbsp;"star"<3149768603@qq.com&gt;;
>> 发送时间:&nbsp;2020年6月3日(星期三) 下午2:47
>> 收件人:&nbsp;"user-zh@flink.apache.org"<user-zh@flink.apache.org&gt;;
>>
>> 主题:&nbsp;flink 1.9 关于回撤流的问题
>>
>>
>>
>> 大家好,
>>
>>
>>
>> 在做实时统计分析的时候我将基础汇总层做成了一个回撤流(toRetractStream)输出到kafka里(因为后面很多实时报表依赖这个流,所以就输出了)
>> 问题是这个kafka里到回撤流还能转成flink 的RetractStream流吗,转成后我想注册成一张表,然后基于这个表再做聚合分析
>>
>>
>>
>>
>> 谢谢