Étape 5 : Création d'un modèle de données DynamoDB - AWS Directives prescriptives

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, il ComponentId 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é de ComponentId partition.

  • Pour trouver les enfants immédiats d'un composant, créez un GSI où se ParentId trouve la clé de partition et ComponentId la clé de tri. Vous pouvez interroger ce GSI en l'utilisant ParentId 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 et Path est la clé de tri. Vous pouvez interroger ce GSI en utilisant GraphId comme clé de partition et l'opérateur BEGINS_WITH(Path, "$path") sur la clé de tri.

Clé de partition

Clé de tri

Attributs de mappage

Table de base

ComponentId

ParentId, GraphId, Path

GSI1

ParentId

ComponentId

GSI2

GraphId

Path

ComponentId

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_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|CM10

CM1|CM3|CM6

CM1|CM3|CM7

CM1

CM2

CM3

CM4

CM5

CM8

CM9

CM10

CM6

CM7