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?

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.


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.


Kann dieser Ansatz als Lösung für dieses Problem verwendet werden ?
Birowsky
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.