连接器和格式

Flink 应用程序可以通过连接器读取和写入各种外部系统。它支持多种格式,以便对数据进行编码和解码以匹配 Flink 的数据结构。

DataStreamTable API/SQL 都提供了连接器和格式的概述。

可用的组件

为了使用连接器和格式,您需要确保 Flink 可以访问实现了这些功能的组件。对于 Flink 社区支持的每个连接器,我们在 Maven Central 发布了两类组件:

  • flink-connector-<NAME> 这是一个精简 JAR,仅包括连接器代码,但不包括最终的第三方依赖项;
  • flink-sql-connector-<NAME> 这是一个包含连接器第三方依赖项的 uber JAR;

这同样适用于格式。请注意,某些连接器可能没有相应的 flink-sql-connector-<NAME> 组件,因为它们不需要第三方依赖项。

uber/fat JAR 主要与SQL 客户端一起使用,但您也可以在任何 DataStream/Table 应用程序中使用它们。

使用组件

为了使用连接器/格式模块,您可以:

  • 把精简 JAR 及其传递依赖项打包进您的作业 JAR;
  • 把 uber JAR 打包进您的作业 JAR;
  • 把 uber JAR 直接复制到 Flink 发行版的 /lib 文件夹内;

关于打包依赖项,请查看 MavenGradle 指南。有关 Flink 发行版的参考,请查看Flink 依赖剖析

决定是打成 uber JAR、精简 JAR 还是仅在发行版包含依赖项取决于您和您的使用场景。如果您使用 uber JAR,您将对作业里的依赖项版本有更多的控制权;如果您使用精简 JAR,由于您可以在不更改连接器版本的情况下更改版本(允许二进制兼容),您将对传递依赖项有更多的控制权;如果您直接在 Flink 发行版的 /lib 目录里内嵌连接器 uber JAR,您将能够在一处控制所有作业的连接器版本。