Uso de tablas de DynamoDB en Java - Amazon DynamoDB

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.

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

  1. Cree una instancia de la clase DynamoDB.

  2. 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.

  3. 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 servicio, cuenta y tabla en Amazon DynamoDB.

Para actualizar una tabla con la API del AWS SDK for Java

  1. Cree una instancia de la clase Table.

  2. Cree una instancia de la clase ProvisionedThroughput para proporcionar los nuevos valores de desempeño.

  3. Ejecute el método updateTable proporcionando la instancia de ProvisionedThroughput 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

  1. Cree una instancia de la clase Table.

  2. Cree una instancia de la clase DeleteTableRequest y proporcione el nombre de la tabla que desea eliminar.

  3. Ejecute el método deleteTable proporcionando la instancia de Table 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()); }