Trabalhar com tabelas do DynamoDB em Java - Amazon DynamoDB

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Trabalhar com tabelas do DynamoDB em Java

Você pode usar o AWS SDK for Java para criar, atualizar e excluir tabelas, listar todas as tabelas do Amazon DynamoDB em sua conta ou obter informações sobre uma tabela específica.

Criar uma tabela

Para criar uma tabela, você deve fornecer o nome da tabela, a chave primária e os valores de throughput provisionado. O trecho de código a seguir cria um exemplo de tabela que usa um ID de atributo do tipo numérico como sua chave primária.

Para criar uma tabela usando a API do AWS SDK for Java
  1. Crie uma instância da classe DynamoDB.

  2. Criar uma instância de CreateTableRequest para fornecer as informações.

    Você deve fornecer o nome da tabela, as definições de atributo, o esquema de chaves e os valores de throughput provisionado.

  3. Execute o método createTable fornecendo o objeto de solicitação como um parâmetro.

O exemplo de código a seguir demonstra as etapas 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();

A tabela não estará pronta para uso até que o DynamoDB a crie e defina seu status como ACTIVE (ATIVO). A solicitação createTable retorna um objeto Table que você pode usar para obter mais informações sobre a tabela.

exemplo
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());

Você pode chamar o método describe do cliente para obter informações da tabela a qualquer momento.

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

Atualizar uma tabela

Você pode atualizar apenas os valores de throughput provisionado de uma tabela existente. Dependendo das necessidades de seu aplicativo, talvez você precise atualizar esses valores.

nota

Para obter mais informações sobre aumentos e diminuições de throughput por dia, consulte Service quotas, conta e cotas de tabela no Amazon DynamoDB.

Para atualizar uma tabela usando a API do AWS SDK for Java
  1. Crie uma instância da classe Table.

  2. Crie uma instância da classe ProvisionedThroughput para fornecer os novos valores de throughput provisionado.

  3. Execute o método updateTable fornecendo a instância ProvisionedThroughput como um parâmetro.

O exemplo de código a seguir demonstra as etapas anteriores.

exemplo
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();

Excluir uma tabela

Para excluir uma tabela usando a API do AWS SDK for Java
  1. Crie uma instância da classe Table.

  2. Crie uma instância da classe DeleteTableRequest e forneça o nome da tabela que deseja excluir.

  3. Execute o método deleteTable fornecendo a instância Table como um parâmetro.

O exemplo de código a seguir demonstra as etapas anteriores.

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

Listar tabelas

Para listar tabelas em sua conta, crie uma instância de DynamoDB e execute o método listTables. A operação ListTables não requer parâmetros.

exemplo
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()); }