

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将 Apache Flink 连接器与 Managed Service for Apache Flink 一起使用
<a name="how-flink-connectors"></a>

Apache Flink 连接器是将数据移入和移出 Amazon Managed Service for Apache Flink 应用程序的软件组件。连接器是灵活集成的组件，可让您读取文件和目录。连接器包含用于与 Amazon 服务和第三方系统交互的完整模块。

连接器类型包括：
+ **源：**从 Kinesis 数据流、文件、Apache Kafka 主题或其他数据源中向应用程序提供数据。
+ **接收器：** 将数据从应用程序发送到 Kinesis 数据流、Firehose 流、Apache Kafka 主题或其他数据目标。
+ **异步 I/O：**提供对数据来源（例如数据库）的异步访问以丰富流。

Apache Flink 连接器存储在它们自己的源存储库中。Apache Flink 连接器的版本和工件会根据你使用的 Apache Flink 版本以及你使用的是 DataStream、表还是 SQL API 而变化。

Amazon Managed Service for Apache Flink 支持 40 多个预先构建的 Apache Flink 源和接收器连接器。下表提供了最流行连接器及其关联版本的摘要。您也可以使用异步接收器框架构建自定义接收器。有关更多信息，请参阅 Apache Flink 文档中的[通用异步基础接收器](https://flink.apache.org/2022/03/16/the-generic-asynchronous-base-sink/)。

 要访问 Apache Flink Amazon 连接器的存储库，请参阅。[flink-connector-aws](https://github.com/apache/flink-connector-aws)

## 适用于 Flink 2.2 的连接器
<a name="connectors-flink-2-2"></a>

升级到 Flink 2.2 时，您需要将连接器依赖项更新为与 Flink 2.x 运行时兼容的版本。Flink 连接器是独立于 Flink 运行时发布的，而且并非所有连接器都有兼容 Flink 2.x 的版本。下表汇总了截至撰写本文时适用于 Apache Flink 的亚马逊托管服务中常用连接器的可用性：


**适用于 Flink 2.2 的连接器**  

| Connector | Flink 2.0\$1 版本 | 注意 | 
| --- | --- | --- | 
| Apache Kafka | flink-connector-kafka 4.0.0-2.0 | 推荐用于 Flink 2.2 | 
| Kinesis Data Streams（来源） | flink-connector-aws-kinesis-streams 6.0.0-2.0 | 推荐用于 Flink 2.2 | 
| Kinesis Data Streams（接收器） | flink-connector-aws-kinesis-streams 6.0.0-2.0 | 推荐用于 Flink 2.2 | 
| FileSystem (S3、HDFS) | 与 Flink 捆绑在一起 | 内置于 Flink 发行版中 — 始终可用 | 
| JDBC | 2.x 版尚未发布 | 没有兼容 Flink 2.x 的版本可用 | 
| OpenSearch | 2.x 版尚未发布 | 没有兼容 Flink 2.x 的版本可用 | 
| Elasticsearch | 2.x 版尚未发布 | 考虑迁移到 OpenSearch 连接器 | 
| Amazon Managed Service for Prometheus | 2.x 版尚未发布 | 在撰写本文时，尚无兼容 Flink 2.x 的版本 | 

如果您的应用程序依赖的连接器还没有 Flink 2.2 版本，则有两种选择：等待连接器发布兼容版本，或者评估是否可以将其替换为替代版本（例如，使用 JDBC 目录或自定义接收器）。

**已知问题**
+ 当 Kinesis `KinesisStreamsSource` 直播进行重新分片时，使用连接器 v5.0.0 和 v6.0.0 中引入的 with EFO（增强型扇出/ SubscribeToShard）路径的应用程序可能会失败。这是社区中的一个已知问题。有关更多信息，请参阅 [FLINK-37648](https://issues.apache.org/jira/browse/FLINK-37648)。
+ 如果 Flink 应用程序处于背压之下，则使用连接器 v5.0.0 和 v6.0.0 中引入的 with EFO（增强型扇出/ SubscribeToShard）路径的应用程序`KinesisStreamsSink`可能会遇到死锁，从而导致一个或多个应用程序的数据处理完全停止。`KinesisStreamsSource` TaskManagers恢复应用程序需要强制停止操作和启动应用程序操作。这是社区中已知问题的一个子案例：[FLINK-34071](https://issues.apache.org/jira/browse/FLINK-34071)。

## 适用于旧版 Flink 的连接器
<a name="connectors-older-versions"></a>


**适用于旧版 Flink 的连接器**  

| Connector | Flink 版本 1.15 | Flink 版本 1.18 | Flink 1.19 | Flink 1.20 | 
| --- | --- | --- | --- | --- | 
| Kinesis 数据流-来源- DataStream 和表 API | flink-connector-kinesis，1.15.4 | flink-connector-kinesis，4.3.0-1.18 | flink-connector-kinesis，5.0.0-1.19 | flink-connector-kinesis，5.0.0-1.20 | 
| Kinesis 数据流-接收器- DataStream 和表 API | flink-connector-aws-kinesis-streams，1.15.4 | flink-connector-aws-kinesis-streams，4.3.0-1.18 | flink-connector-aws-kinesis-streams，5.0.0-1.19 | flink-connector-aws-kinesis-streams，5.0.0-1.20 | 
| Kinesis Data Streams Source/Sink — SQL | flink-sql-connector-kinesis，1.15.4 | flink-sql-connector-kinesis，4.3.0-1.18 | flink-sql-connector-kinesis，5.0.0-1.19 | flink-sql-connector-kinesis-streams，5.0.0-1.20 | 
| Kafka-and DataStream Table API | flink-connector-kafka，1.15.4 | flink-connector-kafka，3.2.0-1.18 | flink-connector-kafka，3.3.0-1.19 | flink-connector-kafka，3.3.0-1.20 | 
| Kafka - SQL | flink-sql-connector-kafka，1.15.4 | flink-sql-connector-kafka，3.2.0-1.18 | flink-sql-connector-kafka，3.3.0-1.19 | flink-sql-connector-kafka，3.3.0-1.20 | 
| Firehose-and Table DataStream API | flink-connector-aws-kinesis-firehose，1.15.4 | flink-connector-aws-firehose，4.3.0-1.18 | flink-connector-aws-firehose，5.0.0-1.19 | flink-connector-aws-firehose，5.0.0-1.20 | 
| Firehose - SQL | flink-sql-connector-aws-kinesis-firehose，1.15.4 | flink-sql-connector-aws-firehose，4.3.0-1.18 | flink-sql-connector-aws-firehose，5.0.0-1.19 | flink-sql-connector-aws-firehose，5.0.0-1.20 | 
| DynamoDB DataStream -和表 API | flink-connector-dynamodb，3.0.0-1.15 | flink-connector-dynamodb，4.3.0-1.18 | flink-connector-dynamodb，5.0.0-1.19 | flink-connector-dynamodb，5.0.0-1.20 | 
| DynamoDB - SQL | flink-sql-connector-dynamodb，3.0.0-1.15 | flink-sql-connector-dynamodb，4.3.0-1.18 | flink-sql-connector-dynamodb，5.0.0-1.19 | flink-sql-connector-dynamodb，5.0.0-1.20 | 
| OpenSearch - DataStream 还有表格 API | - | flink-connector-opensearch，1.2.0-1.18 | flink-connector-opensearch，1.2.0-1.19 | flink-connector-opensearch，1.2.0-1.19 | 
| OpenSearch -SQL | - | flink-sql-connector-opensearch，1.2.0-1.18 | flink-sql-connector-opensearch，1.2.0-1.19 | flink-sql-connector-opensearch，1.2.0-1.19 | 
| 适用于 Prometheus 的亚马逊托管服务 DataStream | - | flink-sql-connector-opensearch，1.2.0-1.18 | flink-connector-prometheus，1.0.0-1.19 | flink-connector-prometheus，1.0.0-1.20 | 
| 亚马逊 SQS DataStream 和表 API | - | flink-sql-connector-opensearch，1.2.0-1.18 | flink-connector-sqs，5.0.0-1.19 | flink-connector-sqs，5.0.0-1.20 | 

要了解有关 Amazon Managed Service for Apache Flink 中连接器的更多信息，请参阅：
+ [DataStream API 连接器](https://docs.amazonaws.cn/managed-flink/latest/java/how-connectors.html)
+ [Table API 连接器](https://docs.amazonaws.cn/managed-flink/latest/java/how-table-connectors.html)

### 已知问题
<a name="connectors-known-issues"></a>

Apache Flink 1.15 中的 Apache Kafka 连接器存在已知的开源 Apache Flink 问题。此问题已在更高版本的 Apache Flink 中得到解决。

有关更多信息，请参阅 [已知问题](flink-1-15-2.md#flink-1-15-known-issues)。