You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by "hdxg1101300123@163.com" <hd...@163.com> on 2020/12/07 08:46:54 UTC

flink 使用关系型数据库的默认事务是否可以做到端对端的精确一次,还是需要实现2p2提交

大家好:
        flink 使用关系型数据库的默认事务是否可以做到端对端的精确一次,还是需要实现2p2提交;
        自己实现sink开启数据库事务,遇到错误回滚并抛出异常,是否可以实现数据精确一次
谢谢!



hdxg1101300123@163.com

Re: flink 使用关系型数据库的默认事务是否可以做到端对端的精确一次,还是需要实现2p2提交

Posted by Leonard Xu <xb...@gmail.com>.
> 你的意思是 自己实现sink 提交的过程中抛出所有异常并且rollback,是可以做到端对端精确一次的; 
不是,我是在回答你Flink 在写入关系数据库是可以实现端到端一致的,需要的方式需要实现两阶段提交,这个思路是可行的。你说的简单地回滚是没法保证exactly-once语义的。


> hdxg1101300123@163.com
> 
> 发件人: Leonard Xu
> 发送时间: 2020-12-07 17:00
> 收件人: user-zh
> 主题: Re: flink 使用关系型数据库的默认事务是否可以做到端对端的精确一次,还是需要实现2p2提交
> Hi,
> 
>> 在 2020年12月7日,16:46,hdxg1101300123@163.com 写道:
>> 
>>       flink 使用关系型数据库的默认事务是否可以做到端对端的精确一次,还是需要实现2p2提交;
>>       自己实现sink开启数据库事务,遇到错误回滚并抛出异常,是否可以实现数据精确一次
> 
> Flink 写入关系型数据库是可以做到端到端的一致性的,默认是不支持的,需要实现两阶段提交,按照你的思路是可行的。另外社区也有人在做这个feature[1],已经有PR了,你可以参考,预计会在1.13里支持。
> 
> 祝好,
> Leonard
> [1] https://issues.apache.org/jira/browse/FLINK-15578 <https://issues.apache.org/jira/browse/FLINK-15578> 


Re: Re: flink 使用关系型数据库的默认事务是否可以做到端对端的精确一次,还是需要实现2p2提交

Posted by 赵一旦 <hi...@gmail.com>.
不可以把。即使是使用2阶段提交,那就意味着你需要将写入Mysql的频率降低到和检查点一致,或者将检查点频率提升到和你对Mysql数据的实施性要求一致。

hdxg1101300123@163.com <hd...@163.com> 于2020年12月7日周一 下午6:40写道:

> 你的意思是 自己实现sink 提交的过程中抛出所有异常并且rollback,是可以做到端对端精确一次的;我个人认为这样可以
> 想和别人交流一下。奈何没有人,就想在社区里问问
>
>
>
> hdxg1101300123@163.com
>
> 发件人: Leonard Xu
> 发送时间: 2020-12-07 17:00
> 收件人: user-zh
> 主题: Re: flink 使用关系型数据库的默认事务是否可以做到端对端的精确一次,还是需要实现2p2提交
> Hi,
>
> > 在 2020年12月7日,16:46,hdxg1101300123@163.com 写道:
> >
> >        flink 使用关系型数据库的默认事务是否可以做到端对端的精确一次,还是需要实现2p2提交;
> >        自己实现sink开启数据库事务,遇到错误回滚并抛出异常,是否可以实现数据精确一次
>
> Flink
> 写入关系型数据库是可以做到端到端的一致性的,默认是不支持的,需要实现两阶段提交,按照你的思路是可行的。另外社区也有人在做这个feature[1],已经有PR了,你可以参考,预计会在1.13里支持。
>
> 祝好,
> Leonard
> [1] https://issues.apache.org/jira/browse/FLINK-15578 <
> https://issues.apache.org/jira/browse/FLINK-15578>
>

Re: 回复: flink 使用关系型数据库的默认事务是否可以做到端对端的精确一次,还是需要实现2p2提交

Posted by Jark Wu <im...@gmail.com>.
数据库两阶段提交,保证 exactly once 语义,社区正在支持,感兴趣的可以在
https://issues.apache.org/jira/browse/FLINK-15578 下面讨论。

Best,
Jark

On Tue, 8 Dec 2020 at 09:14, hdxg1101300123@163.com <hd...@163.com>
wrote:

>
>
>
>
> hdxg1101300123@163.com
>
> 发件人: hdxg1101300123@163.com
> 发送时间: 2020-12-07 18:40
> 收件人: user-zh
> 主题: 回复: Re: flink 使用关系型数据库的默认事务是否可以做到端对端的精确一次,还是需要实现2p2提交
> 你的意思是 自己实现sink 提交的过程中抛出所有异常并且rollback,是可以做到端对端精确一次的;我个人认为这样可以
> 想和别人交流一下。奈何没有人,就想在社区里问问
>
>
>
> hdxg1101300123@163.com
>
> 发件人: Leonard Xu
> 发送时间: 2020-12-07 17:00
> 收件人: user-zh
> 主题: Re: flink 使用关系型数据库的默认事务是否可以做到端对端的精确一次,还是需要实现2p2提交
> Hi,
>
> > 在 2020年12月7日,16:46,hdxg1101300123@163.com 写道:
> >
> >        flink 使用关系型数据库的默认事务是否可以做到端对端的精确一次,还是需要实现2p2提交;
> >        自己实现sink开启数据库事务,遇到错误回滚并抛出异常,是否可以实现数据精确一次
>
> Flink
> 写入关系型数据库是可以做到端到端的一致性的,默认是不支持的,需要实现两阶段提交,按照你的思路是可行的。另外社区也有人在做这个feature[1],已经有PR了,你可以参考,预计会在1.13里支持。
>
> 祝好,
> Leonard
> [1] https://issues.apache.org/jira/browse/FLINK-15578 <
> https://issues.apache.org/jira/browse/FLINK-15578>
>

回复: 回复: flink 使用关系型数据库的默认事务是否可以做到端对端的精确一次,还是需要实现2p2提交

Posted by "hdxg1101300123@163.com" <hd...@163.com>.



hdxg1101300123@163.com
 
发件人: hdxg1101300123@163.com
发送时间: 2020-12-07 18:40
收件人: user-zh
主题: 回复: Re: flink 使用关系型数据库的默认事务是否可以做到端对端的精确一次,还是需要实现2p2提交
你的意思是 自己实现sink 提交的过程中抛出所有异常并且rollback,是可以做到端对端精确一次的;我个人认为这样可以 想和别人交流一下。奈何没有人,就想在社区里问问



hdxg1101300123@163.com
 
发件人: Leonard Xu
发送时间: 2020-12-07 17:00
收件人: user-zh
主题: Re: flink 使用关系型数据库的默认事务是否可以做到端对端的精确一次,还是需要实现2p2提交
Hi,
 
> 在 2020年12月7日,16:46,hdxg1101300123@163.com 写道:
> 
>        flink 使用关系型数据库的默认事务是否可以做到端对端的精确一次,还是需要实现2p2提交;
>        自己实现sink开启数据库事务,遇到错误回滚并抛出异常,是否可以实现数据精确一次
 
Flink 写入关系型数据库是可以做到端到端的一致性的,默认是不支持的,需要实现两阶段提交,按照你的思路是可行的。另外社区也有人在做这个feature[1],已经有PR了,你可以参考,预计会在1.13里支持。
 
祝好,
Leonard
[1] https://issues.apache.org/jira/browse/FLINK-15578 <https://issues.apache.org/jira/browse/FLINK-15578> 

回复: Re: flink 使用关系型数据库的默认事务是否可以做到端对端的精确一次,还是需要实现2p2提交

Posted by "hdxg1101300123@163.com" <hd...@163.com>.
你的意思是 自己实现sink 提交的过程中抛出所有异常并且rollback,是可以做到端对端精确一次的;我个人认为这样可以 想和别人交流一下。奈何没有人,就想在社区里问问



hdxg1101300123@163.com
 
发件人: Leonard Xu
发送时间: 2020-12-07 17:00
收件人: user-zh
主题: Re: flink 使用关系型数据库的默认事务是否可以做到端对端的精确一次,还是需要实现2p2提交
Hi,
 
> 在 2020年12月7日,16:46,hdxg1101300123@163.com 写道:
> 
>        flink 使用关系型数据库的默认事务是否可以做到端对端的精确一次,还是需要实现2p2提交;
>        自己实现sink开启数据库事务,遇到错误回滚并抛出异常,是否可以实现数据精确一次
 
Flink 写入关系型数据库是可以做到端到端的一致性的,默认是不支持的,需要实现两阶段提交,按照你的思路是可行的。另外社区也有人在做这个feature[1],已经有PR了,你可以参考,预计会在1.13里支持。
 
祝好,
Leonard
[1] https://issues.apache.org/jira/browse/FLINK-15578 <https://issues.apache.org/jira/browse/FLINK-15578> 

Re: flink 使用关系型数据库的默认事务是否可以做到端对端的精确一次,还是需要实现2p2提交

Posted by Leonard Xu <xb...@gmail.com>.
Hi,

> 在 2020年12月7日,16:46,hdxg1101300123@163.com 写道:
> 
>        flink 使用关系型数据库的默认事务是否可以做到端对端的精确一次,还是需要实现2p2提交;
>        自己实现sink开启数据库事务,遇到错误回滚并抛出异常,是否可以实现数据精确一次

Flink 写入关系型数据库是可以做到端到端的一致性的,默认是不支持的,需要实现两阶段提交,按照你的思路是可行的。另外社区也有人在做这个feature[1],已经有PR了,你可以参考,预计会在1.13里支持。

祝好,
Leonard
[1] https://issues.apache.org/jira/browse/FLINK-15578 <https://issues.apache.org/jira/browse/FLINK-15578>