Flink RetractStream如何转成AppendStream?

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Flink RetractStream如何转成AppendStream?

陈帅
在用Flink做实时数仓时遇到group by统计后需要将结果发到kafka,但是现在的kafka
sink是不支持RetractStream,因此会报错,有没有什么方法将RetractStream转成AppendStream(例如,忽略撤回的消息,只发送更新的消息),从而可以将结果发到kafka?
Reply | Threaded
Open this post in threaded view
|

Re: Flink RetractStream如何转成AppendStream?

Jark
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?
>
Reply | Threaded
Open this post in threaded view
|

Re: Flink RetractStream如何转成AppendStream?

lucas.wu
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?
Reply | Threaded
Open this post in threaded view
|

Re: Flink RetractStream如何转成AppendStream?

JingsongLee
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?
>
Reply | Threaded
Open this post in threaded view
|

Re: Flink RetractStream如何转成AppendStream?

JingsongLee
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?
Reply | Threaded
Open this post in threaded view
|

Re: Flink RetractStream如何转成AppendStream?

陈帅
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?
> >
>
Reply | Threaded
Open this post in threaded view
|

Re: Flink RetractStream如何转成AppendStream?

JingsongLee
参考下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?
 >
Reply | Threaded
Open this post in threaded view
|

Re: Flink RetractStream如何转成AppendStream?

JingsongLee
目前不能由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?
 >