プロビジョニング書き込みスループットは、あなたのテーブルのすべての破片の間で分散されます。テーブルのサイズとスループットに応じて、データはシャードに分散されます。
(readCapacityUnits/3,000) + (writeCapacityUnits/1,000) = initialPartitions (rounded up)
10 GBのデータごとにもパーティションが作成されます。
Understand Partition Behaviorを参照してください。
書き込み要求が複数のパーティションキーに分散されていない場合、プロビジョニングされたスループットに達する前に、調整された要求が発生します。
具体的には、テーブルは少なくとも5つの区切りで存在します。つまり、シャードごとに1秒あたり最大1,000単位の書き込み容量を使用できます。
2番目に考慮すべき事項は、アイテムのサイズです。各書込み要求は、1KBのアイテムサイズごとに1書込み容量単位を消費する。
Write Capacity Unitsを参照してください。
要約:書き込み要求または読み取り要求がすべてのシャードに並行してヒットした場合にのみ、プロビジョニングされたスループットの100%を使用できます。そのためには、ワークロードを複数の異なるパーティションキーに分散する必要があります。
インポート先のテーブルにグローバルセカンダリインデックスがありますか? –
私はテーブルに約5つのインデックスを持っています。それぞれは、テーブル自体と同じ書き込み容量(それぞれ5000)を持っています。 – Abarnett
gotcha。私はこのドキュメントを見ていました:例えば、グローバルなセカンダリインデックスを照会し、プロビジョニングされた読み取り容量を超えた場合、リクエストは抑制されます。テーブルで大量の書き込みアクティビティを実行するが、そのテーブルのグローバルセカンダリインデックスが十分な書き込み容量を持たない場合は、テーブルの書き込みアクティビティが抑制されます.' http://docs.aws.amazon.com/ amazondynamodb/latest/developerguide/GSI.html#GSI.ThroughputConsiderations –