

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

# 將 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、Table 或 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 AWS 連接器的儲存庫，請參閱 [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 相容版本。下表摘要說明截至撰寫時 Amazon Managed Service for Apache Flink 中常用連接器的可用性：


**Flink 2.2 的連接器**  

| 連接器 | 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 串流進行重新分片時，連接器 v5.0.0 和 v6.0.0 中引入`KinesisStreamsSource`搭配 EFO （增強廣發/SubscribeToShard) 路徑使用 的應用程式可能會失敗。這是社群中的已知問題。如需詳細資訊，請參閱 [FLINK-37648](https://issues.apache.org/jira/browse/FLINK-37648)。
+ 如果 Flink 應用程式處於背壓狀態，則連接器 v5.0.0 和 v6.0.0 中引入`KinesisStreamsSource`搭配 EFO （增強廣發/SubscribeToShard) 路徑使用 的應用程式`KinesisStreamsSink`可能會遇到死結，導致一個或多個 TaskManagers 中的資料處理完全停止。需要強制停止操作和啟動應用程式操作才能復原應用程式。這是社群中已知問題的子案例：[FLINK-34071](https://issues.apache.org/jira/browse/FLINK-34071)。

## 舊版 Flink 的連接器
<a name="connectors-older-versions"></a>


**舊版 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 中的連接器，請參閱：
+ [DataStream API 連接器](https://docs.aws.amazon.com/managed-flink/latest/java/how-connectors.html)
+ [資料表 API 連接器](https://docs.aws.amazon.com/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)。