すべてのプロダクト
Search
ドキュメントセンター

Tablestore:データテーブルに対する操作

最終更新日:Dec 28, 2024

データテーブルは、データの格納とクエリに使用されます。データテーブルを作成した後、ビジネス要件に基づいてデータテーブルを管理できます。たとえば、インスタンス内のすべてのテーブルの名前のクエリ、データテーブルの設定のクエリ、データテーブルの設定の更新を行うことができます。

使用上の注意

  • 自動インクリメント主キー列機能とローカルトランザクション機能を同時に使用することはできません。データテーブルの作成時に自動インクリメント主キー列を指定した場合、ローカルトランザクション機能の設定は有効になりません。

  • データテーブルを作成した後、すぐにデータテーブルに対して読み取りおよび書き込み操作を実行することはできません。ほとんどの場合、データテーブルの作成後約1分で、データテーブルに対して読み取りおよび書き込み操作を実行できます。

  • 1 つのインスタンスに最大 64 個のデータテーブルを作成できます。

機能

Tablestore は、CreateTableListTableUpdateTableDescribeTable、および DeleteTable 操作を提供します。

Tablestore にデータを格納する前に、CreateTable 操作を呼び出してデータテーブルを作成する必要があります。

データテーブルを作成する際は、ビジネス要件に基づいてデータテーブルのスキーマと機能を設定する必要があります。データテーブルのスキーマには、テーブル名、主キー情報、および事前定義された列が含まれます。さらに、データテーブルには次の機能を設定できます。

  • データの最大バージョン数と有効期間 (TTL) を指定します。詳細については、データのバージョンと TTL を参照してください。

  • データテーブルが高性能インスタンスのにある場合、データテーブルの予約済み読み取りスループットまたは予約済み書き込みスループットを指定します。詳細については、予約済み読み取り/書き込みスループットをご参照ください。

  • データテーブルに 1 つ以上のインデックステーブルを作成します。詳細については、セカンダリインデックス を参照してください。

    データテーブルを作成する際に、主キー列ではない列とそのデータ型を定義できます。セカンダリインデックス機能を使用する場合は、事前定義された列をインデックステーブルのインデックス列または属性列として使用できます。データテーブルの作成後に、事前定義された列を追加または削除することもできます。

  • データ暗号化機能を有効にします。詳細については、データ暗号化 を参照してください。

  • デフォルトでは、UpdateRow 操作を呼び出してデータテーブルにデータを書き込むことができます。ただし、検索インデックスの TTL 機能を使用する場合は、UpdateRow 操作を禁止する必要があります。データテーブルの作成後に、[更新を許可する] パラメーターで [いいえ] を選択することもできます。

  • ローカルトランザクション機能を有効にします。詳細については、ローカルトランザクション を参照してください。

    データテーブルの作成時にローカルトランザクション機能を有効にしない場合は、チケットを送信して、機能の使用を申請する必要があります。

    重要

    ローカルトランザクション機能は、Java V5.11.0 以降の Tablestore SDK のみでサポートされています。

  • 自動インクリメント主キー列を設定します。詳細については、自動インクリメント主キー列の設定 を参照してください。

データテーブルを作成した後、ビジネス要件に基づいて次の操作を実行できます。

操作

説明

テーブルの名前のクエリ

ListTable 操作を呼び出して、現在のインスタンス内のすべてのテーブルの名前をクエリできます。

テーブルの設定の更新

UpdateTable 操作を呼び出して、テーブルの設定、予約済み読み取りおよび書き込みスループット、および UpdateRow 操作が許可されているかどうかを変更できます。

テーブルに関する情報のクエリ

DescribeTable 操作を呼び出して、テーブルのスキーマや予約済み読み取りおよび書き込みスループットなどのテーブルに関する情報をクエリできます。

データテーブルの削除

DeleteTable 操作を呼び出して、現在のインスタンスからデータテーブルを削除できます。

重要
  • データテーブルを削除すると、テーブルは使用できなくなり、復元できません。注意して進めてください。

  • データテーブルを削除する前に、テーブルに対して作成されたセカンダリインデックス、検索インデックス、およびデータ配信タスクが削除されていることを確認してください。

事前定義された列の管理

事前定義された列は、インデックステーブルのインデックス列または属性列として使用されます。

セカンダリインデックス機能を使用しているが、データテーブルに事前定義された列が追加されていない場合、または既存の事前定義された列がビジネス要件を満たしていない場合は、データテーブルに事前定義された列を追加できます。

不要になった事前定義された列を削除できます。

方法

Tablestore コンソールの使用

Tablestore コンソールでデータテーブルを作成するには、次の手順を実行します。

  1. Tablestore コンソール にログオンします。

  2. 上部のナビゲーションバーで、リソースグループとリージョンを選択します。

  3. 概要ページで、管理するインスタンスを見つけます。インスタンスの名前をクリックするか、インスタンスの管理列のアクションをクリックします。

  4. インスタンスの詳細タブで、テーブルの作成をクリックします。

  5. テーブルの作成ダイアログボックスで、テーブル名主キーパラメーターを設定します。ビジネス要件に基づいて他のパラメーターを設定します。

    説明

    詳細については、手順 3: データテーブルの作成 を参照してください。

    • 自動インクリメント主キー列機能を使用する場合は、パーティションキーではない主キー列に対して自動インクリメントを選択します。

    • 検索インデックスの TTL 機能を使用する場合は、更新を許可するいいえを選択する必要があります。

    • データテーブルに格納されているデータを暗号化する場合は、暗号化をオンにし、ビジネス要件に基づいて暗号化タイプKMS の CMK またはBYOK ベースのキーを選択します。詳細については、データ暗号化 を参照してください。

    • ローカルセカンダリインデックスまたはグローバルセカンダリインデックスを作成する場合は、セカンダリインデックスの作成をオンにし、事前定義された列を追加してから、セカンダリインデックスを作成します。

    • TTL などの他のパラメーターを設定する場合は、詳細設定をオンにし、有効期間、最大バージョン数、最大バージョンオフセット、予約済み読み取りスループット、および予約済み書き込みスループットパラメーターを設定します。

  6. 作成をクリックします。

データテーブルを作成した後、データテーブルを管理するための操作を実行できます。次の表に、操作を示します。

操作

説明

テーブルの名前のクエリ

テーブルタブで、現在のインスタンス内のすべてのテーブルの名前を表示できます。

テーブルの設定の更新

  1. テーブルタブで、管理するテーブルの名前をクリックします。

  2. 基本情報タブの説明セクションで、属性の変更をクリックします。

  3. 属性の変更ダイアログボックスで、ビジネス要件に基づいて有効期間、最大バージョン数、最大バージョンオフセット、更新を許可するなどのパラメーターを変更します。

  4. OKをクリックします。

テーブルに関する情報のクエリ

  1. テーブルタブで、管理するテーブルの名前をクリックします。

  2. 基本情報タブで、テーブルに関する情報を表示します。

    説明セクションでは、テーブル名、有効期間、最大バージョン数、最大バージョンオフセット、更新を許可するなどのパラメーターの値を表示できます。高度な機能セクションでは、検索インデックス、主キー列、および事前定義された列に関する情報を表示できます。

事前定義された列の管理

  1. テーブルタブで、管理するテーブルの名前をクリックします。

  2. 基本情報タブの高度な機能セクションで、事前定義された列の追加をクリックします。

  3. 事前定義された列の追加ダイアログボックスで、追加をクリックし、事前定義された列の名前とデータ型を指定します。

  4. OKをクリックします。

事前定義された列を追加した後、image.png高度な機能基本情報タブの定義済み列の削除OKセクションにある事前定義された列の[事前定義された列の削除] 列のアイコンをクリックします。メッセージで、をクリックします。

データテーブルの削除

  1. テーブルタブで、削除するデータテーブルを見つけ、image.pngアクション列の削除アイコンをクリックし、をクリックします。

  2. テーブルの削除メッセージで、テーブルに関する情報を確認し、OKをクリックします。

Tablestore CLI の使用

Tablestore CLI で create コマンドを実行して、データテーブルを作成します。詳細については、テーブルの作成 を参照してください。

次のサンプルコードは、mytable という名前のデータテーブルを作成する方法の例を示しています。この例では、データテーブルには、STRING 型の uid 主キー列と INTEGER 型の pid 主キー列が含まれています。データテーブルのデータは期限切れになりません。

create -t mytable --pk '[{"c":"uid", "t":"string"}, {"c":"pid", "t":"integer"}]'

テーブルに対して操作を実行するには、use コマンドを実行して、管理するテーブルを選択する必要があります。詳細については、テーブルの使用 を参照してください。

次のサンプルコードは、mytable テーブルを選択する方法の例を示しています。

use --wc -t mytable

データテーブルを作成した後、ビジネス要件に基づいてデータテーブルを管理するための操作を実行できます。次の表に、操作を示します。

操作

説明

テーブルの名前のクエリ

list コマンドを実行して、現在のインスタンス内のすべてのテーブルの名前をクエリします。詳細については、テーブルの名前のリスト を参照してください。

次のサンプルコードは、現在のインスタンス内のすべてのテーブルの名前をクエリする方法の例を示しています。

list -w

テーブルの設定の更新

alter コマンドを実行して、テーブルの設定を更新します。詳細については、テーブルの更新 を参照してください。

次のサンプルコードは、mytable テーブルの設定を更新する方法の例を示しています。この例では、データの TTL は 86,400 秒 (1 日) に設定され、最大バージョン数は 1 に設定され、予約済み読み取りおよび書き込みキャパシティユニット (CU) の数は 0 に設定されています。

alter -t mytable --ttl 86400 --version 1 --read_cu 0 --write_cu 0

テーブルに関する情報のクエリ

desc コマンドを実行して、テーブルに関する情報をクエリします。詳細については、テーブルに関する情報のクエリ を参照してください。

次のサンプルコードは、現在のテーブルに関する情報をクエリする方法の例を示しています。

desc

データテーブルの削除

drop コマンドを実行して、不要になったテーブルを削除します。詳細については、テーブルの削除 を参照してください。

次のサンプルコードは、mytable テーブルを削除する方法の例を示しています。

drop -t mytable -y

Tablestore SDK の使用

Tablestore SDK for JavaTablestore SDK for GoTablestore SDK for PythonTablestore SDK for Node.jsTablestore SDK for .NET、または Tablestore SDK for PHP を使用して、データテーブルを作成および管理できます。この例では、Tablestore SDK for Java を使用します。

重要

SDK でサポートされている機能は異なる場合があります。実際の機能が優先されます。

ビジネス要件に基づいてデータテーブルを作成します。

インデックスなしでデータテーブルを作成する

次のサンプルコードは、データテーブルを作成する方法の例を示しています。

private static void createTable(SyncClient client) {
    // データテーブルの名前を指定します。
    TableMeta tableMeta = new TableMeta("<TABLE_NAME>");
    // データテーブルに主キー列を追加します。テーブルには、String 型の pk1 主キー列と Integer 型の pk2 主キー列が含まれています。pk1 主キー列はパーティションキーです。pk2 主キー列は自動インクリメント主キー列です。
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("pk1", PrimaryKeyType.STRING));
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("pk2", PrimaryKeyType.INTEGER, PrimaryKeyOption.AUTO_INCREMENT));
    // データテーブルのデータの TTL を指定します。-1 の値は、データテーブルのデータが期限切れにならないことを指定します。
    int timeToLive = -1;
    // データテーブルの各属性列に保持できる最大バージョン数を指定します。この例では、各属性列の最新バージョンのみを保持できます。
    int maxVersions = 1;
    // 現在のシステム時刻と書き込まれたデータのタイムスタンプの最大差を指定します。この例では、最大差は 86,400 秒 (1 日) に設定されています。
    long maxTimeDeviation = 86400L;
    TableOptions tableOptions = new TableOptions(timeToLive, maxVersions, maxTimeDeviation);
    // 予約済み読み取りスループットまたは書き込みスループットを指定します。キャパシティインスタンスのデータテーブルの場合、予約済み読み取りスループットまたは書き込みスループットは 0 のみに設定できます。高パフォーマンスインスタンスのデータテーブルの場合、予約済み読み取りスループットまたは書き込みスループットを 0 以外の値に設定できます。
    ReservedThroughput reservedThroughput = new ReservedThroughput(new CapacityUnit(0, 0));

    CreateTableRequest request = new CreateTableRequest(tableMeta, tableOptions, reservedThroughput);
    client.createTable(request);
}

データテーブルとセカンダリインデックスを作成する

データテーブルとグローバルセカンダリインデックスを作成する

次のサンプルコードは、データテーブルとグローバルセカンダリインデックスを同時に作成する方法の例を示しています。

private static void createTable(SyncClient client) {
    // データテーブルの名前を指定します。    TableMeta tableMeta = new TableMeta("<TABLE_NAME>");
    // データテーブルの主キー列を指定します。この例では、主キー列は String 型の pk1 と Integer 型の pk2 です。
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("pk1", PrimaryKeyType.STRING));
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("pk2", PrimaryKeyType.INTEGER));
    // データテーブルの事前定義された列を指定します。この例では、事前定義された列は String 型の defcol1 と Integer 型の defcol2 です。
    tableMeta.addDefinedColumn(new DefinedColumnSchema("defcol1", DefinedColumnType.STRING));
    tableMeta.addDefinedColumn(new DefinedColumnSchema("defcol2", DefinedColumnType.INTEGER));
    // timeToLive パラメーターを設定します。-1 の値は、データテーブルのデータが期限切れにならないことを指定します。
    int timeToLive = -1;
    // maxVersions パラメーターを設定します。1 の値は、各属性列の最新バージョンのみが保持されることを指定します。
    int maxVersions = 1;
    TableOptions tableOptions = new TableOptions(timeToLive, maxVersions);

    // グローバルセカンダリインデックスを作成します。
    ArrayList<IndexMeta> indexMetas = new ArrayList<IndexMeta>();
    // グローバルセカンダリインデックスの名前を指定します。
    IndexMeta indexMeta = new IndexMeta("<INDEX_NAME>");
    // インデックスの主キー列を指定します。この例では、主キー列は defcol1、pk1、および pk2 です。
    indexMeta.addPrimaryKeyColumn("defcol1");
    indexMeta.addPrimaryKeyColumn("pk1");
    indexMeta.addPrimaryKeyColumn("pk2");
    // インデックスの事前定義された列を指定します。この例では、事前定義された列は defcol2 です。
    indexMeta.addDefinedColumn("defcol2");
    indexMetas.add(indexMeta);

    // データテーブルとインデックスを同時に作成します。
    CreateTableRequest request = new CreateTableRequest(tableMeta, tableOptions, indexMetas);
    client.createTable(request);
}

データテーブルとローカルセカンダリインデックスを作成する

次のサンプルコードは、データテーブルとローカルセカンダリインデックスを同時に作成する方法の例を示しています。

private static void createTable(SyncClient client) {
    // データテーブルの名前を指定します。
    TableMeta tableMeta = new TableMeta("<TABLE_NAME>");
    // データテーブルの主キー列を指定します。この例では、主キー列は String 型の pk1 と Integer 型の pk2 です。
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("pk1", PrimaryKeyType.STRING));
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("pk2", PrimaryKeyType.INTEGER));
    // データテーブルの事前定義された列を指定します。この例では、事前定義された列は String 型の defcol1 と Integer 型の defcol2 です。
    tableMeta.addDefinedColumn(new DefinedColumnSchema("defcol1", DefinedColumnType.STRING));
    tableMeta.addDefinedColumn(new DefinedColumnSchema("defcol2", DefinedColumnType.INTEGER));
    // timeToLive パラメーターを設定します。-1 の値は、データテーブルのデータが期限切れにならないことを指定します。
    int timeToLive = -1;
    // maxVersions パラメーターを設定します。1 の値は、各属性列の最新バージョンのみが保持されることを指定します。
    int maxVersions = 1;
    TableOptions tableOptions = new TableOptions(timeToLive, maxVersions);

    // ローカルセカンダリインデックスを作成します。
    ArrayList<IndexMeta> indexMetas = new ArrayList<IndexMeta>();
    // ローカルセカンダリインデックスの名前を指定します。
    IndexMeta indexMeta = new IndexMeta("<INDEX_NAME>");
    // IndexType パラメーターを IT_LOCAL_INDEX に設定して、ローカルセカンダリインデックスを作成します。
    indexMeta.setIndexType(IT_LOCAL_INDEX);
    // IndexUpdateMode パラメーターを IUM_SYNC_INDEX に設定します。ローカルセカンダリインデックスを作成する場合は、インデックス更新モードを同期更新に設定する必要があります。
    indexMeta.setIndexUpdateMode(IUM_SYNC_INDEX);
    // インデックスの主キー列を指定します。この例では、主キー列は defcol1、pk1、および pk2 です。
    indexMeta.addPrimaryKeyColumn("pk1");
    indexMeta.addPrimaryKeyColumn("defcol1");
    indexMeta.addPrimaryKeyColumn("pk2");
    // インデックスの事前定義された列を指定します。この例では、事前定義された列は defcol2 です。
    indexMeta.addDefinedColumn("defcol2");
    indexMetas.add(indexMeta);

    // データテーブルとインデックスを同時に作成します。
    CreateTableRequest request = new CreateTableRequest(tableMeta, tableOptions, indexMetas);
    client.createTable(request);
}

ローカルトランザクションが有効なテーブルを作成する

次のサンプルコードは、ローカルトランザクション機能が有効なデータテーブルを作成する方法の例を示しています。

private static void createTable(SyncClient client) {
    // データテーブルの名前を指定します。
    TableMeta tableMeta = new TableMeta("<TABLE_NAME>");
    // データテーブルに主キー列を追加します。データテーブルには、String 型の pk1 主キー列と Integer 型の pk2 主キー列が含まれています。
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("pk1", PrimaryKeyType.STRING));
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("pk2", PrimaryKeyType.INTEGER));
    // データテーブルのデータの TTL を指定します。-1 の値は、データテーブルのデータが期限切れにならないことを指定します。
    int timeToLive = -1;
    // データテーブルの各属性列に保持できる最大バージョン数を指定します。この例では、各属性列の最新バージョンのみを保持できます。
    int maxVersions = 1;
    TableOptions tableOptions = new TableOptions(timeToLive, maxVersions);

    CreateTableRequest request = new CreateTableRequest(tableMeta, tableOptions);
    // ローカルトランザクション機能を有効にします。データテーブルに自動インクリメント主キー列を指定した場合、ローカルトランザクション機能の設定はテーブルに対して有効になりません。
    request.setLocalTxnEnabled(true);
    client.createTable(request);
}

KMS キーベースの暗号化が有効なテーブルを作成する

次のサンプルコードは、データテーブルを作成するときに、データテーブルに対して KMS キーベースの暗号化を有効にする方法の例を示しています。この例では、データテーブルには STRING 型の pk 主キー列が含まれており、各属性列の最新バージョンのみが保持され、データテーブルのデータは期限切れになりません。

private static void createTable(SyncClient client) {
    // データテーブルの名前を指定します。
    TableMeta tableMeta = new TableMeta("<TABLE_NAME>");
    // データ暗号化を設定する場合は、createTable リクエストで暗号化関連のパラメーターを設定します。KMS キーベースの暗号化と BYOK ベースの暗号化という 2 つの暗号化モードがサポートされています。この例では、KMS キーベースの暗号化が有効になっています。
    SSESpecification sseKms = new SSESpecification(true, SSEKeyType.SSE_KMS_SERVICE);
    // データテーブルに主キー列を追加します。
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("pk", PrimaryKeyType.STRING));
    // データの有効期間を指定します。-1 の値は、データが期限切れにならないことを指定します。単位: 秒。インデックステーブルを作成するデータテーブルの場合、timeToLive パラメーターを -1 に設定する必要があります。
    int timeToLive = -1;
    // 各属性列に保持できるデータバージョンの最大数を指定します。1 の値は、各属性列の最新バージョンのみが保持されることを指定します。インデックステーブルを作成するデータテーブルの場合、maxVersions パラメーターを 1 に設定する必要があります。
    int maxVersions = 1;
    TableOptions tableOptions = new TableOptions(timeToLive, maxVersions);
    CreateTableRequest request = new CreateTableRequest(tableMeta, tableOptions);
    // 予約済み読み取りスループットと予約済み書き込みスループットを指定します。キャパシティインスタンスのデータテーブルの場合は 0 に設定する必要があり、高パフォーマンスインスタンスのデータテーブルの場合は 0 以外の値に設定できます。
    request.setReservedThroughput(new ReservedThroughput(new CapacityUnit(0, 0)));
    request.setSseSpecification(sseKms);
    client.createTable(request);
}

自動インクリメント主キー列を持つテーブルを作成する

次のサンプルコードは、自動インクリメント主キー列を含むテーブルを作成する方法の例を示しています。テーブルには、データ型が STRING の pk1 主キー列とデータ型が INTEGER の pk2 主キー列が含まれています。pk1 列はパーティションキー列で、pk2 列は自動インクリメント主キー列です。

private static void createTable(SyncClient client) {
    // テーブルの名前を指定します。
    TableMeta tableMeta = new TableMeta("<TABLE_NAME>");
    // 最初の主キー列を作成します。最初の主キー列はパーティションキー列です。
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("pk1", PrimaryKeyType.STRING));
    // データ型が INTEGER の 2 番目の主キー列を作成し、列の属性を AUTO_INCREMENT に設定します。
    tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("pk2", PrimaryKeyType.INTEGER, PrimaryKeyOption.AUTO_INCREMENT));
    // データの有効期間 (TTL) を指定します。-1 の値は、データが期限切れにならないことを指定します。単位: 秒。
    int timeToLive = -1;  
    // 各列に保持できる最大バージョン数を指定します。1 の値は、各列の最新バージョンのみが保持されることを指定します。
    int maxVersions = 1; 
    TableOptions tableOptions = new TableOptions(timeToLive, maxVersions);
    CreateTableRequest request = new CreateTableRequest(tableMeta, tableOptions);
    client.createTable(request);
}

データテーブルを作成した後、データテーブルを管理するための操作を実行できます。次の表に、操作を示します。

テーブルの名前のクエリ

次のサンプルコードは、インスタンス内のすべてのテーブルの名前をクエリする方法の例を示しています。

private static void listTable(SyncClient client) {
    ListTableResponse response = client.listTable();
    System.out.println("List of tables:");
    for (String tableName : response.getTableNames()) {
        System.out.println(tableName);
    }
}

テーブルの設定の更新

データテーブルの設定を更新する

次のサンプルコードは、データテーブルの設定を更新する方法の例を示しています。

private static void updateTable(SyncClient client) {
    // timeToLive パラメーターの値を更新します。-1 の値は、データテーブルのデータが期限切れにならないことを指定します。
    int timeToLive = -1;
    // maxVersions パラメーターの値を更新します。5 の値は、各属性列に最大 5 つのバージョンのデータが保持されることを指定します。
    int maxVersions = 5;
    // maxTimeDeviation パラメーターの値を更新します。86400 の値は、現在のシステム時刻とデータの書き込み時刻の最大差が 86400 秒 (1 日) であることを指定します。
    long maxTimeDeviation = 86400L;
    TableOptions tableOptions = new TableOptions(timeToLive, maxVersions, maxTimeDeviation);
    // データテーブルで UpdateRow 操作を許可します。
    tableOptions.setAllowUpdate(true);

    // Stream 機能を有効にし、ストリームの有効期間を 24 時間に設定します。
    //StreamSpecification streamSpecification = new StreamSpecification(true, 24);

    // データテーブルの名前を指定します。
    UpdateTableRequest request = new UpdateTableRequest("<TABLE_NAME>");
    request.setTableOptionsForUpdate(tableOptions);
    client.updateTable(request);
}

高パフォーマンスインスタンスのデータテーブルの予約スループットを更新する

次のサンプルコードは、高パフォーマンスインスタンスのデータテーブルの予約スループットを更新する方法の例を示しています。

private static void updateTable(SyncClient client) {
    // 新しい予約済み読み取りスループットを 1 に、新しい予約済み書き込みスループットを 1 に設定します。キャパシティインスタンスのデータテーブルの場合、予約済み読み取りスループットと書き込みスループットは 0 のみに設定できます。
    ReservedThroughput reservedThroughput = new ReservedThroughput(new CapacityUnit(1, 1));

    // データテーブルの名前を指定します。
    UpdateTableRequest request = new UpdateTableRequest("<TABLE_NAME>");
    request.setReservedThroughputForUpdate(reservedThroughput);
    client.updateTable(request);
}

テーブルに関する情報のクエリ

次のサンプルコードは、テーブルのスキーマ情報、オプションの設定、予約済み読み取りスループット、および予約済み書き込みスループットをクエリする方法の例を示しています。

private static void describeTable(SyncClient client) {
    // テーブルの名前を指定します。
    DescribeTableRequest request = new DescribeTableRequest("<TABLE_NAME>");
    DescribeTableResponse response = client.describeTable(request);
    TableMeta tableMeta = response.getTableMeta();
    System.out.println("Table name:" + tableMeta.getTableName());
    System.out.println("Primary key information:");
    for (PrimaryKeySchema primaryKeySchema : tableMeta.getPrimaryKeyList()) {
        System.out.println(primaryKeySchema);
    }
    TableOptions tableOptions = response.getTableOptions();
    System.out.println("Table TTL:" + tableOptions.getTimeToLive());
    System.out.println("Maximum number of data versions:" + tableOptions.getMaxVersions());
    // テーブルの暗号化設定は、テーブルが暗号化されたテーブルの場合にのみ表示できます。テーブルが暗号化されたテーブルでない場合、このパラメーターは返されません。
    System.out.println("Encryption configurations:" + response.getSseDetails());
    ReservedThroughputDetails reservedThroughputDetails = response.getReservedThroughputDetails();
    System.out.println("Reserved read throughput:"
            + reservedThroughputDetails.getCapacityUnit().getReadCapacityUnit());
    System.out.println("Reserved write throughput:"
            + reservedThroughputDetails.getCapacityUnit().getWriteCapacityUnit());
}

事前定義された列の管理

次のサンプルコードは、テーブルに事前定義された列を追加する方法の例を示しています。この例では、definedColumnName01 (タイプ: STRING)、definedColumnName02 (タイプ: INTEGER)、および definedColumnName03 (タイプ: STRING) という事前定義された列が追加されます。

public static void addDefinedColumnRequest(SyncClient client) {
    AddDefinedColumnRequest addDefinedColumnRequest = new AddDefinedColumnRequest();
    // テーブルの名前を指定します。
    addDefinedColumnRequest.setTableName("<TABLE_NAME>");
    // テーブルに事前定義された列を追加します。
    addDefinedColumnRequest.addDefinedColumn("definedColumnName01",DefinedColumnType.STRING);
    addDefinedColumnRequest.addDefinedColumn("definedColumnName02",DefinedColumnType.INTEGER);
    addDefinedColumnRequest.addDefinedColumn("definedColumnName03",DefinedColumnType.STRING);
    client.addDefinedColumn(addDefinedColumnRequest);
}

不要になった事前定義された列を削除できます。

次のサンプルコードは、テーブルから definedColumnName01 および definedColumnName02 という事前定義された列を削除する方法の例を示しています。

public static void deleteDefinedColumnRequest(SyncClient client){
    DeleteDefinedColumnRequest deleteDefinedColumnRequest = new DeleteDefinedColumnRequest();
    // テーブルの名前を指定します。
    deleteDefinedColumnRequest.setTableName("<TABLE_NAME>");
    // テーブルから事前定義された列を削除します。
    deleteDefinedColumnRequest.addDefinedColumn("definedColumnName01");
    deleteDefinedColumnRequest.addDefinedColumn("definedColumnName02");
    client.deleteDefinedColumn(deleteDefinedColumnRequest);
}

データテーブルの削除

次のサンプルコードは、exampletable テーブルを削除する方法の例を示しています。

private static void deleteTable(SyncClient client) {
    // データテーブルの名前を指定します。
    DeleteTableRequest request = new DeleteTableRequest("<TABLE_NAME>");
    client.deleteTable(request);
}