Pagination DynamoDB : présentation, cas d'utilisation et exemples

Pagination Dynamodb Presentation Cas D Utilisation Et Exemples



La gestion de quantités volumineuses de données peut être une tâche ardue pour les gestionnaires de données, principalement si votre requête ou les résultats de votre analyse s'exécutent sur plusieurs pages. La pagination dans DynamoDB permet à la base de données de gérer de grandes quantités de données en divisant les résultats en plusieurs pages gérables. Cet article explique la pagination DynamoDB et fournit divers cas d'utilisation et exemples possibles. Il met également en évidence la différence entre la pagination dans DynamoDB et la pagination dans d'autres bases de données.

Qu'est-ce que la pagination dans DynamoDB ?

Généralement, la pagination, dérivée du mot pages, est une technique utilisée par les bases de données pour diviser les enregistrements de données en plusieurs blocs, segments ou pages. Et comme AWS DynamoDB prend en charge le stockage de grandes quantités de données, il dispose de capacités de pagination fiables.







Le composant de pagination DynamoDB garantit que vous ne pouvez récupérer que jusqu'à 1 Go de données par analyse ou requête. Bien qu'il s'agisse d'un paramètre par défaut, vous pouvez ajouter un paramètre limit dans une requête pour spécifier une limite. Vous pouvez en outre définir une limite pour le nombre d'enregistrements dans chaque requête d'analyse.



Notamment, quelques différences existent entre la pagination dans DynamoDB et la pagination dans une base de données SQL typique. De toute évidence, chaque enregistrement paginé récupéré dans DynamoDB a un coût direct, ce qui en fait une règle non écrite lors de l'utilisation de la pagination dans DynamoDB. Cette fonctionnalité fait de la pagination un facteur essentiel pour limiter à la fois les enregistrements récupérés et les coûts directs.



Comment utiliser la pagination dans DynamoDB





1. Pagination lors d'une opération de requête

Dans DynamoDB, une requête renvoie uniquement les résultats jusqu'à 1 Mo. Mais vous pouvez effectivement confirmer s'il y a plus de résultats en examinant vos résultats. Notamment, un résultat d'opération de requête de bas niveau contient un élément LastEvaluatedKey qui n'est pas nul pour indiquer qu'il y a plus d'éléments liés à votre requête que vous devez récupérer.

Un résultat sans élément LastEvaluatedKey qui n'est pas nul implique que tous les éléments qui correspondent à la requête tiennent dans la limite de 1 Mo et qu'il n'y a plus d'éléments à récupérer. Bien sûr, vous pouvez également définir une limite pour le nombre d'éléments par résultat. Consultez l'exemple de commande suivant :



requête aws dynamodb \

--table-name MaTableName \

--clé-condition-expression 'PartitionKey = :pk \

--expression-attribute-values ​​'{'
:paquet ':{' S ':' a1234b '}},

--limite 10 \

Vous pouvez utiliser la commande précédente pour interroger votre table pour les éléments avec les mêmes valeurs d'expression de condition de clé. Cherchons dans notre table 'Commandes' les order_Ids de Darry Tech. Nous avons également fixé une limite à 10 éléments par page. Une autre option pour le paramètre –limit consiste à utiliser le paramètre –page-size dans le même but.

La pagination est une opération automatique dans l'AWS CLI pour les éléments inférieurs à 1 Mo de données. Vous pouvez ajouter une clé de démarrage exclusive à la commande si vous souhaitez que votre requête démarre à partir d'un ordre particulier.

La réponse ressemble à ceci :

Les résultats fournis montrent 10 Darry Tech sur la première page. Vous pouvez utiliser les valeurs LastEvaluatedKey pour obtenir plus de commandes correspondant aux valeurs de clé d'expression de votre recherche afin de construire une nouvelle requête. La nouvelle demande de requête contient les valeurs LastEvaluatedKey dans le paramètre ExclusiveStartKey.

Un exemple de syntaxe est illustré ci-dessous :

requête aws dynamodb \

--table-name ExampleTable \

--clé-condition-expression 'PartitionKey = :pk \

--expression-attribute-values ​​'{'
:paquet ':{' S ' : Darry Tech' \

--limite 10 \

--exclusive-start-key '{'
PartitionKey ':{' S ' : Darry Tech' }, 'Clé de tri' :{ 'S' : '5356' }} '

La commande précédente produit les commandes de compensation suivantes sur la page suivante, en commençant par l'ID de commande qui a la clé primaire spécifiée, c'est-à-dire {'PartitionKey':{'S': Darry Tech'},'SortKey':{'S': ”5356-sy”}}.

2. Pagination pendant les opérations de numérisation

Il est également possible d'utiliser la pagination pour les opérations de numérisation. Tout fonctionne de la même manière qu'avec les commandes de requête. Cependant, vous devez utiliser l'attribut filter-expression. La commande ressemble à ce que nous avons ici :

analyse aws dynamodb \

--table-name MaTable \

--expression-filtre 'NomAttribut = :valeur' \

--expression-attribute-values '{':value':{'S':'ABC123'}}' \

--limite vingt \

--exclusive-start-key '{'PartitionKey':{'S':'ABC123'},'SortKey':{'S':'XYZ987'}}'

La commande précédente retire jusqu'à 20 éléments par page de la table MyTable, en commençant par l'élément dont la clé primaire est {'PartitionKey': 'ABC123', 'SortKey': 'XYZ987'}. Il filtre les résultats pour inclure uniquement les éléments où l'attribut AttributeName a la valeur 'ABC123'.

Dans la réponse, le LastEvaluatedKey Le champ contient la clé primaire du dernier élément du jeu de résultats. Vous pouvez utiliser cette valeur comme ExclusiveStartKey dans une suite analyse opération pour récupérer la page de résultats suivante.

Conclusion

La pagination dans DynamoDB améliore la gérabilité des données. Cependant, il est essentiel de savoir si vos systèmes bénéficieront de la pagination. Il est nécessaire d'utiliser la pagination si vous avez une longue liste d'éléments dans une application. Bien que l'illustration fournie se concentre sur l'appel AWS CLI, vous pouvez également utiliser la pagination avec les kits SDK AWS tels que Boto3 de Python ou tout kit SDK que vous préférez.