在用Flink做实时数仓时遇到group by统计后需要将结果发到kafka,但是现在的kafka
sink是不支持RetractStream,因此会报错,有没有什么方法将RetractStream转成AppendStream(例如,忽略撤回的消息,只发送更新的消息),从而可以将结果发到kafka? |
Administrator
|
Hi,
目前 Kafka 只支持 append mode,所以无法消费 retract stream。在 Flink 1.11,社区将计划支持 RetractStream 转成 AppendStream 的操作,以 changelog 的方式输出。 Best, Jark On Sun, 8 Dec 2019 at 10:08, 陈帅 <[hidden email]> wrote: > 在用Flink做实时数仓时遇到group by统计后需要将结果发到kafka,但是现在的kafka > > sink是不支持RetractStream,因此会报错,有没有什么方法将RetractStream转成AppendStream(例如,忽略撤回的消息,只发送更新的消息),从而可以将结果发到kafka? > |
In reply to this post by 陈帅
可以使用类似的方式
// val sstream = result4.toRetractStream[Row],filter(_.1==trye).map(_._2) // val result5 = tEnv.fromDataStream(sstream) // result5.toAppendStream[Row].print() 原始邮件 发件人:Jark [hidden email] 收件人:[hidden email] 发送时间:2019年12月8日(周日) 11:53 主题:Re: Flink RetractStream如何转成AppendStream? Hi, 目前 Kafka 只支持 append mode,所以无法消费 retract stream。在 Flink 1.11,社区将计划支持 RetractStream 转成 AppendStream 的操作,以 changelog 的方式输出。 Best, Jark On Sun, 8 Dec 2019 at 10:08, 陈帅 [hidden email] wrote: 在用Flink做实时数仓时遇到group by统计后需要将结果发到kafka,但是现在的kafka sink是不支持RetractStream,因此会报错,有没有什么方法将RetractStream转成AppendStream(例如,忽略撤回的消息,只发送更新的消息),从而可以将结果发到kafka? |
In reply to this post by Jark
Hi 帅,
你可以先把RetractStream转成DataStream,这样就出现了Tuple<Boolean, Row>的stream,然后你再写个MapFunc过滤,最后通过DataStream写入Kafka中。 Best, Jingsong Lee ------------------------------------------------------------------ From:Jark Wu <[hidden email]> Send Time:2019年12月8日(星期日) 11:54 To:user-zh <[hidden email]> Subject:Re: Flink RetractStream如何转成AppendStream? Hi, 目前 Kafka 只支持 append mode,所以无法消费 retract stream。在 Flink 1.11,社区将计划支持 RetractStream 转成 AppendStream 的操作,以 changelog 的方式输出。 Best, Jark On Sun, 8 Dec 2019 at 10:08, 陈帅 <[hidden email]> wrote: > 在用Flink做实时数仓时遇到group by统计后需要将结果发到kafka,但是现在的kafka > > sink是不支持RetractStream,因此会报错,有没有什么方法将RetractStream转成AppendStream(例如,忽略撤回的消息,只发送更新的消息),从而可以将结果发到kafka? > |
In reply to this post by lucas.wu
+1 to lucas.wu
Best, Jingsong Lee ------------------------------------------------------------------ From:lucas.wu <[hidden email]> Send Time:2019年12月9日(星期一) 11:39 To:user-zh <[hidden email]> Subject:Re: Flink RetractStream如何转成AppendStream? 可以使用类似的方式 // val sstream = result4.toRetractStream[Row],filter(_.1==trye).map(_._2) // val result5 = tEnv.fromDataStream(sstream) // result5.toAppendStream[Row].print() 原始邮件 发件人:Jark [hidden email] 收件人:[hidden email] 发送时间:2019年12月8日(周日) 11:53 主题:Re: Flink RetractStream如何转成AppendStream? Hi, 目前 Kafka 只支持 append mode,所以无法消费 retract stream。在 Flink 1.11,社区将计划支持 RetractStream 转成 AppendStream 的操作,以 changelog 的方式输出。 Best, Jark On Sun, 8 Dec 2019 at 10:08, 陈帅 [hidden email] wrote: 在用Flink做实时数仓时遇到group by统计后需要将结果发到kafka,但是现在的kafka sink是不支持RetractStream,因此会报错,有没有什么方法将RetractStream转成AppendStream(例如,忽略撤回的消息,只发送更新的消息),从而可以将结果发到kafka? |
In reply to this post by JingsongLee
"你可以先把RetractStream转成DataStream,这样就出现了Tuple<Boolean,
Row>的stream,然后你再写个MapFunc过滤,最后通过DataStream写入Kafka中。" ==> 我想知道通过Flink SQL方式要如何实现这种转换? JingsongLee <[hidden email]> 于2019年12月9日周一 下午3:17写道: > Hi 帅, > > 你可以先把RetractStream转成DataStream,这样就出现了Tuple<Boolean, > Row>的stream,然后你再写个MapFunc过滤,最后通过DataStream写入Kafka中。 > > Best, > Jingsong Lee > > > ------------------------------------------------------------------ > From:Jark Wu <[hidden email]> > Send Time:2019年12月8日(星期日) 11:54 > To:user-zh <[hidden email]> > Subject:Re: Flink RetractStream如何转成AppendStream? > > Hi, > > 目前 Kafka 只支持 append mode,所以无法消费 retract stream。在 Flink 1.11,社区将计划支持 > RetractStream 转成 AppendStream 的操作,以 changelog 的方式输出。 > > Best, > Jark > > On Sun, 8 Dec 2019 at 10:08, 陈帅 <[hidden email]> wrote: > > > 在用Flink做实时数仓时遇到group by统计后需要将结果发到kafka,但是现在的kafka > > > > > sink是不支持RetractStream,因此会报错,有没有什么方法将RetractStream转成AppendStream(例如,忽略撤回的消息,只发送更新的消息),从而可以将结果发到kafka? > > > |
参考下lucas.wu的例子?
Best, Jingsong Lee ------------------------------------------------------------------ From:陈帅 <[hidden email]> Send Time:2019年12月10日(星期二) 08:25 To:[hidden email] <[hidden email]>; JingsongLee <[hidden email]> Subject:Re: Flink RetractStream如何转成AppendStream? "你可以先把RetractStream转成DataStream,这样就出现了Tuple<Boolean, Row>的stream,然后你再写个MapFunc过滤,最后通过DataStream写入Kafka中。" ==>我想知道通过Flink SQL方式要如何实现这种转换? JingsongLee <[hidden email]> 于2019年12月9日周一 下午3:17写道: Hi 帅, 你可以先把RetractStream转成DataStream,这样就出现了Tuple<Boolean, Row>的stream,然后你再写个MapFunc过滤,最后通过DataStream写入Kafka中。 Best, Jingsong Lee ------------------------------------------------------------------ From:Jark Wu <[hidden email]> Send Time:2019年12月8日(星期日) 11:54 To:user-zh <[hidden email]> Subject:Re: Flink RetractStream如何转成AppendStream? Hi, 目前 Kafka 只支持 append mode,所以无法消费 retract stream。在 Flink 1.11,社区将计划支持 RetractStream 转成 AppendStream 的操作,以 changelog 的方式输出。 Best, Jark On Sun, 8 Dec 2019 at 10:08, 陈帅 <[hidden email]> wrote: > 在用Flink做实时数仓时遇到group by统计后需要将结果发到kafka,但是现在的kafka > > sink是不支持RetractStream,因此会报错,有没有什么方法将RetractStream转成AppendStream(例如,忽略撤回的消息,只发送更新的消息),从而可以将结果发到kafka? > |
目前不能由SQL直接转。
Best, Jingsong Lee ------------------------------------------------------------------ From:陈帅 <[hidden email]> Send Time:2019年12月10日(星期二) 21:48 To:JingsongLee <[hidden email]> Subject:Re: Flink RetractStream如何转成AppendStream? 代码api的方式我知道怎么转,想知道用sql的方式要如何转?需要先写到一张临时表再sink到目标表?有例子吗? JingsongLee <[hidden email]> 于2019年12月10日周二 上午10:49写道: 参考下lucas.wu的例子? Best, Jingsong Lee ------------------------------------------------------------------ From:陈帅 <[hidden email]> Send Time:2019年12月10日(星期二) 08:25 To:[hidden email] <[hidden email]>; JingsongLee <[hidden email]> Subject:Re: Flink RetractStream如何转成AppendStream? "你可以先把RetractStream转成DataStream,这样就出现了Tuple<Boolean, Row>的stream,然后你再写个MapFunc过滤,最后通过DataStream写入Kafka中。" ==>我想知道通过Flink SQL方式要如何实现这种转换? JingsongLee <[hidden email]> 于2019年12月9日周一 下午3:17写道: Hi 帅, 你可以先把RetractStream转成DataStream,这样就出现了Tuple<Boolean, Row>的stream,然后你再写个MapFunc过滤,最后通过DataStream写入Kafka中。 Best, Jingsong Lee ------------------------------------------------------------------ From:Jark Wu <[hidden email]> Send Time:2019年12月8日(星期日) 11:54 To:user-zh <[hidden email]> Subject:Re: Flink RetractStream如何转成AppendStream? Hi, 目前 Kafka 只支持 append mode,所以无法消费 retract stream。在 Flink 1.11,社区将计划支持 RetractStream 转成 AppendStream 的操作,以 changelog 的方式输出。 Best, Jark On Sun, 8 Dec 2019 at 10:08, 陈帅 <[hidden email]> wrote: > 在用Flink做实时数仓时遇到group by统计后需要将结果发到kafka,但是现在的kafka > > sink是不支持RetractStream,因此会报错,有没有什么方法将RetractStream转成AppendStream(例如,忽略撤回的消息,只发送更新的消息),从而可以将结果发到kafka? > |
Free forum by Nabble | Edit this page |