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.
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.
Rubriques
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 tablePeople
en Europe (Irlande). Ces deux tables seraient toutefois entièrement différentes l'une de l'autre. Pour de plus amples informations, veuillez consulter 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) etRANGE
(pour une clé de tri). Pour de plus amples informations, veuillez consulter 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 DynamoDB et Gestion automatique de la capacité de débit avec la scalabilité automatique de DynamoDB.
Exemple 1 : création d'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 2 : créer une table provisionné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 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 PricingDescribeTable
.
Mise à jour d'une table
L'opération UpdateTable
vous permet d'exécuter l'une des actions suivantes :
-
Modifier les paramètres de débit approvisionné d'une table (pour les tables en mode approvisionné).
-
Changer le mode de capacité de lecture ou d'écriture de la table.
-
Manipuler des index secondaires globaux dans la table (voir Utilisation d'index secondaires globaux dans DynamoDB).
-
Activer ou désactiver DynamoDB Streams sur la table (voir Modifier la récupération de données pour DynamoDB Streams).
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'ListTables
opé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'DescribeLimits
opé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.