Opérations de lecture et d'écriture - 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.

Opérations de lecture et d'écriture

Les opérations de lecture DynamoDB vous permettent de récupérer un ou plusieurs éléments d'une table en spécifiant la valeur de la clé de partition et, éventuellement, la valeur de la clé de tri. Les opérations d'écriture DynamoDB vous permettent d'insérer, de mettre à jour ou de supprimer des éléments dans un tableau. Cette rubrique explique la consommation d'unités de capacité pour ces deux opérations.

Consommation unitaire de capacité pour les opérations de lecture

Les demandes de lecture de DynamoDB peuvent être soit fortement cohérentes, soit éventuellement cohérentes, soit transactionnelles.

  • Une demande de lecture très cohérente d'un élément jusqu'à 4 Ko nécessite une unité de lecture.

  • Une demande de lecture finalement cohérente d'un élément jusqu'à 4 Ko nécessite une demi-unité de lecture.

  • Une demande de lecture transactionnelle d'un élément d'une taille maximale de 4 Ko nécessite deux unités de lecture.

Pour en savoir plus sur les modèles de cohérence de lecture dans DynamoDB, consultez Cohérence en lecture.

Les tailles d'élément pour les lectures sont arrondies au multiple de 4 Ko supérieur. Par exemple, la lecture d'un élément d'une taille de 3 500 octets consomme le même débit que la lecture d'un élément d'une taille de 4 Ko.

Si vous devez lire un élément dont la taille est supérieure à 4 Ko, DynamoDB a besoin d'unités de lecture supplémentaires. Le nombre total d'unités de lecture requises dépend de la taille de l'élément et du fait que vous souhaitez une lecture finalement cohérente ou très cohérente. Par exemple, si la taille de votre article est de 8 Ko, vous avez besoin de 2 unités de lecture pour garantir une lecture parfaitement cohérente. Vous aurez besoin d'une unité de lecture si vous choisissez des lectures cohérentes à terme ou de 4 unités de lecture pour une demande de lecture transactionnelle.

La liste suivante décrit la façon dont les opérations de lecture DynamoDB consomment les unités de lecture :

  • GetItem: lit un seul élément d'un tableau. Pour déterminer le nombre d'unités de lecture qui GetItem seront consommées, prenez la taille de l'élément et arrondissez-la à la limite supérieure de 4 Ko. Il s'agit du nombre d'unités de lecture requises si vous avez spécifié une lecture très cohérente. Pour une lecture finalement cohérente, qui est la valeur par défaut, divisez ce nombre par deux.

    Par exemple, si vous lisez un élément d'une taille de 3,5 Ko, mise à l'échelle arrondit sa taille à 4 Ko. Si vous lisez un élément de 10 Ko, DynamoDB arrondit sa taille à 12 Ko.

  • BatchGetItem: lit jusqu'à 100 éléments d'un ou de plusieurs tableaux. DynamoDB traite chaque élément du lot comme une demande individuelle. GetItem DynamoDB arrondit d'abord la taille de chaque élément à la limite de 4 Ko suivante, puis calcule la taille totale. Le résultat n'est pas nécessairement le même que la taille totale de tous les articles. Par exemple, si BatchGetItem deux éléments de taille 1,5 Ko et 6,5 Ko sont lus, DynamoDB calcule la taille comme 12 Ko (4 Ko + 8 Ko). DynamoDB ne calcule pas la taille comme 8 Ko (1,5 Ko + 6,5 Ko).

  • Requête : lit plusieurs éléments ayant la même valeur de clé de partition. Tous les éléments renvoyés sont traités comme une seule opération de lecture, au cours de laquelle DynamoDB calcule la taille totale de tous les éléments. DynamoDB arrondit ensuite la taille à la limite de 4 Ko suivante. Par exemple, supposons que votre requête renvoie 10 éléments dont la taille combinée est de 40,8 Ko. DynamoDB arrondit la taille d'élément pour l'opération à 44 Ko. Si une requête renvoie 1 500 éléments de 64 octets chacun, la taille cumulée est de 96 Ko.

  • Numériser : lit tous les éléments d'un tableau. DynamoDB prend en compte la taille des éléments évalués, pas celle des éléments renvoyés par l'analyse. Pour plus d'informations sur les opérations de numérisation, consultezUtilisation des analyses dans DynamoDB.

Important

Si vous effectuez une opération de lecture sur un élément qui n'existe pas, DynamoDB consommera toujours le débit de lecture comme indiqué ci-dessus. Pour les Scan opérationsQuery/, un débit de lecture supplémentaire vous sera toujours facturé en fonction de la cohérence des lectures et du nombre de partitions recherchées pour répondre à la demande, même en l'absence de données.

Pour toute opération qui renvoie des éléments, vous pouvez demander un sous-ensemble d'attributs à extraire. Cependant, agir ainsi n'a aucun impct sur les calculs de taille d'élément. En outre, Query et Scan peuvent renvoyer des nombres d'éléments au lieu de valeurs d'attribut. L'obtention du nombre d'éléments utilise la même quantité d'unités de lecture et est soumise aux mêmes calculs de taille d'élément. En effet, DynamoDB doit lire chacun des éléments pour incrémenter le nombre.

Consommation d'unités de capacité pour les opérations d'écriture

Une unité d'écriture représente une écriture pour un élément d'une taille maximale de 1 Ko. Si vous devez écrire un élément d'une taille supérieure à 1 Ko, DynamoDB doit utiliser des unités d'écriture supplémentaires. Les demandes d'écriture transactionnelles nécessitent 2 unités d'écriture pour effectuer une écriture pour des éléments allant jusqu'à 1 Ko. Le nombre total d'unités requises de demande d'écriture dépend de la taille de l'élément. Par exemple, si la taille de votre élément est de 2 Ko, vous avez besoin de 2 unités d'écriture pour prendre en charge une demande d'écriture ou de 4 unités d'écriture pour une demande d'écriture transactionnelle.

Les tailles d'élément pour les écritures sont arrondies au multiple de 1 Ko supérieur. Par exemple, l'écriture d'un élément de 500 octets consomme le même débit que l'écriture d'un élément de 1Ko.

La liste suivante décrit la façon dont les opérations d'écriture DynamoDB consomment des unités d'écriture :

  • PutItem: écrit un seul élément dans une table. Si un élément avec la même clé primaire existe dans la table, l'opération remplace l'élément. Pour calculer la consommation de débit approvisionné, la taille d'élément qui compte est la plus grande des deux.

  • UpdateItem: modifie un seul élément du tableau. DynamoDB prend en compte la taille de l'élément tel qu'il apparaît avant et après la mise à jour. Le débit approvisionné consommé reflète la plus grande de ces tailles d'élément. Même si vous mettez à jour un sous-ensemble des attributs de l'article, UpdateItem cela consommera tout de même la totalité du débit alloué (la plus grande des tailles « avant » et « après » de l'article).

  • DeleteItem: Supprime un seul élément d'un tableau. La consommation de débit approvisionné est basée sur la taille de l'élément supprimé.

  • BatchWriteItem: écrit jusqu'à 25 éléments dans une ou plusieurs tables. DynamoDB traite chaque élément du lot comme une demande PutItem ou DeleteItem individuelle (les mises à jour ne sont pas prises en charge). DynamoDB arrondit d'abord la taille de chaque élément à la limite de 1 Ko suivante, puis calcule la taille totale. Le résultat n'est pas nécessairement le même que la taille totale de tous les articles. Par exemple, si deux BatchWriteItem éléments de taille 500 octets et 3,5 Ko sont écrits, DynamoDB calcule la taille comme 5 Ko (1 Ko + 4 Ko). DynamoDB ne calcule pas la taille comme 4 Ko (500 octets + 3,5 Ko).

Pour les opérations PutItem, UpdateItem, et DeleteItem, DynamoDB arrondit la taille de l'élément à la limite de 1 Ko supérieure. Par exemple, si vous insérez ou supprimez un élément de 1,6 Ko, DynamoDB arrondit la taille de l'élément à 2 Ko.

PutItemUpdateItem, et les DeleteItem opérations autorisent les écritures conditionnelles, dans lesquelles vous spécifiez une expression qui doit être évaluée à true pour que l'opération réussisse. Si le résultat de l'expression est false, DynamoDB continue à consommer des unités de capacité d'écriture de la table. La quantité d'unités de capacité d'écriture consommées dépend de la taille de l'article. Il peut s'agir d'un élément existant dans le tableau ou d'un nouvel élément que vous essayez de créer ou de mettre à jour. Supposons, par exemple, qu'un élément existant pèse 300 Ko. Le nouvel élément que vous essayez de créer ou de mettre à jour pèse 310 Ko. Les unités de capacité d'écriture consommées seront de 310 Ko pour le nouvel article.