AWS

【DynamoDB】パーテション

dynamoDBのパーテション(データ格納領域)について記載します。

データ保管場所

DynamoDBのデータは、複数のアベイラビリティゾーンにパーティションという単位の領域内に保存されています。
パーティションの管理はDynamoDBが自動的に行ってくれます。
したがって、データは複数のアベイラビリティゾーンへ自動的にレプリケートされます。

パーティションを割り当てるタイミング

テーブル毎にパーティションを割り当てます。
パーティションの割り当てはテーブル作成時に行われます。
テーブル作成の際に、パーティション容量はキャパシティモードをプロビジョニングモードで作成した場合、指定したスループット要件に対応できる容量で作成されます。
テーブル作成時のステータスがCREATINGの時はテーブルにパーティションを割り当てている最中で、ACTIVEに変わるとパーティションの割り当てが完了して使用できる状態になります。

パーティションの容量が増えるケース

DynamoDBが自動的にパーティションを増やすタイミンは以下の通りです。

  • スループット設定を増やし、増やした結果パーティション容量を超える場合
  • 格納データサイズがパーティション容量を超える場合

パーティションキーとデータ格納領域

DynamoDBのデータの格納領域は、指定したパーティションキーを入力値として、DynamoDBの独自のハッシュ関数で得られた値により決定されます。
したがって、パーティションキーはハッシュキーとも呼ばれます。
データの取得、書き込みを行う際にパーティションキー(ハッシュキー)によりデータの取得先、書き込み先を決定します。
そのため、プライマリキーはパーティションを特定するキーとしてパーティションキーが使用されているようです。

複合プライマリキーとデータ格納場所

複合プライマリキーの場合、同じパーティションキーが存在します。パーティションの格納領域はパーティションキーにより決定しますが、同じパーティションキーが存在するため重複してしまいます。そこでソートキーを使用して、ソートキーの昇順でデータの格納場所が決定します。
複合プライマリキーの場合、同一のパーティションキーが存在するので、データ(項目)は同じパーティションで比較的近い場所に保存されます。

最後に

次回は、項目の自動削除設定について説明します。

© DeNnie.Lab All Rights Reserved.