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

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

DynamoDB Streams Kinesis アダプタを使用したストリームレコードの処理

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

Kinesis クライアントライブラリ (KCL) を使用して、Kinesis データストリームのアプリケーションを記述できます。KCL は、低レベルの Kinesis Data Streams API よりも便利な抽象化を提供することでコーディングを簡素化します。KCL の詳細については、『Kinesis クライアントライブラリを使用したコンシューマーの開発()Amazon Kinesis Data Streams 開発者ガイド

DynamoDB Streams ユーザーは、KCL 内のデザインパターンを使用して DynamoDB Streams シャードとストリームレコードを処理できます。これを行うには、DynamoDB Streams の Kinesis アダプタを使用します。Kinesis アダプタは KKinesis Data Streams インターフェイスを実装しているため、KCL を使用して DynamoDB Streams からのレコードの消費と処理を行うことができます。

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

DynamoDB Streams Kinesis アダプタを使用すると、KCL インターフェイスに対して開発を開始できます。API 呼び出しは DynamoDB Streams エンドポイントにシームレスに誘導されます。

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

  • ストリームに接続します。

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

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

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

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

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

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

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

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

注記

ここに示す KCL の概念については、Kinesis クライアントライブラリを使用したコンシューマーの開発()Amazon Kinesis Data Streams 開発者ガイド