翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
KCL の概念
このセクションでは、Kinesis Client Library (KCL) の主要な概念とインタラクションについて説明します。これらの概念は、KCL コンシューマーアプリケーションの開発と管理の基本です。
-
KCL コンシューマーアプリケーション – Kinesis Client Library を使用して Kinesis データストリームからレコードを読み取って処理するように設計されたカスタムビルドアプリケーション。
-
ワーカー – 通常、KCL コンシューマーアプリケーションは分散され、1 人以上のワーカーが同時に実行されます。KCL は、分散された方法でストリームからのデータを消費するようにワーカーを調整し、複数のワーカー間で負荷を均等に分散します。
-
スケジューラ – KCL ワーカーがデータ処理を開始するために使用する高レベルクラス。各 KCL ワーカーには 1 つのスケジューラがあります。スケジューラは、Kinesis データストリームからのシャード情報の同期、ワーカー間のシャード割り当ての追跡、割り当てられたシャードに基づいてワーカーへのストリームからのデータの処理など、さまざまなタスクを初期化して監視します。スケジューラは、処理するストリームの名前や AWS 認証情報など、スケジューラの動作に影響するさまざまな設定を行うことができます。スケジューラは、ストリームからレコードプロセッサへのデータレコードの配信を開始します。
-
レコードプロセッサ – KCL コンシューマーアプリケーションがデータストリームから受信したデータを処理する方法のロジックを定義します。レコードプロセッサに独自のカスタムデータ処理ロジックを実装する必要があります。KCL ワーカーはスケジューラをインスタンス化します。次に、スケジューラはリースを保持するシャードごとに 1 つのレコードプロセッサをインスタンス化します。ワーカーは複数のレコードプロセッサを実行できます。
-
リース – ワーカーとシャード間の割り当てを定義します。KCL コンシューマーアプリケーションはリースを使用して、複数のワーカーにデータレコード処理を分散します。各シャードは、任意の時点でリースによって 1 人のワーカーにのみバインドされ、各ワーカーは 1 つ以上のリースを同時に保持できます。ワーカーが停止または失敗によりリースの保持を停止すると、KCL はリースを引き受ける別のワーカーを割り当てます。リースの詳細については、Github のドキュメント「リースライフサイクル
」を参照してください。 -
リーステーブル – は、KCL コンシューマーアプリケーションのすべてのリースを追跡するために使用される一意の Amazon DynamoDB テーブルです。各 KCL コンシューマーアプリケーションは、独自のリーステーブルを作成します。リーステーブルは、データ処理を調整するためにすべてのワーカーの状態を維持するために使用されます。詳細については、「DynamoDB メタデータテーブルと KCL でのロードバランシング」を参照してください。
-
チェックポイント — 最後に正常に処理されたレコードの位置をシャードに永続的に保存するプロセスです。KCL はチェックポイントを管理し、ワーカーが失敗した場合やアプリケーションが再起動した場合に、最後のチェックポイント位置から処理を再開できることを確認します。チェックポイントは、リースのメタデータの一部として DynamoDB リーステーブルに保存されます。これにより、ワーカーは前のワーカーが停止した場所から処理を続行できます。