Utilizzo di tabelle DynamoDB in Java - Amazon DynamoDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di tabelle DynamoDB in Java

È possibile utilizzare AWS SDK for Java per creare, aggiornare ed eliminare tabelle Amazon DynamoDB, elencare tutte le tabelle nell'account o ottenere informazioni su una tabella specifica.

Creazione di una tabella

Per creare una tabella, è necessario fornire il nome della tabella, la sua chiave primaria e i valori del throughput assegnato. Il seguente frammento di codice crea una tabella di esempio che utilizza un ID attributo di tipo numero come chiave primaria.

Per creare una tabella utilizzando l'API AWS SDK for Java
  1. Creare un'istanza della classe DynamoDB.

  2. Crea l'istanza di una CreateTableRequest per fornire le informazioni sulla richiesta.

    Devi fornire il nome della tabella, le definizioni degli attributi, lo schema delle chiavi e i valori del throughput assegnato.

  3. Eseguire il metodo createTable fornendo l'oggetto della richiesta come parametro.

Il seguente esempio di codice mostra le fasi precedenti.

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 tabella non è pronta per l'uso fino a quando DynamoDB la crea e ne imposta lo stato su ACTIVE. La richiesta createTable restituisce un oggetto Table che è possibile utilizzare per ottenere ulteriori informazioni sulla tabella.

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

Puoi chiamare il metodo describe del client per ottenere informazioni sulla tabella in qualsiasi momento.

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

Aggiornamento di una tabella

Puoi aggiornare solo i valori del throughput assegnato di una tabella esistente. A seconda dei requisiti dell'applicazione, potrebbe essere necessario aggiornare questi valori.

Nota

Per ulteriori informazioni sugli aumenti e le diminuzioni di throughput al giorno, consulta Quote di servizio, account e tabelle in Amazon DynamoDB.

Per aggiornare una tabella utilizzando l'API AWS SDK for Java
  1. Creare un'istanza della classe Table.

  2. Crea un'istanza della classe ProvisionedThroughput per fornire i nuovi valori del throughput.

  3. Eseguire il metodo updateTable fornendo l'istanza ProvisionedThroughput come parametro.

Il seguente esempio di codice mostra le fasi precedenti.

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

Eliminazione di una tabella

Per eliminare una tabella utilizzando l'API AWS SDK for Java
  1. Creare un'istanza della classe Table.

  2. Crea un'istanza della classe DeleteTableRequest e fornisci il nome della tabella che vuoi eliminare.

  3. Eseguire il metodo deleteTable fornendo l'istanza Table come parametro.

Il seguente esempio di codice mostra le fasi precedenti.

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

Elenco delle tabelle

Per visualizzare le tabelle nell'account, creare un'istanza di DynamoDB ed eseguire il metodo listTables. L'operazione ListTables non richiede parametri.

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