Dynamodb-create-table

提供:Dev Guides
移動先:案内検索

DynamoDB-テーブルの作成

通常、テーブルの作成は、テーブルの生成、名前の付け、主キー属性の確立、および属性データ型の設定で構成されます。

GUIコンソール、Java、または別のオプションを使用して、これらのタスクを実行します。

GUIコンソールを使用してテーブルを作成する

https://console.aws.amazon.com/dynamodbでコンソールにアクセスして、テーブルを作成します。 次に、「テーブルの作成」オプションを選択します。

GUIコンソール

この例では、ID番号(数値属性)で識別される一意の属性の製品とともに、製品情報が入力されたテーブルを生成します。 [テーブルの作成]画面で、テーブル名フィールドにテーブル名を入力します。パーティションキーフィールド内にプライマリキー(ID)を入力します。データタイプに「Number」と入力します。

テーブルの作成

すべての情報を入力したら、*作成*を選択します。

Javaを使用してテーブルを作成する

Javaを使用して同じテーブルを作成します。 その主キーは、次の2つの属性で構成されています-

  • ID -パー​​ティションキーと、数値を意味するScalarAttributeType N を使用します。
  • 命名法-ソートキーと、文字列を意味するScalarAttributeType *S を使用します。

Javaは* createTableメソッド*を使用してテーブルを生成します。呼び出し内で、テーブル名、主キー属性、および属性データ型が指定されます。

次の例を確認できます-

import java.util.Arrays;

import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient;
import com.amazonaws.services.dynamodbv2.document.DynamoDB;
import com.amazonaws.services.dynamodbv2.document.Table;

import com.amazonaws.services.dynamodbv2.model.AttributeDefinition;
import com.amazonaws.services.dynamodbv2.model.KeySchemaElement;
import com.amazonaws.services.dynamodbv2.model.KeyType;
import com.amazonaws.services.dynamodbv2.model.ProvisionedThroughput;
import com.amazonaws.services.dynamodbv2.model.ScalarAttributeType;

public class ProductsCreateTable {
   public static void main(String[] args) throws Exception {
      AmazonDynamoDBClient client = new AmazonDynamoDBClient()
         .withEndpoint("http://localhost:8000");

      DynamoDB dynamoDB = new DynamoDB(client);
      String tableName = "Products";
      try {
         System.out.println("Creating the table, wait...");
         Table table = dynamoDB.createTable (tableName,
            Arrays.asList (
               new KeySchemaElement("ID", KeyType.HASH),//the partition key
                                                        //the sort key
               new KeySchemaElement("Nomenclature", KeyType.RANGE)
            ),
            Arrays.asList (
               new AttributeDefinition("ID", ScalarAttributeType.N),
               new AttributeDefinition("Nomenclature", ScalarAttributeType.S)
            ),
            new ProvisionedThroughput(10L, 10L)
         );
         table.waitForActive();
         System.out.println("Table created successfully.  Status: " +
            table.getDescription().getTableStatus());

      } catch (Exception e) {
         System.err.println("Cannot create the table: ");
         System.err.println(e.getMessage());
      }
   }
}

上記の例では、エンドポイントに注意してください: .withEndpoint

ローカルホストを使用してローカルインストールを使用することを示します。 また、ローカルインストールでは無視される必須の* ProvisionedThroughputパラメーター*にも注意してください。