大家好,
在做实时统计分析的时候我将基础汇总层做成了一个回撤流(toRetractStream)输出到kafka里(因为后面很多实时报表依赖这个流,所以就输出了) 问题是这个kafka里到回撤流还能转成flink 的RetractStream流吗,转成后我想注册成一张表,然后基于这个表再做聚合分析 谢谢 |
Hi
Flink 中RetractStream 是必须要sink支持update的,kafka消息队列本身是不支持update的,所以基于sink为kafka的程序是不能做RetractStream的。 Best, Yichao Yang ------------------ 原始邮件 ------------------ 发件人: "star"<[hidden email]>; 发送时间: 2020年6月3日(星期三) 下午2:47 收件人: "[hidden email]"<[hidden email]>; 主题: flink 1.9 关于回撤流的问题 大家好, 在做实时统计分析的时候我将基础汇总层做成了一个回撤流(toRetractStream)输出到kafka里(因为后面很多实时报表依赖这个流,所以就输出了) 问题是这个kafka里到回撤流还能转成flink 的RetractStream流吗,转成后我想注册成一张表,然后基于这个表再做聚合分析 谢谢 |
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 <[hidden email]> 于2020年6月3日周三 下午2:59写道: > Hi > Flink 中RetractStream > 是必须要sink支持update的,kafka消息队列本身是不支持update的,所以基于sink为kafka的程序是不能做RetractStream的。 > > > Best, > Yichao Yang > > > ------------------ 原始邮件 ------------------ > 发件人: "star"<[hidden email]>; > 发送时间: 2020年6月3日(星期三) 下午2:47 > 收件人: "[hidden email]"<[hidden email]>; > > 主题: flink 1.9 关于回撤流的问题 > > > > 大家好, > > > > 在做实时统计分析的时候我将基础汇总层做成了一个回撤流(toRetractStream)输出到kafka里(因为后面很多实时报表依赖这个流,所以就输出了) > 问题是这个kafka里到回撤流还能转成flink 的RetractStream流吗,转成后我想注册成一张表,然后基于这个表再做聚合分析 > > > > > 谢谢 |
感谢两位的回复,
转成回撤流的这个流其实是一张轻度汇总表, 例如,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"<[hidden email]>; 发送时间: 2020年6月3日(星期三) 下午3:40 收件人: "user-zh"<[hidden email]>; 主题: 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 <[hidden email]> 于2020年6月3日周三 下午2:59写道: > Hi > Flink 中RetractStream > 是必须要sink支持update的,kafka消息队列本身是不支持update的,所以基于sink为kafka的程序是不能做RetractStream的。 > > > Best, > Yichao Yang > > > ------------------&nbsp;原始邮件&nbsp;------------------ > 发件人:&nbsp;"star"<[hidden email]&gt;; > 发送时间:&nbsp;2020年6月3日(星期三) 下午2:47 > 收件人:&nbsp;"[hidden email]"<[hidden email]&gt;; > > 主题:&nbsp;flink 1.9 关于回撤流的问题 > > > > 大家好, > > > > 在做实时统计分析的时候我将基础汇总层做成了一个回撤流(toRetractStream)输出到kafka里(因为后面很多实时报表依赖这个流,所以就输出了) > 问题是这个kafka里到回撤流还能转成flink 的RetractStream流吗,转成后我想注册成一张表,然后基于这个表再做聚合分析 > > > > > 谢谢 |
Hi,
RetractStream 目前是无法输出到 kafka 的,因为 kafka 是 Append 模式。 不过你应该可以定义一个时间窗口 T ,滚动窗口的时间就是 T,然后聚合一次,输出到 kafka,后面都使用这个 kafka topic。 Best, LakeShen star <[hidden email]> 于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"<[hidden email]>; > 发送时间: 2020年6月3日(星期三) 下午3:40 > 收件人: "user-zh"<[hidden email]>; > > 主题: 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 <[hidden email]> 于2020年6月3日周三 下午2:59写道: > > > Hi > > Flink 中RetractStream > > > 是必须要sink支持update的,kafka消息队列本身是不支持update的,所以基于sink为kafka的程序是不能做RetractStream的。 > > > > > > Best, > > Yichao Yang > > > > > > ------------------&nbsp;原始邮件&nbsp;------------------ > > 发件人:&nbsp;"star"<[hidden email]&gt;; > > 发送时间:&nbsp;2020年6月3日(星期三) 下午2:47 > > 收件人:&nbsp;"[hidden email]"<[hidden email] > &gt;; > > > > 主题:&nbsp;flink 1.9 关于回撤流的问题 > > > > > > > > 大家好, > > > > > > > > > 在做实时统计分析的时候我将基础汇总层做成了一个回撤流(toRetractStream)输出到kafka里(因为后面很多实时报表依赖这个流,所以就输出了) > > 问题是这个kafka里到回撤流还能转成flink 的RetractStream流吗,转成后我想注册成一张表,然后基于这个表再做聚合分析 > > > > > > > > > > 谢谢 |
目前就是使用的窗口模式,生产append流,没什么大的state。但是有些指标(如 distinct)是不能使用append流的;
后面的几十个任务基于这个append流分别聚合,每个任务都会有很大的状态,造成资源浪费。如果能在轻度汇总层就搞成一张流表;后面的任务就会轻松一些。 ------------------ 原始邮件 ------------------ 发件人: "LakeShen"<[hidden email]>; 发送时间: 2020年6月4日(星期四) 上午9:45 收件人: "user-zh"<[hidden email]>; 主题: Re: flink 1.9 关于回撤流的问题 Hi, RetractStream 目前是无法输出到 kafka 的,因为 kafka 是 Append 模式。 不过你应该可以定义一个时间窗口 T ,滚动窗口的时间就是 T,然后聚合一次,输出到 kafka,后面都使用这个 kafka topic。 Best, LakeShen star <[hidden email]> 于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"<[hidden email]&gt;; > 发送时间:&nbsp;2020年6月3日(星期三) 下午3:40 > 收件人:&nbsp;"user-zh"<[hidden email]&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 <[hidden email]&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"<[hidden email]&amp;gt;; > &gt; 发送时间:&amp;nbsp;2020年6月3日(星期三) 下午2:47 > &gt; 收件人:&amp;nbsp;"[hidden email]"<[hidden email] > &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; 谢谢 |
In reply to this post by star
可以的吧。 你最好以json格式再次输出到kafka,这样flink 能直接接受这个流,json到table。当然 输出json 数据量会大点,不然直接输出,你后面自己弄个序列化解析也行
在 2020-06-03 16:31:15,"star" <[hidden email]> 写道: >感谢两位的回复, >转成回撤流的这个流其实是一张轻度汇总表, >例如,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"<[hidden email]>; >发送时间: 2020年6月3日(星期三) 下午3:40 >收件人: "user-zh"<[hidden email]>; > >主题: 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 <[hidden email]> 于2020年6月3日周三 下午2:59写道: > >> Hi >> Flink 中RetractStream >> 是必须要sink支持update的,kafka消息队列本身是不支持update的,所以基于sink为kafka的程序是不能做RetractStream的。 >> >> >> Best, >> Yichao Yang >> >> >> ------------------&nbsp;原始邮件&nbsp;------------------ >> 发件人:&nbsp;"star"<[hidden email]&gt;; >> 发送时间:&nbsp;2020年6月3日(星期三) 下午2:47 >> 收件人:&nbsp;"[hidden email]"<[hidden email]&gt;; >> >> 主题:&nbsp;flink 1.9 关于回撤流的问题 >> >> >> >> 大家好, >> >> >> >> 在做实时统计分析的时候我将基础汇总层做成了一个回撤流(toRetractStream)输出到kafka里(因为后面很多实时报表依赖这个流,所以就输出了) >> 问题是这个kafka里到回撤流还能转成flink 的RetractStream流吗,转成后我想注册成一张表,然后基于这个表再做聚合分析 >> >> >> >> >> 谢谢 |
In reply to this post by star
Hi,star
金竹老师发过一篇文章,重写了KafkaConnector的实现,支持upsert模式,可以参考下[1] [1]https://mp.weixin.qq.com/s/MSs7HSaegyWWU3Fig2PYYA | | Sun.Zhu | | [hidden email] | 签名由网易邮箱大师定制 在2020年06月3日 14:47,star<[hidden email]> 写道: 大家好, 在做实时统计分析的时候我将基础汇总层做成了一个回撤流(toRetractStream)输出到kafka里(因为后面很多实时报表依赖这个流,所以就输出了) 问题是这个kafka里到回撤流还能转成flink 的RetractStream流吗,转成后我想注册成一张表,然后基于这个表再做聚合分析 谢谢 |
非常感谢,正是我想要的。也谢谢金竹老师的分享!
------------------ 原始邮件 ------------------ 发件人: "Sun.Zhu"<[hidden email]>; 发送时间: 2020年6月7日(星期天) 凌晨0:02 收件人: "[hidden email]"<[hidden email]>; 抄送: "[hidden email]"<[hidden email]>; 主题: 回复:flink 1.9 关于回撤流的问题 Hi,star 金竹老师发过一篇文章,重写了KafkaConnector的实现,支持upsert模式,可以参考下[1] [1]https://mp.weixin.qq.com/s/MSs7HSaegyWWU3Fig2PYYA | | Sun.Zhu | | [hidden email] | 签名由网易邮箱大师定制 在2020年06月3日 14:47,star<[hidden email]> 写道: 大家好, 在做实时统计分析的时候我将基础汇总层做成了一个回撤流(toRetractStream)输出到kafka里(因为后面很多实时报表依赖这个流,所以就输出了) 问题是这个kafka里到回撤流还能转成flink 的RetractStream流吗,转成后我想注册成一张表,然后基于这个表再做聚合分析 谢谢 |
hi, 我对于使用upsert
kafka能够省state感到疑惑。金竹老师提供的实现只是丢掉了delete消息,你的下游表依旧需要手动去重才可以得到准确的结果才对啊。如果每个下游表都手动去重这样子还能省state吗? star <[hidden email]> 于2020年6月8日周一 上午9:38写道: > 非常感谢,正是我想要的。也谢谢金竹老师的分享! > > > > > ------------------ 原始邮件 ------------------ > 发件人: "Sun.Zhu"<[hidden email]>; > 发送时间: 2020年6月7日(星期天) 凌晨0:02 > 收件人: "[hidden email]"<[hidden email]>; > 抄送: "[hidden email]"<[hidden email]>; > 主题: 回复:flink 1.9 关于回撤流的问题 > > > > Hi,star > 金竹老师发过一篇文章,重写了KafkaConnector的实现,支持upsert模式,可以参考下[1] > > > [1]https://mp.weixin.qq.com/s/MSs7HSaegyWWU3Fig2PYYA > | | > Sun.Zhu > | > | > [hidden email] > | > 签名由网易邮箱大师定制 > > > 在2020年06月3日 14:47,star<[hidden email]> 写道: > 大家好, > > > > 在做实时统计分析的时候我将基础汇总层做成了一个回撤流(toRetractStream)输出到kafka里(因为后面很多实时报表依赖这个流,所以就输出了) > 问题是这个kafka里到回撤流还能转成flink 的RetractStream流吗,转成后我想注册成一张表,然后基于这个表再做聚合分析 > > > > > 谢谢 |
可以用flink提供的“去重"语法来支持
[1] https://ci.apache.org/projects/flink/flink-docs-master/zh/dev/table/sql/queries.html#%E5%8E%BB%E9%87%8D Shengkai Fang <[hidden email]> 于2020年9月15日周二 下午4:02写道: > hi, 我对于使用upsert > > kafka能够省state感到疑惑。金竹老师提供的实现只是丢掉了delete消息,你的下游表依旧需要手动去重才可以得到准确的结果才对啊。如果每个下游表都手动去重这样子还能省state吗? > > star <[hidden email]> 于2020年6月8日周一 上午9:38写道: > > > 非常感谢,正是我想要的。也谢谢金竹老师的分享! > > > > > > > > > > ------------------ 原始邮件 ------------------ > > 发件人: "Sun.Zhu"<[hidden email]>; > > 发送时间: 2020年6月7日(星期天) 凌晨0:02 > > 收件人: "[hidden email]"<[hidden email]>; > > 抄送: "[hidden email]"<[hidden email]>; > > 主题: 回复:flink 1.9 关于回撤流的问题 > > > > > > > > Hi,star > > 金竹老师发过一篇文章,重写了KafkaConnector的实现,支持upsert模式,可以参考下[1] > > > > > > [1]https://mp.weixin.qq.com/s/MSs7HSaegyWWU3Fig2PYYA > > | | > > Sun.Zhu > > | > > | > > [hidden email] > > | > > 签名由网易邮箱大师定制 > > > > > > 在2020年06月3日 14:47,star<[hidden email]> 写道: > > 大家好, > > > > > > > > > 在做实时统计分析的时候我将基础汇总层做成了一个回撤流(toRetractStream)输出到kafka里(因为后面很多实时报表依赖这个流,所以就输出了) > > 问题是这个kafka里到回撤流还能转成flink 的RetractStream流吗,转成后我想注册成一张表,然后基于这个表再做聚合分析 > > > > > > > > > > 谢谢 > |
Free forum by Nabble | Edit this page |