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 (GSI) :
-
Conformément aux meilleures pratiques de conception des clés,
ComponentId
utilisez-la comme clé de partition pour la table de base dans cet exemple. Parce qu'il est unique, ilComponentId
peut 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é deComponentId
partition. -
Pour trouver les enfants immédiats d'un composant, créez un GSI où se
ParentId
trouve la clé de partition etComponentId
la clé de tri. Vous pouvez interroger ce GSI en l'utilisantParentId
comme clé de partition. -
Pour trouver tous les enfants récursifs d'un composant, créez un GSI où
GraphId
est la clé de partition etPath
est la clé de tri. Vous pouvez interroger ce GSI en utilisantGraphId
comme 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|CM10 |
L'index GSI1
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'index GSI1. 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'index GSI2
Le tableau croisé dynamique suivant représente l'index GSI2. 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_with
opé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|CM10 CM1|CM3|CM6 CM1|CM3|CM7 |
CM1 CM2 CM3 CM4 CM5 CM8 CM9 CM10 CM6 CM7 |