使用 DynamoDB Streams Kinesis 轉接器處理串流記錄
建議透過 Amazon Kinesis 轉接器耗用來自 Amazon DynamoDB 的串流。DynamoDB Streams API 類似於 Kinesis Data Streams 的 API 是刻意為之。在這兩種服務中,資料串流由碎片組成,碎片是用於串流紀錄的容器。此兩項服務的 API 都包含 DynamoDB Streams API,類似於 Kinesis Data Streams 的 API 是刻意為之。在這兩種服務中,資料串流由碎片組成,碎片是用於串流紀錄的容器。這兩種服務的 API 都包含 ListStreams、DescribeStream、GetShards 以及 GetShardIterator 操作。(雖然這些 DynamoDB Streams 動作與其在 Kinesis Data Streams 中的對應動作類似,但它們並非完全相同。)
DynamoDB Streams 客戶可以使用 Kinesis Client Library (KCL) 內的設計模式,以處理 DynamoDB Streams 碎片和串流紀錄。為此,您可以使用 DynamoDB Streams Kinesis 轉接器。Kinesis 轉接器會實作 Kinesis Data Streams 介面,以便您將 KCL 用於耗用和處理來自 DynamoDB Streams 的紀錄。如需如何設定和安裝 DynamoDB Streams Kinesis Adapter 的指示,請參閱 GitHub 儲存庫
身為 DynamoDB Streams 使用者,您可以使用在 KCL 內找到的設計模式來處理 DynamoDB Streams 碎片和串流紀錄。為此,您可以使用 DynamoDB Streams Kinesis 轉接器。Kinesis 轉接器會實作 Kinesis Data Streams 介面,以便您將 KCL 用於耗用和處理來自 DynamoDB Streams 的紀錄。如需如何設定和安裝 DynamoDB Streams Kinesis Adapter 的指示,請參閱 GitHub 儲存庫
您可以使用 Kinesis Client Library (KCL) 為 Kinesis Data Streams 撰寫應用程式。KCL 會在低階 Kinesis Data Streams API 上提供有用的抽象,可以簡化程式碼。如需 KCL 的詳細資訊,請參閱《Amazon Kinesis Data Streams 開發人員指南》中的使用 Kinesis Client Library 開發取用者。
DynamoDB 建議使用 KCL 3.x 版搭配 Java v2.x AWS SDK。目前的 DynamoDB Streams Kinesis Adapter 1.x 版搭配 適用於 Java 的 AWS SDK v1.x AWS SDK,預期在轉換期間持續獲得整個生命週期長度的全面支援,遵循 AWS SDK 和工具維護政策。
注意
Amazon Kinesis Client Library (KCL) 版本 1.x 和 2.x 已過期。KCL 1.x 將於 2026 年 1 月 30 日終止支援。我們強烈建議您,在 2026 年 1 月 30 日之前,將使用 1.x 版的 KCL 應用程式移轉至最新的 KCL 版本。如需尋找最新的 KCL 版本,請參閱 GitHub 上的 Amazon Kinesis Client Library
下圖顯示這些程式庫彼此如何互動。
有了 DynamoDB Streams Kinesis 轉接器,您就可以開始針對 KCL 介面進行開發,並將 API 呼叫順暢地導向 DynamoDB Streams 端點。
當應用程式啟動後,其會呼叫 KCL 以將工作者執行個體化。您必須為工作者提供應用程式的組態資訊,例如串流描述項和 AWS 憑證,以及您所提供之紀錄處理器類別的名稱。當其在紀錄處理器中執行程式碼時,工作者會執行下列任務:
-
連線到串流
-
列舉串流內的碎片
-
檢查並列舉串流中已關閉父碎片的子碎片
-
檢查並列舉串流中已關閉父碎片的子碎片
-
與其他工作者 (若有) 協調碎片關聯性
-
為其所管理的每個碎片執行個體化記錄處理器
-
從串流提取紀錄
-
將記錄推送至對應的記錄處理器
-
對已處理的記錄執行檢查點作業
-
當工作者執行個體數目變更時,平衡碎片與工作者的關聯
-
當碎片進行分割時,平衡碎片與工作者的關聯
注意
如需此處所列 KCL 概念的描述,請參閱 Amazon Kinesis Data Streams 開發人員指南中的使用 Kinesis Client Library 開發取用者。
如需有關搭配 AWS Lambda 使用串流的詳細資訊,請參閱 DynamoDB Streams 和 AWS Lambda 觸發條件。