データテーブルは、データの格納とクエリに使用します。データテーブルを作成した後、ビジネス要件に基づいて管理できます。たとえば、インスタンス内のすべてのテーブル名を一覧表示したり、データテーブルの設定をクエリしたり、その設定を更新したりできます。
注意事項
1 つのインスタンスに作成できるデータテーブルは最大 64 個です。
データテーブルは、作成後すぐに読み書き操作が可能になるわけではありません。ほとんどの場合、新しいテーブルには約 1 分後にアクセスできるようになります。
自動採番主キー列機能とローカルトランザクション機能は、同時に使用することはできません。データテーブルの作成時に自動採番主キー列を設定した場合、ローカルトランザクション機能は有効にしても有効になりません。
機能
データテーブルの作成
データテーブルを作成するときは、そのスキーマ情報と設定情報を指定する必要があります。
データテーブルのスキーマ情報には、テーブル名、プライマリキーの定義、事前定義列の設定が含まれます。
ビジネス要件に基づいてデータテーブルを設定できます。次の表に、設定パラメーターを示します。
パラメーター
説明
データテーブルを作成する際、パーティションキーではないプライマリキー列を自動採番主キー列として設定できます。テーブルにデータを書き込む際、この列の値を指定する必要はなく、Tablestore が自動的に値を生成します。
データバージョンと Time to Live (TTL) 機能を使用すると、データを効率的に管理でき、ストレージ使用量の削減とストレージコストの低減に役立ちます。
更新の許可
デフォルトでは、UpdateRow API を呼び出してデータテーブルにデータを書き込むことができます。この設定は、テーブルの作成後に変更できます。
重要多次元インデックスの Time to Live (TTL) 機能を使用する場合は、UpdateRow API を使用した書き込みを禁止する必要があります。
を使用するハイパフォーマンスインスタンスでは、要件に応じてデータテーブルの予約済み読み取り/書き込みスループットを設定できます。
Tablestore は、ローカルセカンダリインデックスとグローバルセカンダリインデックスを提供し、異なる読み取り整合性の保証を伴うクエリ要件に対応します。データテーブルの作成時に、1 つ以上のセカンダリインデックスを作成できます。
説明セカンダリインデックスを使用するには、データテーブルに 1 つ以上の非プライマリキー列とそのデータ型を事前定義する必要があります。これらの列は、インデックスのインデックス列またはインクルード列として使用できます。テーブルの作成後に事前定義列を追加または削除できます。
Tablestore は、データセキュリティを確保するために保管時の暗号化を提供します。データテーブルの作成時にデータ暗号化を設定できます。
データテーブルでローカルトランザクションを有効にすると、同一パーティションキー内でローカルトランザクションを作成し、そのトランザクション内でデータの読み書き操作を実行できます。
重要Tablestore コンソールまたは Tablestore SDK for Java 5.11.0 以降を使用して、データテーブルのローカルトランザクションを有効にできます。
テーブル作成時にローカルトランザクションを有効にしなかったが、後でこの機能が必要になった場合は、チケットを送信して有効化を依頼してください。
テーブル設定の更新
Time to Live (TTL)、最大バージョン数、最大バージョンオフセット、ストリーム設定など、指定したデータテーブルの設定を変更します。また、 を使用するハイパフォーマンスインスタンスのデータテーブルの、予約済み読み取り/書き込みスループットを調整することもできます。
テーブル名の一覧表示
現在のインスタンス内にあるすべてのデータテーブルの名前を取得します。
テーブル記述のクエリ
スキーマや予約済み読み取り/書き込みスループットの詳細など、指定されたデータテーブルに関する情報をクエリします。
データテーブルの削除
指定されたデータテーブルを削除します。
データテーブルの作成
次の手順に従って、Tablestore コンソールでデータテーブルを作成します。
インスタンスの管理 ページに移動します。
Tablestore コンソール にログインします。
上部メニューで、リソースグループとリージョンを選択します。
概要 ページで、インスタンスのエイリアスをクリックするか、インスタンスの インスタンスの管理 列にある [インスタンス管理] をクリックします。
インスタンスの詳細 タブで、テーブルの作成 をクリックします。
テーブルの作成 ダイアログボックスで、次の表に従ってパラメーターを設定します。
パラメーター
説明
テーブル名
データテーブルの名前。インスタンス内で一意である必要があります。
名前は 1~255 バイトの長さで、大文字、小文字、数字、アンダースコア (_) を含めることができます。名前は文字またはアンダースコア (_) で始まる必要があります。
プライマリキー
テーブル内の行を一意に識別する 1 つ以上の列。
プライマリキー名を入力し、データ型を選択してから、テーブルのプライマリキーの追加 をクリックして別のプライマリキー列を追加します。
テーブルには最大 4 つのプライマリキー列を定義できます。最初のプライマリキー列はパーティションキーです。テーブルの作成後にプライマリキー列の設定や順序を変更することはできません。
重要Tablestore では、1 つのプライマリキー列を自動採番主キー列として設定できます。テーブルには自動採番主キー列を 1 つだけ設定でき、パーティションキーを自動採番列にすることはできません。
プライマリキー列が自動採番に設定されている場合、行を書き込む際、その値を指定する必要はありません。Tablestore は、パーティションキー内で一意で狭義単調増加する値を自動的に生成します。
プライマリキー名は 1~255 バイトの長さで、大文字、小文字、数字、アンダースコア (_) を含めることができます。名前は文字またはアンダースコア (_) で始まる必要があります。
プライマリキーのデータ型は、[String]、[Integer]、または [バイナリ] です。
更新の許可
UpdateRow API を呼び出してデータを書き込むことを許可するかどうかを指定します。このパラメーターが設定されていない場合、または はい に設定されている場合、UpdateRow を呼び出してデータを書き込むことができます。
多次元インデックスの Time to Live (TTL) 機能を使用するには、このパラメーターを いいえ に設定する必要があります。これにより、UpdateRow API を使用した書き込みが禁止されます。
暗号化
保管時の暗号化を有効にするかどうかを指定します。デフォルトでは、この機能は無効になっています。この機能を有効にするには、暗号化 スイッチをオンにします。
重要保管時の暗号化は、一度有効にすると無効にできません。有効にする際はご注意ください。
暗号化タイプ
データ暗号化のタイプ。このパラメーターは、暗号化 スイッチをオンにした場合にのみ必要です。有効な値:
KMS の CMK: Tablestore
BYOK カスタムキー: Tablestore
重要BYOK オプションを使用する前に、KMS コンソールでソフトウェアキーを作成し、カスタムロールを作成してその権限を設定する必要があります。詳細については、「データ暗号化」をご参照ください。
キー ID
キーの ID。このパラメーターは、暗号化タイプ が BYOK カスタムキー に設定されている場合にのみ必要です。
ロールの ARN
ロールの ARN。このパラメーターは、暗号化タイプ が BYOK カスタムキー に設定されている場合にのみ必要です。
(オプション) テーブルの作成 ダイアログボックスで、詳細設定を構成するか、セカンダリインデックスを作成します。
Time to Live (TTL) などのデータテーブルの詳細設定を構成したり、セカンダリインデックスを作成したりする必要がある場合は、この手順を実行します。
[詳細パラメーター]
テーブル内のデータの保持期間を管理するには、Time to Live (TTL) を指定します。同じプライマリキーのデータの複数のバージョンを保持するには、最大バージョン数を指定します。詳細については、「データバージョンと TTL」をご参照ください。
CU モードのハイパフォーマンスインスタンスでは、データテーブルに予約済みの読み取りまたは書き込みスループットを指定して、コストを削減できます。詳細については、「予約済み読み取り/書き込みスループット」をご参照ください。
[詳細設定] スイッチをオンにします。
次の表の説明に従って、詳細パラメーターを設定します。
パラメーター
説明
Time to Live (TTL)
データの保持期間 (秒単位)。データがこの期間を超えると、システムは期限切れのデータを自動的に削除します。
値は 86400 (1 日) 以上の整数、または -1 である必要があります。値 -1 は、データが期限切れにならないことを指定します。
最大バージョン数
各属性列で保持できる最大バージョン数。属性列のデータのバージョン数がこの値を超えると、システムは古いバージョンを自動的に削除します。
値は 0 以外の整数である必要があります。
最大バージョンオフセット
指定されたデータバージョンと現在のシステム時刻との間の最大許容偏差 (秒単位)。この値は正の整数である必要があります。
書き込み操作は、各列に指定されたバージョンが書き込み時間からの許容オフセット内にある場合にのみ成功します。
属性列の有効なバージョン範囲は [max{書き込み時間 - 最大バージョンオフセット, 書き込み時間 - TTL}, 書き込み時間 + 最大バージョンオフセット) です。
予約済み読み取りスループット
このパラメーターは、 を使用するハイパフォーマンスインスタンスでのみサポートされます。
データテーブルの予約済み読み取りまたは書き込みスループット。値は 0~100,000 の整数である必要があります。単位はキャパシティーユニット (CU) です。
予約済み読み取りスループット または 予約済み書き込みスループット を 0 より大きい値に設定すると、Tablestore はデータテーブルに対応するリソースを割り当てて予約します。テーブルが作成されると、予約済みスループットの課金がすぐに開始されます。
予約済み読み取りスループット または 予約済み書き込みスループット を 0 に設定すると、Tablestore はデータテーブルのリソースを割り当てたり予約したりしません。
予約済み書き込みスループット
ローカルトランザクションの有効化
ローカルトランザクション機能はデフォルトで無効になっています。同じパーティション内で 1 つ以上の行に対してアトミックな読み書き操作を実行するには、ローカルトランザクションを有効化するかどうか スイッチをオンにします。
行のバージョニングの有効化
グローバルテーブル を使用するには、行バージョンをサポートするかどうか スイッチをオンにする必要があります。この設定は、一度有効にすると無効にできません。行のバージョニングが有効になっている場合、次の制限が適用されます:
1 つの行に最大 256 列まで含めることができます。
データを書き込む際に、手動でバージョン番号を指定することはできません。バージョン番号はシステムによって自動的に生成されます。
更新操作を実行すると、システムはまず現在の行バージョンを読み取る必要があり、これにより少量の追加の読み取り負荷が発生します。
グローバルテーブルのクイック設定
グローバルテーブル を使用する場合は、グローバルテーブルの依存関係をクイック設定する スイッチをオンにします。システムは、グローバルテーブルに関連する設定を自動的に変更します。設定の変更は次のとおりです:
Time to Live (TTL): -1
最大バージョン数: 1
最大バージョンオフセット: 2147483647
行のバージョニング: 有効
セカンダリインデックスの設定
アプリケーションがさまざまな属性に基づいてデータをクエリする必要がある場合、これらの属性をセカンダリインデックスのプライマリキー列として使用して、高速にクエリできます。詳細については、「セカンダリインデックス」をご参照ください。
セカンダリインデックスの作成 スイッチをオンにします。
追加 をクリックし、事前定義列の名前を入力してデータ型を選択します。
事前定義列の名前は 1~255 バイトの長さで、大文字、小文字、数字、アンダースコア (_) を含めることができます。文字またはアンダースコア (_) で始まる必要があります。
事前定義列のデータ型は、[String]、[Integer]、[バイナリ]、[浮動小数点数]、または [ブーリアン] です。
追加二次インデックス をクリックし、インデックス名を入力し、インデックスプライマリキーを選択し、必要に応じて事前定義列とインデックスタイプを選択します。
重要インデックス名はデータテーブル名と同じにすることはできません。インデックス名とデータテーブル名の両方が、インスタンス内で一意である必要があります。
インデックス名は 1~255 バイトの長さで、大文字、小文字、数字、アンダースコア (_) を含めることができます。文字またはアンダースコア (_) で始まる必要があります。
主キー は、データテーブルのプライマリキー列と事前定義列で構成できます。複数の列を選択できます。定義済列 は、データテーブルの事前定義列からのみ選択できます。複数の列を選択できますが、インデックスプライマリキー列と同じにすることはできません。
インデックスタイプ は グローバル または ローカル です。
重要グローバルセカンダリインデックスの最初のプライマリキー列は、任意のプライマリキー列または事前定義列にすることができます。ローカルセカンダリインデックスの最初のプライマリキー列は、データテーブルの最初のプライマリキー列と同じである必要があります。
グローバルセカンダリインデックスは、データテーブルのインデックス列とプライマリキー列からインデックス テーブルにデータを非同期で同期します。同期のレイテンシは通常ミリ秒単位です。ローカルセカンダリインデックスは、データテーブルのインデックス列とプライマリキー列からインデックス テーブルにデータを同期的に同期します。データがデータテーブルに書き込まれると、すぐにインデックス テーブルからクエリできるようになります。
作成 をクリックします。
データテーブルの管理
必要に応じて、次の操作を実行してデータテーブルを管理します。
操作 | 説明 |
テーブル名の一覧表示 | テーブルリスト タブで、インスタンス内のすべてのデータテーブルの名前を表示できます。 |
テーブル情報の更新 |
|
テーブル記述のクエリ |
|
事前定義列の管理 |
|
データテーブルの削除 |
|
開発と統合
次の SDK または Tablestore CLI を使用して、データテーブル操作を実行できます。
機能 | API | 呼び出し方法 |
データテーブルの作成 | ||
テーブル設定の更新 | ||
テーブル名の一覧表示 | ||
テーブル記述のクエリ | ||
データテーブルの削除 | ||
事前定義列の追加 | ||
事前定義列の削除 |
アイコンをクリックします。次に、定義済みの列を削除する ダイアログボックスで、OK をクリックします。
アイコンをクリックし、削除 をクリックします。