View a markdown version of this page

将 Apache Flink 连接器与 Managed Service for Apache Flink 一起使用 - Managed Service for Apache Flink

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

将 Apache Flink 连接器与 Managed Service for Apache Flink 一起使用

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 源和接收器连接器。下表提供了最流行连接器及其关联版本的摘要。您也可以使用该 Async-sink 框架构建自定义接收器。有关更多信息,请参阅 Apache Flink 文档中的通用异步基础接收器

要访问 Apache Flink AWS 连接器的存储库,请参阅 flink-connector-aws。

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

适用于 Flink 2.0+ 的连接器

Connector

Flink 2.2 版本

Flink 2.3 版本

Apache Kafka

flink-connector-kafka 4.0.0-

flink-connector-kafka 4.0.0-

Kinesis Data Streams(来源)

flink-connector-aws-kinesis-streams 6.0.1-2.

flink-connector-aws-kinesis-streams 6.0.1-2.

Kinesis Data Streams(接收器)

flink-connector-aws-kinesis-streams 6.0.1-2.

flink-connector-aws-kinesis-streams 6.0.1-2.

FileSystem (S3、HDFS)

与 Flink 捆绑在一起

与 Flink 捆绑在一起

JDBC

flink-connector-jdbc-core 4.0.0-2.

flink-connector-jdbc-core 4.0.0-2.

OpenSearch

2.x 版尚未发布

2.x 版尚未发布

Elasticsearch

flink-connector-elasticsearch7 4.0.0-

flink-connector-elasticsearch7 4.0.0-

Amazon Managed Service for Prometheus

2.x 版尚未发布

2.x 版尚未发布

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

注意

从版本 4.0.0-2.0 开始,JDBC 连接器已模块化。整体flink-connector-jdbc工件被核心工件 (flink-connector-jdbc-core) 和数据库特定的工件(例如和)所取代。flink-connector-jdbc-postgres flink-connector-jdbc-mysql升级到 Flink 2.x 时,相应地更新你的 Maven 或 Gradle 依赖关系。

已知问题

  • 当 Kinesis KinesisStreamsSource 直播进行重新分片时,使用连接器 v5.0.0 和 v6.0.0 中引入的 efo(增强型 Fan-Out / SubscribeToShard)路径的应用程序可能会失败。这是社区中的一个已知问题。有关更多信息,请参阅 FLINK-37648

  • 如果 Flink 应用程序处于背压状态,则使用连接器 v5.0.0 和 v6.0.0 中引入的 with EFO (Enhanced Fan-Out / SubscribeToShard) 路径的应用程序KinesisStreamsSink可能会遇到死锁,从而导致一个或多个应用程序的数据处理完全停止。KinesisStreamsSource TaskManagers恢复应用程序需要强制停止操作和启动应用程序操作。这是社区中已知问题的一个子案例:FLINK-34071.

适用于旧版 Flink 的连接器

适用于旧版 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.00-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.00-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 中连接器的更多信息,请参阅:

已知问题

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

有关更多信息,请参阅 已知问题