KCL の概念 - Amazon Kinesis Data Streams

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

KCL の概念

このセクションでは、Kinesis Client Library (KCL) の主要な概念と、その相互関係について説明します。これらの概念は、KCL コンシューマーアプリケーションを開発および管理するうえで基本となるものです。

  • KCL コンシューマーアプリケーション - Kinesis Client Library を使用して、Kinesis データストリームからレコードを読み取って処理するように設計されたカスタムビルドアプリケーション。

  • ワーカー – KCL コンシューマーアプリケーションは、通常 1 つ以上のワーカーが同時に実行される分散構成で動作します。KCL はワーカー同士を調整し、ストリームからのデータを分散方式で取得できるようにするとともに、複数のワーカー間で処理負荷が均等になるように管理します。

  • スケジューラ – KCL ワーカーがデータの処理を開始するために使用する高レベルのクラス。各 KCL ワーカーには 1 つのスケジューラがあります。スケジューラは、Kinesis データストリームからのシャード情報の同期、ワーカー間におけるシャード割り当ての追跡、そしてワーカーに割り当てられたシャードに基づくストリームからのデータ処理といった、さまざまなタスクを初期化し、監督します。スケジューラは、処理対象のストリーム名や AWS 認証情報など、スケジューラの動作に影響するさまざまな設定を行うことができます。また、スケジューラはストリームからレコードプロセッサへのデータレコードの受け渡しを開始する役割も担います。

  • レコードプロセッサ - レコードプロセッサは、KCL コンシューマーアプリケーションがデータストリームから受信したデータをどのように処理するかというロジックを定義します。レコードプロセッサ内には、独自のカスタムデータ処理ロジックを実装する必要があります。KCL ワーカーはスケジューラをインスタンス化します。次に、スケジューラは、ワーカーがリースを保持している各シャードに対して 1 つのレコードプロセッサをインスタンス化します。1 つのワーカーは複数のレコードプロセッサを実行できます。

  • リース – ワーカーとシャード間の割り当てを定義します。KCL コンシューマーアプリケーションは、複数のワーカーにデータレコード処理を分散するためにリースを使用します。各シャードは、任意の時点でリースによって 1 つのワーカーにのみ結び付けられ、各ワーカーは同時に 1 つ以上のリースを保持できます。ワーカーが停止または障害によってリースを保持できなくなると、KCL は別のワーカーにそのリースを引き継がせます。リースの詳細については、Github documentation: Lease Lifecycle を参照してください。

  • リーステーブル – KCL コンシューマーアプリケーションにおけるすべてのリースを追跡するために使用される、専用の Amazon DynamoDB テーブルです。各 KCL コンシューマーアプリケーションは、独自のリーステーブルを作成します。このリーステーブルは、すべてのワーカー間で状態を保持し、データ処理を調整するために使用されます。詳細については、「KCL における DynamoDB メタデータテーブルと負荷分散」を参照してください。

  • チェックポイント — シャード内で最後に正常に処理されたレコードの位置を永続的に保存するプロセス。KCL はチェックポイントを管理し、ワーカーが障害を起こした場合やアプリケーションが再起動した場合でも、最後にチェックポイントされた位置から処理を再開できるようにします。チェックポイントは、リースのメタデータの一部として DynamoDB のリーステーブルに保存されます。これにより、ワーカーは前のワーカーが処理を停止した位置から処理を続行できます。