Bonnes pratiques concernant l'utilisation de clés de tri pour organiser les données - Amazon DynamoDB

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.

Bonnes pratiques concernant l'utilisation de clés de tri pour organiser les données

Dans une table Amazon DynamoDB, la clé primaire qui identifie de manière unique chaque élément de la table peut être composée d'une clé de partition et d'une clé de tri.

Les clés de tri bien conçues présentent deux avantages :

  • Elles rassemblent des informations connexes dans un seul emplacement, ce qui permet de les interroger efficacement. Une conception soignée de la clé de tri vous permet d'extraire les groupes d'éléments connexes les plus couramment demandés à l'aide de requêtes de plage utilisées avec les opérateurs tels que begins_with, between, >, <, etc.

  • Les clés de tri composites vous permettent de définir des relations hiérarchiques (one-to-many) dans vos données que vous pouvez interroger à n'importe quel niveau de la hiérarchie.

    Par exemple, dans une table répertoriant des emplacements géographiques, vous pouvez structurer la clé de tri comme suit :

    [country]#[region]#[state]#[county]#[city]#[neighborhood]

    Cela vous permet de créer des requêtes de plage efficaces concernant la liste des emplacements à n'importe lequel de ces niveaux d'agrégation, de country jusqu'à neighborhood, en incluant tout ce qu'il y a entre les deux.

Utilisation de clés de tri pour le contrôle de version

De nombreuses applications ont besoin d'avoir un historique des révisions au niveau des éléments à des fins d'audit ou de conformité, et ont également besoin de pouvoir extraire facilement la version la plus récente. Il existe un modèle de conception performant qui permet d'atteindre cet objectif en utilisant des préfixes de clé de tri :

  • Pour chaque nouvel élément, créez deux copies de l'élément : une copie doit comporter un préfixe de numéro de version égal à zéro (comme v0_) au début de la clé de tri, et l'autre doit comporter un préfixe de numéro de version égal à un (comme v1_).

  • Chaque fois que l'élément est mis à jour, utilisez le préfixe de version supérieur suivant pour la clé de tri de la version mise à jour et copiez le contenu mis à jour dans l'élément dont le préfixe de version est zéro. Vous pouvez ainsi localiser facilement la dernière version de n'importe quel élément en utilisant le préfixe zéro.

Par exemple, un fabricant de pièces détachées peut utiliser un schéma comme celui illustré ci-après.


        Exemple de contrôle de version montrant une table avec des attributs de clé primaire et d'élément de données.

L'élément Equipment_1 passe par une série d'audits effectués par plusieurs auditeurs. Les résultats de chaque nouvel audit sont capturés dans un nouvel élément de la table, en commençant par le numéro de version un et en incrémentant ce numéro à chaque nouvelle version.

Chaque fois qu'une nouvelle révision est ajoutée, la couche d'application remplace le contenu de l'élément de version zéro (dont la clé de tri est égale à v0_Audit) par celui de la nouvelle révision.

Chaque fois que l'application doit extraire le statut d'audit le plus récent, elle peut interroger le préfixe de clé de tri v0_.

Si l'application a besoin d'extraire la totalité de l'historique des révisions, elle peut interroger tous les éléments figurant sous la clé de partition de l'élément et filtrer l'élément v0_.

Ce modèle de conception fonctionne également pour les audits concernant plusieurs pièces détachées d'un équipement si vous incluez les ID de pièce détachée dans la clé de tri à la suite du préfixe de clé de tri.