メニュー
Amazon Kinesis Streams
開発者ガイド

Amazon Kinesis Streams Applicationの状態の追跡

KCL は、各 Amazon Kinesis Streams applicationに対して、一意の Amazon DynamoDB テーブルを使用してアプリケーションの状態を追跡します。KCL では、Amazon Kinesis Streams application名を使用してテーブルの名前を作成するため、各アプリケーション名は一意である必要があります。

アプリケーションの実行中に、Amazon DynamoDB コンソールを使用してテーブルを表示できます。

アプリケーションの起動時に Amazon Kinesis Streams applicationの Amazon DynamoDB テーブルが存在しない場合は、ワーカーの 1 つがテーブルを作成し、describeStream メソッドを呼び出してテーブルの値を設定します。詳細については、「アプリケーション状態データ」を参照してください。

重要

アカウントには、Kinesis Streams 自体に関連付けられているコストに加えて、DynamoDB テーブルに関連付けられているコストが課金されます。

スループット

Amazon Kinesis Streams applicationでプロビジョニングされたスループットの例外が発生した場合は、DynamoDB テーブルにプロビジョニングされたスループットを増やす必要があります。KCL がテーブルを作成するときにプロビジョニングされるスループットは、1 秒あたりの読み込み 10 回、1 秒あたりの書き込み 10 回ですが、これがユーザーのアプリケーションで十分でない場合があります。たとえば、Amazon Kinesis Streams applicationが頻繁にチェックポイントを作成する場合や、多くのシャードで構成されるストリームを処理する場合は、より多くのスループットが必要になる可能性があります。

DynamoDB でプロビジョニングされたスループットの詳細については、『Amazon DynamoDB 開発者ガイド』の「Amazon DynamoDB でプロビジョニングされたスループット」と「テーブルの操作」を参照してください。

アプリケーション状態データ

DynamoDB テーブルの各行は、アプリケーションによって処理中のシャードを表します。テーブルのハッシュキーはシャード ID です。

シャード ID に加えて、各行には次のデータが含まれます。

  • チェックポイント: シャードの最新チェックポイントのシーケンス番号。この値はストリームのすべてのシャードで一意です。

  • checkpointSubSequenceNumber: Kinesis Producer Library の集約機能を使用するとき、これは Kinesis レコード内の個別のユーザーレコードを追跡するチェックポイントに対する拡張となります。

  • leaseCounter: ワーカーが他のワーカーの撮影を受けたことを検出できるように、リースのバージョニングに使用されます。

  • leaseKey: リースの固有識別子。各リースはストリームのシャードに固有のもので、一度に 1 つのワーカーで保持されます。

  • leaseOwner: このリースを保持しているワーカー。

  • ownerSwitchesSinceCheckpoint: 最後にチェックポイントが書き込まれてから、このリースワーカーが何回変更されたかを示します。

  • parentShardId: 子シャードの処理を開始する前に、親シャードが完全に処理されるようにするために使用します。これにより、レコードがストリームに入力されたのと同じ順序で処理されるようになります。