Hi Luna Wong.

RichOutputFormat 实现的最终是由 Flink 提供的 OutputFormatSinkFunction 再包装成
SinkFunction。 OutputFormatSinkFunction 很早就 Deprecated 了,没有实现
CheckpointedFunction 。
jdbc 的是实现了 RichOutputFormat ,但是最后用 GenericJdbcSinkFunction 包装了一次,
GenericJdbcSinkFunction 实现了 CheckpointedFunction,
刚好最近遇到 https://issues.apache.org/jira/browse/FLINK-20552 ,可以看下这个 BUG 的修复。

1.12 之前 :
org.apache.flink.table.planner.plan.nodes.common.CommonPhysicalSink
https://github.com/apache/flink/blob/release-1.12/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/plan/nodes/common/CommonPhysicalSink.scala#L97-L101
最新 1.13
: org.apache.flink.table.planner.plan.nodes.exec.common.CommonExecSink
https://github.com/apache/flink/blob/master/flink-table/flink-table-planner-blink/src/main/java/org/apache/flink/table/planner/plan/nodes/exec/common/CommonExecSink.java#L153-L163

Luna Wong <gfen...@gmail.com> 于2021年4月8日周四 下午5:42写道:

> 自定义Connector时,RichSinkFunction和RichOutputFormat可以选择一个进行实现,那么作为开发者应该如何选择呢?
>

Reply via email to