本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 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 源和接收器连接器。下表提供了最流行连接器及其关联版本的摘要。您也可以使用异步接收器框架构建自定义接收器。有关更多信息,请参阅 Apache Flink 文档中的通用异步基础接收器
要访问 Apache Flink AWS 连接器的存储库,请参阅。flink-connector-aws
适用于 Flink 2.2 的连接器
升级到 Flink 2.2 时,您需要将连接器依赖项更新为与 Flink 2.x 运行时兼容的版本。Flink 连接器是独立于 Flink 运行时发布的,而且并非所有连接器都有兼容 Flink 2.x 的版本。下表汇总了截至撰写本文时适用于 Apache Flink 的亚马逊托管服务中常用连接器的可用性:
| Connector | Flink 2.0+ 版本 | 注意 |
|---|---|---|
| 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。 如果 Flink 应用程序处于背压之下,则使用连接器 v5.0.0 和 v6.0.0 中引入的 with EFO(增强型扇出/ SubscribeToShard)路径的应用程序
KinesisStreamsSink可能会遇到死锁,从而导致一个或多个应用程序的数据处理完全停止。KinesisStreamsSourceTaskManagers恢复应用程序需要强制停止操作和启动应用程序操作。这是社区中已知问题的一个子案例:FLINK-34071。
适用于旧版 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 中连接器的更多信息,请参阅:
已知问题
Apache Flink 1.15 中的 Apache Kafka 连接器存在已知的开源 Apache Flink 问题。此问题已在更高版本的 Apache Flink 中得到解决。
有关更多信息,请参阅 已知问题。