DynamoDB - Touches à plages multiples


9

Est-il possible d'avoir plusieurs champs comme clé de plage?

Disons que j'ai un tableau où chaque ligne est identifiée de manière unique par <A,B,C>

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

Aest la hashclé primaire

et je veux Bet Cêtre les rangeclés primaires .

Comment puis-je avoir plus de 2 champs comme clé primaire dans DynamoDB?

Réponses:


6

Vous ne pouvez pas avoir plus de 2 champs comme clé primaire dans DynamoDB.

Comme solution de contournement, vous pouvez créer local secondary indexpour chaque champ que vous souhaitez être une clé de plage. Mais vous ne pourrez pas créer de requête avec plusieurs clés de plage simultanément car DynamoDB ne peut utiliser qu'un seul index à la fois.

Envisagez d'utiliser des expressions de filtre, vous finirez probablement par utiliser plus de débit de lecture (le filtrage est effectué après la réception des données de db) que vous n'en avez besoin, mais obtenez les résultats souhaités.


8

Mettez une copie de B et C dans le champ de plage (en tant que colonne supplémentaire) et assurez-vous que votre clé de plage comme "B_C" et vous pouvez toujours avoir des colonnes distinctes pour B et C si vous en avez besoin.


Cette approche peut-elle être utilisée comme solution à ce problème ?
Birowsky
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.