使用 DynamoDB Streams Kinesis 轉接器處理串流記錄 - Amazon DynamoDB

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

使用 DynamoDB Streams Kinesis 轉接器處理串流記錄

建議透過 Amazon Kinesis 轉接器耗用來自 Amazon DynamoDB 的串流。DynamoDB Streams API 與 Kinesis Data Streams API 相類似是刻意為之,後者是可即時處理大規模串流資料的服務。在這兩種服務中,資料串流由碎片組成,碎片是用於串流紀錄的容器。這兩種服務的 API 都包含 ListStreamsDescribeStreamGetShards 以及 GetShardIterator 操作。(雖然這些 DynamoDB Streams 動作與其在 Kinesis Data Streams 中的對應動作類似,但它們並非完全相同。)

您可以使用 Kinesis Client Library (KCL) 為 Kinesis Data Streams 撰寫應用程式。KCL 會在低階 Kinesis Data Streams API 上提供有用的抽象,可以簡化程式碼。如需 KCL 的詳細資訊,請參閱《Amazon Kinesis Data Streams 開發人員指南》中的使用 Kinesis Client Library 開發消費者

身為 DynamoDB Streams 使用者,您可以使用在 KCL 內找到的設計模式來處理 DynamoDB Streams 碎片和串流紀錄。為此,您可以使用 DynamoDB Streams Kinesis 轉接器。Kinesis 轉接器會實作 Kinesis Data Streams 界面,以便您將 KCL 用於耗用和處理來自 DynamoDB Streams 的紀錄。如需有關如何設定和安裝 DynamoDB Streams Kinesis 動配接器的指示,請參閱存放庫。GitHub

下圖顯示這些程式庫彼此如何互動。

DynamoDB Streams、Kinesis Data Streams 和 KCL 之間的互動,以處理 DynamoDB Streams 記錄。

有了 DynamoDB Streams Kinesis 轉接器,您就可以開始針對 KCL 界面進行開發,並將 API 呼叫順暢地導向 DynamoDB Streams 端點。

當應用程式啟動後,其會呼叫 KCL 以將工作者執行個體化。您必須為 Worker 提供應用程式的組態資訊,例如串流描述元和 AWS 認證,以及您所提供之記錄處理器類別的名稱。當其在紀錄處理器中執行程式碼時,工作者會執行下列任務:

  • 連線到串流

  • 列舉串流內的碎片

  • 與其他工作者 (若有) 協調碎片關聯性

  • 為其所管理的每個碎片執行個體化記錄處理器

  • 從串流提取紀錄

  • 將記錄推送至對應的記錄處理器

  • 對已處理的記錄執行檢查點作業

  • 當工作者執行個體數目變更時,平衡碎片與工作者的關聯

  • 當碎片進行分割時,平衡碎片與工作者的關聯

注意

如需此處所列 KCL 概念的描述,請參閱《Amazon Kinesis Data Streams 開發人員指南》中的使用 Kinesis Client Library 開發消費者

如需使用串流的詳細資訊, AWS Lambda 請參閱 DynamoDB Streams 和觸發器 AWS Lambda