谢谢,有具体的思路嘛? 比如我需要先写入 jdbc 后再发送消息
是自定义一个 DynamicTableSink , 里面有 JdbcDynamicTableSink KafkaDynamicSink , 还是说继承 JdbcDynamicTableSink , 自定义的类里面再去 new KafkaDynamicSink? 初看起来没办法知道什么时候 db 写入了。要知道什么时候写入,要去自定义 TableInsertOrUpdateStatementExecutor Zhiwen Sun On Tue, Oct 18, 2022 at 5:56 PM 悟空 <wukon...@foxmail.com> wrote: > Hi Zhiwen Sun: > > 自定义Sink 这个思路没问题的,我这边目前就是通过这种方式实现的,只需要自定义一个connector 融合多个sink > connector ,相关options 沿用flink 官方connector的 ,这样方便后续升级。 > 如果有具体相关问题,欢迎讨论。 > > > > > ------------------ 原始邮件 ------------------ > 发件人: > "user-zh" > < > pens...@gmail.com>; > 发送时间: 2022年10月14日(星期五) 中午11:55 > 收件人: "user-zh"<user-zh@flink.apache.org>; > > 主题: Re: Flink SQL 中同时写入多个 sink 时,是否能够保证先后次序 > > > > 好的,谢谢大家,之前也想过这个方案,复用/继承 JdbcDynamicTableSink 相关代码自定义 connector 。 > > Zhiwen Sun > > > > On Fri, Oct 14, 2022 at 10:08 AM yidan zhao <hinobl...@gmail.com> > wrote: > > > 在一个自定义sink中实现先写database,再发消息。 > > > > > 或者2个都是自定义的,但是不能通过sink,因为sink后就没数据了。通过process,第一个process完成写入database后,后续process发送消息。 > > > > Shuo Cheng <njucs...@gmail.com> 于2022年10月12日周三 16:59写道: > > > > > > Flink SQL 自身机制无法保证同一个作业多个 sink 的写入次序。 是否可以考虑从业务逻辑上动手脚,比如写入消息队列 > sink 前加个 > > udf > > > filter, udf 查询 database,满足条件才写入消息队列,当然这种方式对性能可能有影响。 > > > > > > On Wed, Oct 12, 2022 at 2:41 PM Zhiwen Sun <pens...@gmail.com> > wrote: > > > > > > > hi all: > > > > > > > > 我们有个场景,需要 Flink SQL 同时写入消息和 database, 后续实时任务消费消息,再次读取 > database, 如果消息先于 > > > > database 写入,这就可能导致读取的数据不正确。 > > > > > > > > 是否有办法保证 database 写入后,再发送消息? > > > > > > > > Zhiwen Sun > > > > > >