2012-06-07 3 views
2

Je suis récemment à la recherche du nouveau service NoSQL qu'Amazon fournit, plus précisément du DynamoDB. Amazon recommande d'éviter d'utiliser des clés distribuées de manière inégale comme clé primaire, à savoir que les clés primaires doivent être les plus uniques, mieux c'est. Puis-je voir cela comme ayant une clé primaire unique pour chaque article est le meilleur des cas? Que diriez-vous d'avoir des objets avec des clés dupliquées?DynamoDB: Comment la clé de hachage est-elle utilisée?

Je veux savoir comment le mécanisme sous-jacent fonctionne donc je sais à quel point il peut être mauvais.

Répondre

4

Les tables sont partitionnées sur plusieurs machines en fonction de la clé de hachage, de sorte que plus elles sont aléatoires, mieux c'est. Dans mon application, j'utilise company_id pour le hachage, puis un identifiant unique pour la gamme, de cette façon, mes tables peuvent être distribuées de façon raisonnablement égale. Ce qu'ils essaient d'éviter, c'est d'utiliser la même clé de hachage pour la majorité de vos données. Plus ils sont aléatoires, plus il est facile pour Dynamo de garder rapidement vos données à votre disposition.

+0

Merci pour la réponse, mais que se passe-t-il si j'utilise un entier croissant de façon monotone comme clé au lieu de valeurs totalement randomisées? –

+1

Cela fonctionne parfaitement. J'utilise généralement des UUID générés aléatoirement plutôt qu'un compte incrémentiel uniquement pour le fait qu'il est plus facile à implémenter. Le hachage – greg

+0

peut également être utilisé pour regrouper les éléments de manière logique afin d'accélérer les requêtes. –

Questions connexes