Exemples de requête DynamoDB

Exemples De Requete Dynamodb



Une base de données est une collection de données—DynamoDB ne fait pas exception. Les bases de données contiennent de nombreuses données qui peuvent être difficiles à récupérer sans un mécanisme prédéfini. C'est là que la commande query joue un rôle important.

Comme tout système de gestion de base de données, DynamoDB propose diverses méthodes d'interrogation grâce auxquelles vous pouvez interagir avec le système pour accéder à vos données et les manipuler. L'interrogation dans DynamoDB est un outil très puissant qui vous permet de récupérer un élément ou un groupe d'éléments liés à la commande de requête.

Cet article présente les principaux exemples d'opérations de requête DynamoDB.







Exemples de requêtes DynamoDB courantes

Le comportement par défaut de l'opération de requête dans DynamoDB consiste à renvoyer tous les éléments associés aux éléments de requête. Fait intéressant, la commande query dans DynamoDB est utilisable avec des tables ou des index secondaires.



Quel que soit le cas, assurez-vous toujours de spécifier la condition d'égalité pour la valeur de votre clé de partition. Encore une fois, vous devrez peut-être fournir une condition différente pour la clé de tri au cas où vous en utiliseriez une dans la commande.



Les autres paramètres que vous rencontrerez lors de l'interrogation de DynamoDB incluent également KeyConditionExpression et FilterExpression. KeyConditionExpression spécifie les valeurs de clé que vous avez l'intention d'interroger. D'autre part, FilterExpression supprime des éléments des résultats de la requête avant que vous n'obteniez une réponse. Vous utiliserez les ExpressionAttributeValues ​​comme espaces réservés pour les paramètres d'expression mentionnés.





Les exemples de requête DynamoDB incluent :

Recherche d'un élément unique dans une table basée sur des clés primaires

Vous pouvez utiliser l'utilitaire de requête dans DynmoDB pour rechercher un seul élément en vous appuyant sur une combinaison de la clé de partition et des valeurs de clé de tri de l'élément. La syntaxe d'une telle opération est la suivante :



requête aws dynamodb \

--table-name MaTableName \

--clé-condition-expression 'PartitionKey = :pk AND SortKey = :sk' \

--expression-attribute-values '{':pk':{'S':'a123b'},'':sk':{'S':'def456b'}}'

L'utilitaire de requête ci-dessus vise à récupérer un élément avec une valeur de clé de partition a1234b et une valeur de clé de tri odef456b à partir de la table MyTableName. Par exemple, nous pouvons utiliser l'utilitaire ci-dessus pour trouver un article dans notre tableau 'Commandes'. La valeur de la clé de partition de l'élément peut être wr546gg représentant le Customer_ID, tandis que sa valeur de clé de tri peut être 24536433 représentant le numéro de commande.

Le résultat peut être le suivant :

Le résultat ci-dessus ramène Holiday Books comme le seul élément qui a une valeur de clé de partition de wr546gg et une valeur de clé de tri de 24536433. Il vous apporte également tous les autres attributs supplémentaires associés à l'élément. Dans notre illustration, il ramène le numéro de facture et le montant payé.

Notamment, la commande de requête ramènera une liste vide s'il n'y a aucun élément qui correspond aux valeurs de clé primaire spécifiées.

Récupérer Tous les éléments d'une table DynamoDB correspondant à des valeurs d'attribut spécifiques

Utilisez une expression de filtre pour récupérer tous les éléments qui ont une valeur d'attribut similaire dans une table DynamoDB spécifique.

La commande pour cette opération de requête est comme indiqué ci-dessous.

requête aws dynamodb \

--table-name MaTableName \

--expression-filtre 'AutreAttribut1 = :val' \

--expression-attribute-values '{':val':{'S':'value1'}}'

Par exemple, nous pouvons utiliser la commande de requête ci-dessus pour récupérer des chansons avec plus de 5 minutes dans notre table Musique. Pour ce faire, nous allons définir notre valeur OtherAttribute1 sur 5,00 et MyTableName sur Music.

Le résultat peut être comme indiqué ci-dessous :

Il est nécessaire de tronquer la liste par souci de brièveté. Mais à partir des résultats, notre commande de requête a récupéré 11 éléments avec une valeur filterexpression de 5,00 à partir de notre table DynamoDB Music.

Récupération de tous les éléments avec une plage particulière de valeurs d'attribut

La commande ci-dessous est pratique lors de la récupération d'éléments dans une table particulière :

requête aws dynamodb \

--table-name \

--clé-condition-expression 'nom_attribut ENTRE :val1 ET :val2' \

--expression-attribute-values '{':val1':{'N':''},':val2':{'N':''}}'

Bien sûr, vous devrez remplacer tous les attributs par vos informations d'identification personnalisées comme vous le feriez avec toute autre ligne de commande. Par exemple, nous utiliserons notre table Employee avec un attribut de clé de plage baptisé « age ». Nous viserons à récupérer les employeurs âgés de 30 à 42 ans.

Notre nouvelle ligne de commande sera la suivante :

requête aws dynamodb \

--table-name Utilisateurs \

--clé-condition-expression 'âge ENTRE :val1 ET :val2' \

--expression-attribute-values '{':val1':{'N':'30'},':val2':{'N':'42'}}'

L'exécution de l'utilitaire ci-dessus apportera une réponse similaire à celle de la figure ci-dessous ;

L'illustration ci-dessus montre que la requête a ramené 6 éléments, indiquant la valeur de l'attribut pour chaque requête. Le ScannedCount est le nombre d'éléments scannés dans la table tandis que le CapacityUnits est la quantité d'unités consommées pendant l'opération.

Conclusion

Étant donné que DynamoDB est une base de données NoSQL, son opération de requête ne se comporte pas comme celle de votre base de données AQL ordinaire. Mais une fois que vous l'aurez fait, vous découvrirez que l'opération est assez puissante et rendra votre interaction avec la base de données plus simple.