View a markdown version of this page

搭配 Managed Service for Apache Flink 使用 Apache Flink 連接器 - Managed Service for Apache Flink

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

搭配 Managed Service for Apache Flink 使用 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、Table 或 SQL API。

Amazon Managed Service for Apache Flink 支援超過 40 個預先建置的 Apache Flink 來源和接收器連接器。下表提供最常用的連接器及其相關版本的摘要。您也可以使用非同步接收器架構建置自訂接收器。如需詳細資訊,請參閱 Apache Flink 文件中的一般非同步基礎接收器

若要存取 Apache Flink AWS 連接器的儲存庫,請參閱 flink-connector-aws

升級至 Flink 2.x 時,您需要將連接器相依性更新為與 Flink 2.x 執行時間相容的版本。Flink 連接器獨立於 Flink 執行期發行,而且並非所有連接器都有 Flink 2.x 相容版本。下表摘要說明截至撰寫時 Amazon Managed Service for Apache Flink 中常用連接器的可用性:

Flink 2.0+ 的連接器

連接器

Flink 2.2 版本

Flink 2.3 版本

Apache Kafka

flink-connector-kafka 4.0.0-2.0

flink-connector-kafka 4.0.0-2.0

Kinesis Data Streams (來源)

flink-connector-aws-kinesis-streams 6.0.1-2.0

flink-connector-aws-kinesis-streams 6.0.1-2.0

Kinesis Data Streams (接收器)

flink-connector-aws-kinesis-streams 6.0.1-2.0

flink-connector-aws-kinesis-streams 6.0.1-2.0

FileSystem (S3、HDFS)

與 Flink 綁定

與 Flink 綁定

JDBC

flink-connector-jdbc-core 4.0.0-2.0

flink-connector-jdbc-core 4.0.0-2.0

OpenSearch

尚未針對 2.x 發行

尚未針對 2.x 發行

Elasticsearch

flink-connector-elasticsearch7 4.0.0-2.0

flink-connector-elasticsearch7 4.0.0-2.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-postgresflink-connector-jdbc-mysql。升級至 Flink 2.x 時,請相應地更新您的 Maven 或 Gradle 相依性。

已知問題

  • 當 Kinesis 串流進行重新分片時,連接器 v5.0.0 和 v6.0.0 中引入KinesisStreamsSource搭配 EFO (增強廣發/SubscribeToShard) 路徑使用 的應用程式可能會失敗。這是社群中的已知問題。如需詳細資訊,請參閱 FLINK-37648

  • 如果 Flink 應用程式處於背壓狀態,則連接器 v5.0.0 和 v6.0.0 中引入KinesisStreamsSource的搭配 EFO (增強廣發/SubscribeToShard) 路徑使用 的應用程式KinesisStreamsSink可能會遇到死結,導致一個或多個 TaskManagers 中的資料處理完全停止。需要強制停止操作和啟動應用程式操作才能復原應用程式。這是社群中已知問題的子案例:FLINK-34071

舊版 Flink 的連接器

舊版 Flink 的連接器
連接器 Flink 1.15 版 Flink 1.18 版 Flink 1.19 版 Flink 1.20 版
Kinesis Data Stream - 來源 - 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 Data Stream - Sink - 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 - 來源/接收器 - 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 - DataStream 和資料表 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 - 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
Amazon Managed Service for 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
Amazon 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 的更新版本中解決。

如需詳細資訊,請參閱已知問題