web-dev-qa-db-ja.com

DynamoDB-複数の範囲キー

範囲キーとして複数のフィールドを持つことは可能ですか?

各行が<A,B,C>によって一意に識別されるテーブルがあるとします

 -------------------------------
 A   |   B   |  C  |  D   |  E  |
 -------------------------------

ここで、Aはプライマリhashキーです

そして、BCをプライマリrangeキーにしたいと思います。

DynamoDBの主キーとして3つ以上のフィールドを持つにはどうすればよいですか?

8
user7

DynamoDBの主キーとして2つを超えるフィールドを持つことはできません。

回避策として、local secondary index範囲キーにしたい各フィールド。ただし、DynamoDBは一度に1つのインデックスしか使用できないため、複数の範囲キーでクエリを同時に作成することはできません。

フィルター式の使用を検討すると、おそらく必要以上の読み取りスループット(dbからデータを受信した後にフィルター処理が実行されます)を使用することになりますが、望ましい結果が得られます。

6

BとCのコピーを範囲フィールドに(追加の列として)挿入し、「B_C」のような範囲キーを作成します。必要に応じて、BとCに個別の列を設定することもできます。

8
Jeff M