Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Étape 5 : Création d'un modèle de données DynamoDB
Définissez les clés de partition pour votre table de base et vos index secondaires globaux (GSIs) :
-
Conformément aux meilleures pratiques de conception des clés,
ComponentIdutilisez-la comme clé de partition pour la table de base dans cet exemple. Parce qu'il est unique, ilComponentIdpeut offrir une granularité. DynamoDB utilise la valeur de hachage de votre clé de partition pour déterminer la partition dans laquelle les données sont stockées physiquement. L'ID de composant unique génère une valeur de hachage différente, ce qui peut faciliter la distribution des données dans la table. Vous pouvez interroger la table de base à l'aide d'une clé deComponentIdpartition. -
Pour trouver les enfants immédiats d'un composant, créez un GSI où se
ParentIdtrouve la clé de partition etComponentIdla clé de tri. Vous pouvez interroger ce GSI en l'utilisantParentIdcomme clé de partition. -
Pour trouver tous les enfants récursifs d'un composant, créez un GSI où
GraphIdest la clé de partition etPathest la clé de tri. Vous pouvez interroger ce GSI en utilisantGraphIdcomme clé de partition et l'opérateurBEGINS_WITH(Path, "$path")sur la clé de tri.
Clé de partition |
Clé de tri |
Attributs de mappage |
|
Table de base |
|
|
|
GSI1 |
|
|
|
GSI2 |
|
|
|
Stockage des composants dans la table
L'étape suivante consiste à créer chaque composant sur la table de base DynamoDB. Après avoir inséré tous les composants de l'arbre d'exemple, vous obtenez le tableau de base suivant.
ComponentId |
ParentId |
GraphId |
Chemin |
CM1 |
CM1#1 |
CM1 |
|
CM2 |
CM1 |
CM1#1 |
CM1|CM2 |
CM3 |
CM1 |
CM1#1 |
CM1|CM3 |
CM4 |
CM2 |
CM1#1 |
CM1|CM2|CM4 |
CM5 |
CM2 |
CM1#1 |
CM1|CM2|CM5 |
CM6 |
CM3 |
CM1#1 |
CM1|CM3|CM6 |
CM7 |
CM3 |
CM1#1 |
CM1|CM3|CM7 |
CM8 |
CM4 |
CM1#1 |
CM1|CM2|CM4|CM8 |
CM9 |
CM4 |
CM1#1 |
CM1|CM2|CM4|CM9 |
CM10 |
CM5 |
CM1#1 |
CM1| CM2 | CM5 | CM1 0 |
L' GSI1 indice
Pour vérifier tous les enfants immédiats d'un composant, vous créez un index utilisé ParentId comme clé de partition et ComponentId comme clé de tri. Le tableau croisé dynamique suivant représente l' GSI1 indice. Vous pouvez utiliser cet index pour récupérer tous les composants enfants immédiats à l'aide d'un ID de composant parent. Par exemple, vous pouvez savoir combien de batteries sont disponibles dans une voiture (CM1) ou quelles cellules sont disponibles dans un module (CM4).
ParentId |
ComponentId |
CM1 |
CM2 CM3 |
CM2 |
CM4 CM5 |
CM3 |
CM6 CM7 |
CM4 |
CM8 CM9 |
CM5 |
CM10 |
L' GSI2 indice
Le tableau croisé dynamique suivant représente l' GSI2 indice. Il est configuré à l'aide de GraphId en tant que clé de partition et Path comme clé de tri. À l'aide de GraphI d et de l'begins_withopération sur la touche de tri (Path), vous pouvez trouver la lignée complète d'un composant dans une arborescence.
GraphId |
Chemin |
ComponentId |
CM1#1 |
CM1 CM1|CM2 CM1|CM3 CM1|CM2|CM4 CM1|CM2|CM5 CM1|CM2|CM4|CM8 CM1|CM2|CM4|CM9 CM1| CM2 | CM5 | CM1 0 CM1|CM3|CM6 CM1|CM3|CM7 |
CM1 CM2 CM3 CM4 CM5 CM8 CM9 CM10 CM6 CM7 |