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