DynamoDB - Index

DynamoDB utilise des index pour les attributs de clé primaire afin d'améliorer les accès. Ils accélèrent les accès aux applications et la récupération des données, et prennent en charge de meilleures performances en réduisant le retard des applications.

Index secondaire

Un index secondaire contient un sous-ensemble d'attributs et une clé alternative. Vous l'utilisez via une opération de requête ou d'analyse, qui cible l'index.

Son contenu comprend les attributs que vous projetez ou copiez. Lors de la création, vous définissez une clé alternative pour l'index et tous les attributs que vous souhaitez projeter dans l'index. DynamoDB effectue ensuite une copie des attributs dans l'index, y compris les attributs de clé primaire provenant de la table. Après avoir effectué ces tâches, vous utilisez simplement une requête / analyse comme si vous exécutiez sur une table.

DynamoDB gère automatiquement tous les index secondaires. Sur les opérations d'élément, telles que l'ajout ou la suppression, il met à jour tous les index de la table cible.

DynamoDB propose deux types d'index secondaires -

  • Global Secondary Index- Cet index comprend une clé de partition et une clé de tri, qui peuvent différer de la table source. Il utilise le libellé «global» en raison de la capacité des requêtes / analyses sur l'index à couvrir toutes les données de la table et toutes les partitions.

  • Local Secondary Index- Cet index partage une clé de partition avec la table, mais utilise une clé de tri différente. Sa nature «locale» résulte de la portée de toutes ses partitions vers une partition de table avec une valeur de clé de partition identique.

Le meilleur type d'index à utiliser dépend des besoins de l'application. Considérez les différences entre les deux présentées dans le tableau suivant -

Qualité Indice secondaire mondial Index secondaire local
Schéma clé Il utilise une clé primaire simple ou composite. Il utilise toujours une clé primaire composite.
Attributs clés La clé de partition d'index et la clé de tri peuvent être constituées d'attributs de table de type chaîne, nombre ou binaire. La clé de partition de l'index est un attribut partagé avec la clé de partition de table. La clé de tri peut être une chaîne, un nombre ou des attributs de table binaire.
Limites de taille par valeur de clé de partition Ils ne comportent aucune limitation de taille. Il impose une limite maximale de 10 Go sur la taille totale des éléments indexés associés à une valeur de clé de partition.
Opérations d'index en ligne Vous pouvez les générer lors de la création de la table, les ajouter à des tables existantes ou supprimer celles existantes. Vous devez les créer lors de la création de la table, mais vous ne pouvez pas les supprimer ni les ajouter aux tables existantes.
Requêtes Il permet des requêtes couvrant toute la table et chaque partition. Ils adressent des partitions uniques via la valeur de clé de partition fournie dans la requête.
Cohérence Les requêtes de ces index n'offrent que l'option finalement cohérente. Les requêtes de ces derniers offrent les options de cohérence à terme ou fortement cohérente.
Coût de débit Il inclut les paramètres de débit pour les lectures et les écritures. Les requêtes / analyses consomment de la capacité de l'index, pas de la table, ce qui s'applique également aux mises à jour d'écriture de table. Les requêtes / analyses consomment la capacité de lecture de la table. Table écrit les index locaux de mise à jour et consomme des unités de capacité de table.
Projection Les requêtes / analyses ne peuvent demander que des attributs projetés dans l'index, sans récupération des attributs de table. Les requêtes / analyses peuvent demander ces attributs non projetés; en outre, des récupérations automatiques d'entre eux se produisent.

Lorsque vous créez plusieurs tables avec des index secondaires, faites-le de manière séquentielle; ce qui signifie créer une table et attendre qu'elle atteigne l'état ACTIF avant d'en créer une autre et d'attendre à nouveau. DynamoDB n'autorise pas la création simultanée.

Chaque index secondaire nécessite certaines spécifications -

  • Type - Spécifiez local ou global.

  • Name - Il utilise des règles de dénomination identiques aux tables.

  • Key Schema - Seules les chaînes, les nombres ou les types binaires de niveau supérieur sont autorisés, le type d'index déterminant d'autres exigences.

  • Attributes for Projection - DynamoDB les projette automatiquement et autorise tout type de données.

  • Throughput - Spécifiez la capacité de lecture / écriture pour les index secondaires globaux.

La limite des index reste 5 globale et 5 locale par table.

Vous pouvez accéder aux informations détaillées sur les index avec DescribeTable. Il renvoie le nom, la taille et le nombre d'éléments.

Note - Ces valeurs sont mises à jour toutes les 6 heures.

Dans les requêtes ou analyses utilisées pour accéder aux données d'index, indiquez les noms de table et d'index, les attributs souhaités pour le résultat et toutes les instructions conditionnelles. DynamoDB offre la possibilité de renvoyer les résultats par ordre croissant ou décroissant.

Note - La suppression d'une table supprime également tous les index.