範囲キーとして複数のフィールドを持つことは可能ですか?
各行が<A,B,C>
によって一意に識別されるテーブルがあるとします
-------------------------------
A | B | C | D | E |
-------------------------------
ここで、A
はプライマリhash
キーです
そして、B
とC
をプライマリrange
キーにしたいと思います。
DynamoDBの主キーとして3つ以上のフィールドを持つにはどうすればよいですか?
DynamoDBの主キーとして2つを超えるフィールドを持つことはできません。
回避策として、local secondary index
範囲キーにしたい各フィールド。ただし、DynamoDBは一度に1つのインデックスしか使用できないため、複数の範囲キーでクエリを同時に作成することはできません。
フィルター式の使用を検討すると、おそらく必要以上の読み取りスループット(dbからデータを受信した後にフィルター処理が実行されます)を使用することになりますが、望ましい結果が得られます。
BとCのコピーを範囲フィールドに(追加の列として)挿入し、「B_C」のような範囲キーを作成します。必要に応じて、BとCに個別の列を設定することもできます。