DynamoDB - Mehrere Bereichstasten

8

Ist es möglich, mehrere Felder als Bereichsschlüssel zu haben?

Angenommen, ich habe eine Tabelle, in der jede Zeile eindeutig durch gekennzeichnet ist <A,B,C>

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

Wo Aist der Primärschlüssel hash?

und ich möchte Bund Csoll der Primärschlüssel sein range.

Wie kann ich mehr als 2 Felder als Primärschlüssel in DynamoDB haben?

user7
quelle

Antworten:

6

Sie können nicht mehr als 2 Felder als Primärschlüssel in DynamoDB haben.

Um dieses Problem zu umgehen, können Sie local secondary indexfür jedes Feld einen Bereichsschlüssel erstellen . Sie können jedoch keine Abfrage mit mehreren Bereichsschlüsseln gleichzeitig erstellen, da DynamoDB jeweils nur einen Index verwenden kann.

Wenn Sie Filterausdrücke verwenden, werden Sie wahrscheinlich mehr Lesedurchsatz verwenden (die Filterung wird durchgeführt, nachdem Daten von db empfangen wurden), als Sie benötigen, aber die gewünschten Ergebnisse erzielen.

Wassili Sotschinski
quelle
8

Fügen Sie eine Kopie von B und C in das Bereichsfeld ein (als zusätzliche Spalte) und stellen Sie sicher, dass Ihr Bereichsschlüssel "B_C" lautet. Bei Bedarf können Sie auch separate Spalten für B und C verwenden.

Jeff M.
quelle
Kann dieser Ansatz als Lösung für dieses Problem verwendet werden ?
Birowsky