翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
リシャーディング戦略を決定する
Amazon Kinesis Data Streams におけるリシャーディングの目的は、ストリームをデータの流量の変化に適応させることです。シャードを分割すると、ストリームの容量 (およびコスト) が増えます。シャードを結合すると、ストリームのコスト (および容量) が減ります。
リシャーディングへの 1 つのアプローチとして考えられるのは、ストリーム内のすべてのシャードを分割することです。これにより、ストリームの容量は倍増します。ただし、実際に必要になるよりも多くの容量が追加されるため、不要なコストが生じる可能性があります。
メトリクスを使用して、シャードがホットであるかコールドであるか、つまり、想定より過多なデータを受け取っているか、過少なデータを受け取っているかを判断できます。ホットシャードは分割して、それらのハッシュキーに対応した容量を増やすことができます。同様に、コールドシャードは結合して、未使用の容量をより有効に活用できます。
Kinesis Data Streams が発行する Amazon CloudWatch メトリクスから、ストリームのパフォーマンスデータを取得できます。ただし、ストリームについて独自のメトリックを収集することもできます。1 つのアプローチとして考えられるのは、データレコードのパーティションキーによって生成されたハッシュキー値をログに記録することです。ストリームにレコードを追加するときにパーティションキーを指定していることを思い出してください。
putRecordRequest.setPartitionKey( String.format( "myPartitionKey" ) );
Kinesis Data Streams では、MD5
また、データレコードが割り当てられているシャードの ID をログに記録することもできます。シャード ID は、getShardId
メソッドによって返される putRecordResults
オブジェクトおよび putRecords
メソッドによって返される putRecordResult
オブジェクトの putRecord
メソッドを使用することによって利用できます。
String shardId = putRecordResult.getShardId();
シャード ID とハッシュキー値を使用すると、最も多いまたは少ないトラフィックを受け取っているシャードとハッシュキーを特定できます。その後、リシャーディングによりこれらのハッシュキーに対応した容量を増やすか減らすことができます。