本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 DynamoDB Streams Kinesis 轉接器處理串流記錄
建議透過 Amazon Kinesis 轉接器耗用來自 Amazon DynamoDB 的串流。DynamoDB Streams API刻意與 Kinesis Data Streams 類似,Kinesis Data Streams 是一種用於大規模即時處理串流資料的服務。在這兩種服務中,資料串流由碎片組成,碎片是用於串流紀錄的容器。這兩個服務都APIs包含 ListStreams
、GetShards
、 DescribeStream
和 GetShardIterator
操作。(雖然這些 DynamoDB Streams 動作與其在 Kinesis Data Streams 中的對應動作類似,但它們並非完全相同。)
您可以使用 Kinesis Client Library () 編寫 Kinesis Data Streams 的應用程式KCL。透過在低階 Kinesis Data Streams 上方提供有用的摘要,KCL簡化編碼API。如需 的詳細資訊KCL,請參閱 Amazon Kinesis Kinesis Data Streams 開發人員指南 中的使用 Kinesis 用戶端程式庫開發消費者。
目前 1.x KCL版與 AWS SDK for Java v1.x 將繼續在其生命週期中完全支援,以確保穩定性和效能。如果您使用的是現有的 SDK,則在過渡期間,使用 AWS SDK for Java v1.x 的現有應用程式將繼續如預期運作,以符合 AWS SDKs和 工具維護政策 。
身為 DynamoDB Streams 使用者,您可以使用 中發現的設計模式KCL來處理 DynamoDB Streams 碎片和串流記錄。為此,您可以使用 DynamoDB Streams Kinesis 轉接器。Kinesis Adapter 會實作 Kinesis Data Streams 介面,以便 KCL 可用來取用和處理來自 DynamoDB Streams 的記錄。如需如何設定和安裝 DynamoDB Streams Kinesis Adapter 的指示,請參閱 GitHub 儲存庫
下圖顯示這些程式庫彼此如何互動。
使用 DynamoDB Streams Kinesis Adapter,您可以開始針對KCL介面進行開發,並將API呼叫無縫導向 DynamoDB Streams 端點。
當應用程式啟動時,它會呼叫 KCL來實例化工作者。您必須為工作者提供應用程式的組態資訊,例如串流描述符和 AWS 憑證,以及您提供的記錄處理器類別名稱。當其在紀錄處理器中執行程式碼時,工作者會執行下列任務:
-
連線到串流
-
列舉串流內的碎片
-
與其他工作者 (若有) 協調碎片關聯性
-
為其所管理的每個碎片執行個體化記錄處理器
-
從串流提取紀錄
-
將記錄推送至對應的記錄處理器
-
對已處理的記錄執行檢查點作業
-
當工作者執行個體數目變更時,平衡碎片與工作者的關聯
-
當碎片進行分割時,平衡碎片與工作者的關聯
注意
如需此處所列KCL概念的說明,請參閱 Amazon Kinesis Kinesis Data Streams 開發人員指南 中的使用 Kinesis 用戶端程式庫開發消費者。
如需搭配 使用串流的詳細資訊, AWS Lambda 請參閱 DynamoDB 串流和 AWS Lambda 觸發程序