Utilisation des tables DynamoDB dans Java - 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.

Utilisation des tables DynamoDB dans Java

Vous pouvez utiliser l'AWS SDK for Java pour créer, mettre à jour et supprimer des tables Amazon DynamoDB, répertorier toutes les tables de votre compte ou obtenir des informations sur une table spécifique.

Création d'une table

Pour créer une table, vous devez fournir le nom de la table, sa clé primaire et les valeurs de débit approvisionné. L'exemple de code suivant crée un exemple de table qui utilise un Id d'attribut de type numérique comme clé primaire.

Pour créer une table à l'aide de l'API AWS SDK for Java :
  1. Créez une instance de la classe DynamoDB.

  2. Instanciez un CreateTableRequest pour fournir les informations de demande.

    Vous devez fournir le nom de la table, les définitions d'attribut, le schéma de clé et les valeurs de débit provisionné.

  3. Exécutez la méthode createTable en fournissant l'objet de demande comme paramètre.

L'exemple de code suivant illustre les étapes précédentes.

AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard().build(); DynamoDB dynamoDB = new DynamoDB(client); List<AttributeDefinition> attributeDefinitions= new ArrayList<AttributeDefinition>(); attributeDefinitions.add(new AttributeDefinition().withAttributeName("Id").withAttributeType("N")); List<KeySchemaElement> keySchema = new ArrayList<KeySchemaElement>(); keySchema.add(new KeySchemaElement().withAttributeName("Id").withKeyType(KeyType.HASH)); CreateTableRequest request = new CreateTableRequest() .withTableName(tableName) .withKeySchema(keySchema) .withAttributeDefinitions(attributeDefinitions) .withProvisionedThroughput(new ProvisionedThroughput() .withReadCapacityUnits(5L) .withWriteCapacityUnits(6L)); Table table = dynamoDB.createTable(request); table.waitForActive();

La table n'est pas prête à être utilisée jusqu'à ce que DynamoDB la crée et définisse son état sur ACTIVE. La demande createTable retourne un objet Table que vous pouvez utiliser pour obtenir plus d'informations sur la table.

Exemple
TableDescription tableDescription = dynamoDB.getTable(tableName).describe(); System.out.printf("%s: %s \t ReadCapacityUnits: %d \t WriteCapacityUnits: %d", tableDescription.getTableStatus(), tableDescription.getTableName(), tableDescription.getProvisionedThroughput().getReadCapacityUnits(), tableDescription.getProvisionedThroughput().getWriteCapacityUnits());

Vous pouvez appeler la méthode describe du client pour obtenir les informations de table à tout moment.

Exemple
TableDescription tableDescription = dynamoDB.getTable(tableName).describe();

Mise à jour d'une table

Vous pouvez mettre à jour uniquement les valeurs de débit approvisionné d'une table existante. Selon les exigences de votre application, vous pourrez avoir besoin de mettre à jour ces valeurs.

Note

Pour plus d'informations sur les augmentations et réductions de débit par jour, consultez Quotas de service, de compte et de table dans Amazon DynamoDB.

Pour mettre à jour une table à l'aide de l'API AWS SDK for Java
  1. Créez une instance de la classe Table.

  2. Créez une instance de la classe ProvisionedThroughput pour fournir les nouvelles valeurs de débit.

  3. Exécutez la méthode updateTable en fournissant l'instance ProvisionedThroughput comme paramètre.

L'exemple de code suivant illustre les étapes précédentes.

Exemple
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard().build(); DynamoDB dynamoDB = new DynamoDB(client); Table table = dynamoDB.getTable("ProductCatalog"); ProvisionedThroughput provisionedThroughput = new ProvisionedThroughput() .withReadCapacityUnits(15L) .withWriteCapacityUnits(12L); table.updateTable(provisionedThroughput); table.waitForActive();

Suppression d'une table

Pour supprimer une table à l'aide de l'API AWS SDK for Java
  1. Créez une instance de la classe Table.

  2. Créez une instance de la classe DeleteTableRequest et fournissez le nom de la table que vous voulez supprimer.

  3. Exécutez la méthode deleteTable en fournissant l'instance Table comme paramètre.

L'exemple de code suivant illustre les étapes précédentes.

Exemple
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard().build(); DynamoDB dynamoDB = new DynamoDB(client); Table table = dynamoDB.getTable("ProductCatalog"); table.delete(); table.waitForDelete();

Liste des tables

Pour répertorier les tables de votre compte, créez une instance de DynamoDB et exécutez la méthode listTables. L'opération ListTables ne requiert aucun paramètre.

Exemple
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard().build(); DynamoDB dynamoDB = new DynamoDB(client); TableCollection<ListTablesResult> tables = dynamoDB.listTables(); Iterator<Table> iterator = tables.iterator(); while (iterator.hasNext()) { Table table = iterator.next(); System.out.println(table.getTableName()); }