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

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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

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

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 Adapter を使用します。Kinesis Adapter は Kinesis Data Streams インターフェイスを実装しているため、KCL を使用して DynamoDB Streams からのレコードを消費および処理することができます。DynamoDB Streams Kinesis アダプターをセットアップしてインストールする方法については、リポジトリを参照してください。GitHub

次の図表は、これらのライブラリがどのように連携するかを示しています。

DynamoDB Streams Kinesis Adapter を使用すれば、DynamoDB Streams エンドポイントにシームレスに誘導された API コールを使用して、KCL インターフェイスに対して開発を開始できます。

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

  • ストリームに接続する

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

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

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

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

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

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

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

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

注記

こちらに記載されている KCL 概念の説明については、「Amazon Kinesis Data Streams デベロッパーガイド」の「Kinesis Client Library を使用したコンシューマーの開発」を参照してください。

でのストリームの使用方法の詳細については、を参照してください。 AWS Lambda DynamoDB Streams とトリガー AWS Lambda