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?

user7
la source

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.

Vasily Sochinsky
la source
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.

Jeff M
la source
Cette approche peut-elle être utilisée comme solution à ce problème ?
Birowsky