Opérations de base sur les tables DynamoDB - 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 base sur les tables DynamoDB

Comme d'autres systèmes de base de données, Amazon DynamoDB stocke les données dans des tables. Vous pouvez gérer vos tables à l'aide de quelques opérations de base.

Création d'une table

Utilisation de l'opération CreateTable pour créer une table dans Amazon DynamoDB. Pour créer une tâche, vous devez fournir les informations suivantes :

  • Nom de la table. Le nom doit être conforme aux règles de dénomination DynamoDB et doit être unique pour le compte AWS actuel et la région. Par exemple, vous pouvez créer une table People dans la région USA Est (Virginie du Nord), et une autre table People en Europe (Irlande). Ces deux tables seraient toutefois entièrement différentes l'une de l'autre. Pour plus d’informations, consultez Types de données et règles de dénomination pris en charge dans Amazon DynamoDB.

  • Clé primaire. La clé primaire peut se composer d'un attribut (clé de partition) ou de deux attributs (clé de partition et clé de tri). Vous devez indiquer les noms d'attribut, les types de données et le rôle de chaque attribut : HASH (pour une clé de partition) et RANGE (pour une clé de tri). Pour plus d’informations, consultez Clé primaire.

  • Paramètres de débit (pour les tables allouées) Si vous utilisez le mode approvisionné, vous devez spécifier les paramètres de débit initial de lecture et d'écriture pour la table. Vous pouvez modifier ces paramètres ultérieurement, ou activer la scalabilité automatique de DynamoDB afin que les paramètres soient gérés pour vous. Pour plus d’informations, consultez Mode de capacité provisionnée et Gestion automatique de la capacité de débit avec la scalabilité automatique de DynamoDB.

Exemple 1 : créer une table allouée

L' AWS CLI exemple suivant montre comment créer une table (Music). La clé primaire se compose de Artist (clé de partition) et de SongTitle (clé de tri), chacune d'elles ayant le type de données String. Le débit maximum pour cette table est de 10 unités de capacité de lecture et 5 unités de capacité d'écriture.

aws dynamodb create-table \ --table-name Music \ --attribute-definitions \ AttributeName=Artist,AttributeType=S \ AttributeName=SongTitle,AttributeType=S \ --key-schema \ AttributeName=Artist,KeyType=HASH \ AttributeName=SongTitle,KeyType=RANGE \ --provisioned-throughput \ ReadCapacityUnits=10,WriteCapacityUnits=5

L'opération CreateTable renvoie des métadonnées pour la table, comme illustré ci-dessous.

{ "TableDescription": { "TableArn": "arn:aws:dynamodb:us-east-1:123456789012:table/Music", "AttributeDefinitions": [ { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "WriteCapacityUnits": 5, "ReadCapacityUnits": 10 }, "TableSizeBytes": 0, "TableName": "Music", "TableStatus": "CREATING", "TableId": "12345678-0123-4567-a123-abcdefghijkl", "KeySchema": [ { "KeyType": "HASH", "AttributeName": "Artist" }, { "KeyType": "RANGE", "AttributeName": "SongTitle" } ], "ItemCount": 0, "CreationDateTime": 1542397215.37 } }

L'élément TableStatus indique l'état réel de la table (CREATING). La création de la table peut prendre un certain temps, selon les valeurs que vous spécifiez pour ReadCapacityUnits et WriteCapacityUnits. Plus ces valeurs sont élevées, plus DynamoDB doit allouer des ressources à la table.

Exemple 2 : créer une table à la demande

Pour créer la même table Music en mode à la demande.

aws dynamodb create-table \ --table-name Music \ --attribute-definitions \ AttributeName=Artist,AttributeType=S \ AttributeName=SongTitle,AttributeType=S \ --key-schema \ AttributeName=Artist,KeyType=HASH \ AttributeName=SongTitle,KeyType=RANGE \ --billing-mode=PAY_PER_REQUEST

L'opération CreateTable renvoie des métadonnées pour la table, comme illustré ci-dessous.

{ "TableDescription": { "TableArn": "arn:aws:dynamodb:us-east-1:123456789012:table/Music", "AttributeDefinitions": [ { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "WriteCapacityUnits": 0, "ReadCapacityUnits": 0 }, "TableSizeBytes": 0, "TableName": "Music", "BillingModeSummary": { "BillingMode": "PAY_PER_REQUEST" }, "TableStatus": "CREATING", "TableId": "12345678-0123-4567-a123-abcdefghijkl", "KeySchema": [ { "KeyType": "HASH", "AttributeName": "Artist" }, { "KeyType": "RANGE", "AttributeName": "SongTitle" } ], "ItemCount": 0, "CreationDateTime": 1542397468.348 } }
Important

Lorsque vous appelez DescribeTable sur une table à la demande, les unités de capacité de lecture et d'écriture sont remises à 0.

Exemple 3 : créer une table à l'aide de la classe de tables DynamoDB Standard-Inrequent Access

Pour créer la même table Music à l'aide de la classe de tables DynamoDB Standard-Inrequent Access.

aws dynamodb create-table \ --table-name Music \ --attribute-definitions \ AttributeName=Artist,AttributeType=S \ AttributeName=SongTitle,AttributeType=S \ --key-schema \ AttributeName=Artist,KeyType=HASH \ AttributeName=SongTitle,KeyType=RANGE \ --provisioned-throughput \ ReadCapacityUnits=10,WriteCapacityUnits=5 \ --table-class STANDARD_INFREQUENT_ACCESS

L'opération CreateTable renvoie des métadonnées pour la table, comme illustré ci-dessous.

{ "TableDescription": { "TableArn": "arn:aws:dynamodb:us-east-1:123456789012:table/Music", "AttributeDefinitions": [ { "AttributeName": "Artist", "AttributeType": "S" }, { "AttributeName": "SongTitle", "AttributeType": "S" } ], "ProvisionedThroughput": { "NumberOfDecreasesToday": 0, "WriteCapacityUnits": 5, "ReadCapacityUnits": 10 }, "TableClassSummary": { "LastUpdateDateTime": 1542397215.37, "TableClass": "STANDARD_INFREQUENT_ACCESS" }, "TableSizeBytes": 0, "TableName": "Music", "TableStatus": "CREATING", "TableId": "12345678-0123-4567-a123-abcdefghijkl", "KeySchema": [ { "KeyType": "HASH", "AttributeName": "Artist" }, { "KeyType": "RANGE", "AttributeName": "SongTitle" } ], "ItemCount": 0, "CreationDateTime": 1542397215.37 } }

Description d'une table

Pour afficher les détails d'une table, utilisez l'opération DescribeTable. Vous devez fournir le nom de la table. La sortie de DescribeTable est au même format que celle de CreateTable. Elle inclut l'horodatage de la création de la table, son schéma de clé, ses paramètres de débit approvisionné, sa taille estimée et tout index secondaire présent.

Important

Lorsque vous appelez DescribeTable sur une table à la demande, les unités de capacité de lecture et d'écriture sont remises à 0.

Exemple
aws dynamodb describe-table --table-name Music

La table est prête à être utilisée lorsque TableStatus passe de CREATING à ACTIVE.

Note

Si vous exécutez une demande DescribeTable immédiatement après une demande CreateTable, DynamoDB peut renvoyer une erreur (ResourceNotFoundException). Cela est dû au fait que DescribeTable utilise une demande à cohérence éventuelle et que les métadonnées pour votre table peuvent ne pas être disponibles à ce moment-là. Attendez quelques secondes, puis réessayez d'envoyer la demande DescribeTable.

À des fins de facturation, vos coûts de stockage DynamoDB incluent une surcharge par élément de 100 octets (pour plus d'informations, consultez Tarification DynamoDB Pricing). Ces 100 octets supplémentaires par élément ne sont pas utilisés dans les calculs d'unité de capacité ou par l'opération DescribeTable.

Mise à jour d'une table

L'opération UpdateTable vous permet d'exécuter l'une des actions suivantes :

Exemple

L' AWS CLI exemple suivant montre comment modifier les paramètres de débit provisionné d'une table.

aws dynamodb update-table --table-name Music \ --provisioned-throughput ReadCapacityUnits=20,WriteCapacityUnits=10
Note

Lorsque vous émettez une demande UpdateTable, l'état de la table change de AVAILABLE à UPDATING. La table reste entièrement disponible pour une utilisation pendant sa UPDATING. Lorsque ce processus est terminé, l'état de la table change de UPDATING à AVAILABLE.

Exemple

L' AWS CLI exemple suivant montre comment modifier le mode de capacité de lecture/écriture d'une table en mode à la demande.

aws dynamodb update-table --table-name Music \ --billing-mode PAY_PER_REQUEST

Suppression d'une table

Vous pouvez supprimer une table non utilisée avec l'opération DeleteTable. Une fois supprimée, une table est irrécupérable.

Exemple

L' AWS CLI exemple suivant montre comment supprimer une table.

aws dynamodb delete-table --table-name Music

Lorsque vous émettez une demande DeleteTable, l'état de la table passe de ACTIVE à DELETING. La suppression de la table peut prendre un certain temps, selon les ressources utilisées (par exemple, les données stockées dans la table, ou bien les flux ou les index sur la table).

Une fois l'opération DeleteTable terminée, la table n'existe plus dans DynamoDB.

Utilisation de la protection contre la suppression

Vous pouvez protéger une table contre toute suppression accidentelle grâce à la propriété de protection contre la suppression. L'activation de cette propriété pour les tables permet de s'assurer que celles-ci ne seront pas supprimées accidentellement lors des opérations classiques de gestion des tables par vos administrateurs. Cela vous aidera à éviter toute interruption de vos activités commerciales normales.

Le propriétaire de la table ou un administrateur autorisé contrôle la propriété de protection contre la suppression pour chaque table. La propriété de la protection contre la suppression pour chaque table est désactivée par défaut. Cela inclut les répliques globales et les tables restaurées à partir de sauvegardes. Lorsque la protection contre la suppression est désactivée pour une table, celle-ci peut être supprimée par tous les utilisateurs autorisés par une politique Identity and Access Management (IAM). Lorsque la protection contre la suppression est activée pour une table, personne ne peut la supprimer.

Pour modifier ce paramètre, accédez aux Paramètres supplémentaires de la table, puis au volet Protection contre la suppression et sélectionnez Activer la protection contre la suppression.

La propriété de protection contre la suppression est prise en charge par la console DynamoDB, l'API, le CLI/SDK et AWS CloudFormation. L'API CreateTable prend en charge la propriété de protection contre la suppression au moment de la création de la table, et l'API UpdateTable prend en charge la modification de la propriété de protection contre la suppression pour les tables existantes.

Note
  • Si un AWS compte est supprimé, toutes les données de ce compte, y compris les tables, sont toujours supprimées dans les 90 jours.

  • Si DynamoDB perd l'accès à une clé gérée par le client qui a été utilisée pour chiffrer une table, il archive tout de même la table. L'archivage implique la création d'une sauvegarde de la table et la suppression de l'original.

Liste des noms de table

L'ListTablesopération renvoie les noms des tables DynamoDB pour le compte AWS courant et la région.

Exemple

L' AWS CLI exemple suivant montre comment répertorier les noms des tables DynamoDB.

aws dynamodb list-tables

Description des quotas de débit alloué

L'DescribeLimitsopération renvoie les quotas de capacité de lecture et d'écriture actuels pour le AWS compte courant et la région.

Exemple

L' AWS CLI exemple suivant montre comment décrire les quotas de débit actuellement provisionnés.

aws dynamodb describe-limits

La sortie indique les quotas supérieurs d'unités de capacité de lecture et d'écriture pour le AWS compte courant et la région.

Pour de plus amples informations sur ces quotas et sur la procédure à suivre pour demander une augmentation des quotas, veuillez consulter Quotas de débit par défaut.