开发者社区> 问答> 正文

SinkFunction与OutputFormat选择哪个?

自定义Connector时,RichSinkFunction和RichOutputFormat可以选择一个进行实现,那么作为开发者应该如何选择呢?*来自志愿者整理的flink

展开
收起
毛毛虫雨 2021-12-05 22:17:15 1054 0
1 条回答
写回答
取消 提交回答
  • 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*来自志愿者整理的flink

    2021-12-05 22:44:47
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载