DynamoDB ストリーム Kinesis Adapter を使用したストリームレコードの処理 - Amazon DynamoDB

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

DynamoDB ストリーム Kinesis Adapter を使用したストリームレコードの処理

Amazon DynamoDB から Streams を消費するには、Amazon Kinesis Adapter の使用をお勧めします。DynamoDB ストリーム API は、Kinesis Data Streams (大規模なストリーミングデータをリアルタイムで処理するためのサービス) の API と意図的に似たものになっています。どちらのサービスでも、データストリームはシャード(ストリームレコードのコンテナ)で構成されています。どちらのサービスの API にも、ListStreamsDescribeStreamGetShardsGetShardIterator の各オペレーションが含まれています。(DynamoDB ストリーム のアクションは Kinesis Data Streams のアクションと似ていますが、100 パーセント同じではありません)。

Kinesis Data Streams のアプリケーションは、Kinesis Client Library (KCL) を使用して記述できます。KCL は、低レベルの Kinesis Data Streams API の上で役に立つ抽象化を提供することによりコーディングを簡素化します。KCL の詳細については、Amazon Kinesis Data Streams 開発者ガイド の「Kinesis クライアントライブラリを使用したコンシューマーの開発」に示されている概要を参照してください。

DynamoDB ストリーム ユーザーは、KCL 内で見つかった設計パターンを使用して、DynamoDB ストリーム のシャードとストリームレコードを処理できます。これを行うには、DynamoDB ストリーム Kinesis Adapter を使用します。DynamoDB ストリーム からのレコードの使用と処理に KCL を使用できるように、Kinesis Adapter には Kinesis Data Streams インターフェイスが実装されます。

次の図に、これらのライブラリがどのように相互に作用するかを示します。

DynamoDB ストリーム Kinesis Adapter が用意されたら、DynamoDB ストリーム エンドポイントでシームレスに指示された API 呼び出しを行って、KCL インターフェイスを対象とした開発を開始できます。

アプリケーションは起動時に KCL を呼び出してワーカーをインスタンス化します。ワーカーには、アプリケーションの設定情報(ストリームの記述子や AWS 認証情報など)と、お客様が指定したレコードプロセッサクラス名を提供する必要があります。ワーカーは、コードをレコードプロセッサで実行するため、以下のタスクを実行します。

  • ストリームに接続する.

  • ストリーム内のシャードを列挙します。

  • シャードと他のワーカー(存在する場合)の関連付けを調整します。

  • レコードプロセッサで管理する各シャードのレコードプロセッサをインスタンス化する.

  • ストリームからレコードを取得します。

  • 対応するレコードプロセッサにレコードを送信する.

  • 処理されたレコードのチェックポイントを作成する.

  • ワーカーのインスタンス数が変化したときに、シャードとワーカーの関連付けを調整する.

  • シャードが分割されたときに、シャードとワーカーの関連付けを調整する.

注記

ここに挙げた KCL の概念の説明については、Amazon Kinesis Data Streams 開発者ガイドの「Kinesis クライアントライブラリを使用したコンシューマーの開発」を参照してください。