Uso de tablas de DynamoDB en Java
Puede utilizar AWS SDK for Java para crear, actualizar y eliminar tablas de Amazon DynamoDB, enumerar todas las tablas de su cuenta u obtener información sobre una tabla concreta.
Temas
Creación de una tabla
Para crear una tabla, debe proporcionar el nombre de la tabla, su clave principal y los valores de rendimiento aprovisionado. En el siguiente fragmento de código se crea un ejemplo de tabla que utiliza un identificador de atributo de tipo numérico como clave principal.
Para crear una tabla con la API del AWS SDK for Java
-
Cree una instancia de la clase
DynamoDB
. -
Cree una instancia de
CreateTableRequest
para proporcionar la información de solicitud.Debe proporcionar el nombre de la tabla, las definiciones de atributos, el esquema de claves y los valores de desempeño provisionado.
-
Ejecute el método
createTable
proporcionando el objeto de solicitud como parámetro.
En el siguiente ejemplo de código se ponen en práctica los pasos anteriores.
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 tabla no está lista para usarse hasta que DynamoDB la haya creado y haya establecido su estado en ACTIVE. La solicitud createTable
devuelve un objeto Table
que puede usar para obtener más información sobre la tabla.
ejemplo
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());
Puede llamar al método describe
del cliente para obtener información sobre la tabla en cualquier momento.
ejemplo
TableDescription tableDescription = dynamoDB.getTable(tableName).describe();
Actualización de una tabla
Solamente se pueden actualizar los valores de rendimiento aprovisionado de una tabla existente. Según los requisitos de su aplicación, es posible que tenga que actualizar estos valores.
nota
Para obtener más información sobre las reducciones y los incrementos de rendimiento diarios, consulte Cuotas de tabla, servicio y cuenta en Amazon DynamoDB.
Para actualizar una tabla con la API del AWS SDK for Java
-
Cree una instancia de la clase
Table
. -
Cree una instancia de la clase
ProvisionedThroughput
para proporcionar los nuevos valores de desempeño. -
Ejecute el método
updateTable
proporcionando la instancia deProvisionedThroughput
como parámetro.
En el siguiente ejemplo de código se ponen en práctica los pasos anteriores.
ejemplo
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();
Eliminación de una tabla
Para eliminar una tabla con la API del AWS SDK for Java
-
Cree una instancia de la clase
Table
. -
Cree una instancia de la clase
DeleteTableRequest
y proporcione el nombre de la tabla que desea eliminar. -
Ejecute el método
deleteTable
proporcionando la instancia deTable
como parámetro.
En el siguiente ejemplo de código se ponen en práctica los pasos anteriores.
ejemplo
AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard().build(); DynamoDB dynamoDB = new DynamoDB(client); Table table = dynamoDB.getTable("ProductCatalog"); table.delete(); table.waitForDelete();
Enumeración de tablas
Para enumerar las tablas de la cuenta, cree una instancia de DynamoDB
y ejecute el método listTables
. La operación ListTables no requiere parámetros.
ejemplo
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()); }