Flink SQL 中同时写入多个 sink 时,是否能够保证先后次序

2022-10-11 Thread Zhiwen Sun
hi all: 我们有个场景,需要 Flink SQL 同时写入消息和 database, 后续实时任务消费消息,再次读取 database, 如果消息先于 database 写入,这就可能导致读取的数据不正确。 是否有办法保证 database 写入后,再发送消息? Zhiwen Sun

Re: Flink SQL 中同时写入多个 sink 时,是否能够保证先后次序

2022-10-12 Thread Shuo Cheng
Flink SQL 自身机制无法保证同一个作业多个 sink 的写入次序。 是否可以考虑从业务逻辑上动手脚,比如写入消息队列 sink 前加个 udf filter, udf 查询 database,满足条件才写入消息队列,当然这种方式对性能可能有影响。 On Wed, Oct 12, 2022 at 2:41 PM Zhiwen Sun wrote: > hi all: > > 我们有个场景,需要 Flink SQL 同时写入消息和 database, 后续实时任务消费消息,再次读取 database, 如果消息先于 > database 写入,这就可能导致读取的数据不正确。 > >

Re: Flink SQL 中同时写入多个 sink 时,是否能够保证先后次序

2022-10-13 Thread yidan zhao
在一个自定义sink中实现先写database,再发消息。 或者2个都是自定义的,但是不能通过sink,因为sink后就没数据了。通过process,第一个process完成写入database后,后续process发送消息。 Shuo Cheng 于2022年10月12日周三 16:59写道: > > Flink SQL 自身机制无法保证同一个作业多个 sink 的写入次序。 是否可以考虑从业务逻辑上动手脚,比如写入消息队列 sink 前加个 udf > filter, udf 查询 database,满足条件才写入消息队列,当然这种方式对性能可能有影响。 > > On Wed, Oc

Re: Flink SQL 中同时写入多个 sink 时,是否能够保证先后次序

2022-10-13 Thread Zhiwen Sun
好的,谢谢大家,之前也想过这个方案,复用/继承 JdbcDynamicTableSink 相关代码自定义 connector 。 Zhiwen Sun On Fri, Oct 14, 2022 at 10:08 AM yidan zhao wrote: > 在一个自定义sink中实现先写database,再发消息。 > > 或者2个都是自定义的,但是不能通过sink,因为sink后就没数据了。通过process,第一个process完成写入database后,后续process发送消息。 > > Shuo Cheng 于2022年10月12日周三 16:59写道: > > >

Re: Flink SQL 中同时写入多个 sink 时,是否能够保证先后次序

2022-10-19 Thread Zhiwen Sun
"user-zh" > < > pens...@gmail.com>; > 发送时间: 2022年10月14日(星期五) 中午11:55 > 收件人: "user-zh" > 主题: Re: Flink SQL 中同时写入多个 sink 时,是否能够保证先后次序 > > > > 好的,谢谢大家,之前也想过这个方案,复用/继

回复: Flink SQL 中同时写入多个 sink 时,是否能够保证先后次序

2022-10-12 Thread 仙路尽头谁为峰
Hi Zhiwen: 可以试试将kafkasink设置为exactly-once,同时下游任务的kafkasource设置为读已提交,不过如果你的checkpoint间隔很长,下游要很久才能从kafka拿到数据。 从 Windows 版邮件发送 发件人: Zhiwen Sun 发送时间: 2022年10月12日 14:42 收件人: user-zh@flink.apache.org 主题: Flink SQL 中同时写入多个 sink 时,是否能够保证先后次序 hi all: 我们有个场景,需要 Flink SQL 同时写入消息和 database, 后续实时任务消费