Apache Flink 能否在 Table-API/SQL 中使用内置连接器实现端到端精确一次?

Can Apache Flink achieve end-to-end-exactly-once with built-in connectors in Table-API/SQL?

我想知道,如果 Apache Flink (v1.11) 可以实现 end-to-end-exactly-once 语义 连接器(卡夫卡,JDBC,文件)使用Table-API/SQL?

我在文档中找不到与此相关的任何内容。只有我可以在 EXACTLY_ONCE 模式下启用检查点。

这完全取决于您 use/combine 在 source/sink 侧的连接器。

来源

  • Kafka 支持 exactly-once
  • 文件系统支持exactly-once
  • JDBC 还不能用作流媒体源。如果这是您的要求,请查看 [2]。

下沉

  • Kafka 支持至少一次 (Flink 1.11) 和恰好一次 (Flink 1.12) [1]
  • 文件系统支持exactly-once。
  • JDBC 如果 table 通过在数据库中执行更新插入具有主键,则支持恰好一次。否则至少一次。

[1] https://ci.apache.org/projects/flink/flink-docs-release-1.12/dev/table/connectors/kafka.html#consistency-guarantees

[2] https://github.com/ververica/flink-cdc-connectors