KPL の主要なコンセプト - Amazon Kinesis Data Streams

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

KPL の主要なコンセプト

以下のセクションでは、Kinesis Producer Library () を理解して利点を得るために必要な概念と用語について説明しますKPL。

レコード

このガイドでは、KPLユーザーレコードKinesis Data Streams レコードを区別します。修飾子なしでレコードという用語を使用する場合、KPLユーザーレコード を参照します。Kinesis Data Streams レコードを意味するときは、明示的に Kinesis Data Streams レコードと表現します。

KPL ユーザーレコードは、ユーザーにとって特定の意味を持つデータの BLOB です。例としては、ウェブサイトの UI イベントを表す JSON BLOB、ウェブサーバーからのログエントリなどがあります。

Kinesis Data Streams レコードは、Kinesis Data Streams サービス によって定義されたRecordデータ構造のインスタンスですAPI。これには、パーティションキー、シーケンス番号、データの BLOB が含まれています。

バッチ処理

バッチ処理は、各項目に対して単一のアクションを繰り返し実行する代わりに、複数の項目に対してそのアクションを実行することを意味します。

ここでは、項目はレコードに対応し、アクションはレコードを Kinesis Data Streams に送信することに対応します。バッチ処理以外の状況では、各レコードを個別の Kinesis Data Streams レコードに配置し、Kinesis Data Streams に送信するHTTPリクエストを 1 回実行します。バッチ処理では、各HTTPリクエストで 1 つのレコードではなく複数のレコードを伝送できます。

は 2 種類のバッチ処理KPLをサポートしています。

  • 集約 - 複数のレコードを単一の Kinesis Data Streams レコードに保存します。

  • コレクション – APIオペレーションPutRecordsを使用して、複数の Kinesis Data Streams レコードを Kinesis Data Streams の 1 つ以上のシャードに送信します。

2 種類のKPLバッチ処理は共存するように設計されており、互いに独立してオンまたはオフにすることができます。デフォルトでは、どちらも有効です。

集計

集約は、複数レコードを 1 つの Kinesis Data Streams レコードに保存することを意味します。集約により、お客様はAPI通話ごとに送信されるレコードの数を増やすことができ、プロデューサーのスループットを効果的に向上させることができます。

Kinesis Data Streams シャードは、1 秒あたり最大で 1,000 レコードまたは 1 MB のスループットをサポートします。1 秒あたりの Kinesis Data Streams レコードの制限により、お客様のレコードは 1 KB 未満に制限されます。レコードの集約を使用すると、複数のレコードを単一の Kinesis Data Streams レコードに結合できます。そのため、お客様はシャードあたりのスループットを改善することができます。

リージョンが us-east-1 の 1 つのシャードで、1 つが 512 バイトのレコードを 1 秒あたり 1,000 レコードの一定割合で処理する場合を考えます。KPL 集約を使用すると、1,000 件のレコードを 10 件の Kinesis Data Streams レコードにのみパックできるため、 は 10 件 (それぞれ 50 KB) RPSに削減されます。

収集

コレクションとは、複数の Kinesis Data Streams レコードをバッチ処理しPutRecords、オペレーション への呼び出しを使用して 1 API 回のHTTPリクエストで送信することを指します。Kinesis Data Streams レコードはそれぞれ独自のHTTPリクエストで送信するわけではありません。

これにより、多数の個別のHTTPリクエストを行うオーバーヘッドが軽減されるため、コレクションを使用しない場合と比較してスループットが向上します。実際、PutRecords 自体が、この目的のために設計されています。

収集は、Kinesis Data Streams レコードのグループを使用している点で集約と異なります。収集された Kinesis Data Streams レコードには、ユーザーの複数のレコードをさらに含めることができます。この関係は、次のように図示できます。

record 0 --| record 1 | [ Aggregation ] ... |--> Amazon Kinesis record 0 --| ... | | record A --| | | ... ... | | record K --| | record L | | [ Collection ] ... |--> Amazon Kinesis record C --|--> PutRecords Request ... | | record S --| | | ... ... | | record AA--| | record BB | | ... |--> Amazon Kinesis record M --| ... | record ZZ--|