Hi, Leonard
好的,我将会提一个PR来修复这个issue
Leonard Xu 于2020年12月10日周四 下午12:10写道:
> 你们分析是对的,这是个bug,这里应该用SinkFunctionProvider,
> 用GenericJdbcSinkFunction再wrap一层,不用OutputFormatProvider,因为
> OutputFormatSinkFunction没有继承CheckpointedFunction, 没法保证在cp时将buffer数据刷到数据库,
> 也可以说是OutputFormat不会参与cp, 所以at-least-onc
你们分析是对的,这是个bug,这里应该用SinkFunctionProvider,
用GenericJdbcSinkFunction再wrap一层,不用OutputFormatProvider,因为OutputFormatSinkFunction没有继承CheckpointedFunction,
没法保证在cp时将buffer数据刷到数据库,
也可以说是OutputFormat不会参与cp, 所以at-least-once都不一定能保证。
修复应该很简单的,@jie mei 你有兴趣帮忙修复吗?
祝好,
Leonard
> 在 2020年12月10日,11:22,jie me
Hi,Jark
好的,我会就此创建一个issue
Jark Wu 于2020年12月10日周四 上午11:17写道:
> Hi Jie,
>
> 看起来确实是个问题。
> sink 返回的 JdbcBatchingOutputFormat 没有 wrap 到 GenericJdbcSinkFunction 里面。
> 可以帮忙创建个 issue 么?
>
> Best,
> Jark
>
> On Thu, 10 Dec 2020 at 02:05, hailongwang <18868816...@163.com> wrote:
>
> > Hi,
> >是的,感觉你是对的
Hi Jie,
看起来确实是个问题。
sink 返回的 JdbcBatchingOutputFormat 没有 wrap 到 GenericJdbcSinkFunction 里面。
可以帮忙创建个 issue 么?
Best,
Jark
On Thu, 10 Dec 2020 at 02:05, hailongwang <18868816...@163.com> wrote:
> Hi,
>是的,感觉你是对的。
> `JdbcOutputFormat` 会被 wrap 在 `OutputFormatSinkFunction` 中,而
> `OutputFormatSink
Hi, Community
JDBC connector似乎无法确保buffer中的数据在checkpoint的时候全部入库。这是因为
OutputFormat中没有一个接口,供checkpoint的时候调用。 从JDBC的connector的
代码来看,只能设定一个超时时间用以刷新数据,但还是可能存在丢数据的case。
我的问题是:是否有办法强制刷新buffer中的数据入库?
@Public
public interface OutputFormat extends Serializable {
/**
* Configures this output format