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.
Tópicos
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
-
Crie uma instância da classe
DynamoDB
. -
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.
-
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
-
Crie uma instância da classe
Table
. -
Crie uma instância da classe
ProvisionedThroughput
para fornecer os novos valores de throughput provisionado. -
Execute o método
updateTable
fornecendo a instânciaProvisionedThroughput
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
-
Crie uma instância da classe
Table
. -
Crie uma instância da classe
DeleteTableRequest
e forneça o nome da tabela que deseja excluir. -
Execute o método
deleteTable
fornecendo a instânciaTable
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()); }