メニュー
Amazon DynamoDB
開発者ガイド (API Version 2012-08-10)

テーブルの操作 : Java

AWS SDK for Java を使用して、テーブルの作成、更新、削除、アカウント内の全テーブルの一覧表示、特定のテーブルに関する情報収集を実行できます。

次に、AWS SDK for Java ドキュメント API を使用したテーブルオペレーションの一般的なステップを示します。

テーブルの作成

テーブルを作成するには、テーブル名、プライマリキー、およびプロビジョニングされたスループット値を指定する必要があります。以下の コードスニペットでは、数値型の属性 Id をプライマリキーとして使用するサンプルテーブルを作成します。

AWS SDK for Java API を使用してテーブルを作成するには:

  1. DynamoDB クラスのインスタンスを作成します。

  2. CreateTableRequest をインスタンス化して、リクエスト情報を指定します。

    テーブル名、属性定義、キースキーマ、プロビジョニングされたスループット値を指定する必要があります。

  3. リクエストオブジェクトをパラメータとして指定して、createTable メソッドを実行します。

以下の コードスニペットは、前述のステップの例です。

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

DynamoDB によりテーブルが作成され、そのステータスが ACTIVE に設定されるまでは、テーブルを使用する準備ができません。 createTable リクエストは、テーブルについての詳細情報を取得するために使用できる Table オブジェクトを返します。

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

クライアントの describe メソッドを呼び出せば、いつでもテーブル情報を収集できます。

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

テーブルの更新

既存のテーブルのプロビジョニングされたスループット値のみを更新できます。ご利用のアプリケーションの要件によっては、これらの値を更新する必要があります。

注記

スループットキャパシティーは、必要に応じて何度でも増やすことができます。減らすことができるのは、1 UTC 暦日にテーブルあたり 9 回までです。詳細については、「DynamoDB での制限」を参照してください。

AWS SDK for Java API を使用してテーブルを更新するには:

  1. Table クラスのインスタンスを作成します。

  2. ProvisionedThroughput クラスのインスタンスを作成して、新しいスループット値を指定します。

  3. ProvisionedThroughput インスタンスをパラメータとして指定して、updateTable メソッドを実行します。

以下の コードスニペットは、前述のステップの例です。

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

テーブルの削除

テーブルを削除するには:

  1. Table クラスのインスタンスを作成します。

  2. DeleteTableRequest クラスのインスタンスを作成し、削除するテーブル名を指定します。

  3. Table インスタンスをパラメータとして指定して、deleteTable メソッドを実行します。

以下の コードスニペットは、前述のステップの例です。

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

テーブルの一覧表示

アカウントのテーブルを一覧表示するには、DynamoDB のインスタンスを作成し、listTables メソッドを実行します。ListTables オペレーションはパラメータを必要としません。

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