データテーブルは、データの保存とクエリに使用されます。データテーブルを作成した後、ビジネス要件に基づいてデータテーブルを管理できます。たとえば、インスタンス内のすべてのテーブルの名前をクエリしたり、データテーブルの構成をクエリしたり、データテーブルの構成を更新したりできます。
使用上の注意
1 つのインスタンスに最大 64 個のデータテーブルを作成できます。
データテーブルを作成した後、すぐにデータテーブルに対して読み取りおよび書き込み操作を実行することはできません。ほとんどの場合、データテーブルの作成後約 1 分で、データテーブルに対して読み取りおよび書き込み操作を実行できます。
自動インクリメント主キー列機能とローカル トランザクション機能を同時に使用することはできません。データテーブルの作成時に自動インクリメント主キー列を指定した場合、ローカル トランザクション設定は有効になりません。
機能
データテーブルの作成
データテーブルを作成する場合は、データテーブルに関するスキーマ情報と構成情報を指定する必要があります。
データテーブルに関するスキーマ情報には、テーブル名、主キー情報、および事前定義列の構成が含まれます。
ビジネス要件に基づいて、データテーブルに関する構成情報を指定できます。次の表に、設定項目を示します。
設定項目
説明
データテーブルを作成するときに、パーティションキーではない主キー列を自動インクリメント主キー列に設定できます。自動インクリメント主キー列を含むデータテーブルにデータを書き込むと、Tablestore によって自動インクリメント主キー列の値が自動的に生成されます。
データバージョンと Time To Live(TTL)を使用して、データを効率的に管理し、ストレージの使用量とストレージ コストを最小限に抑えることができます。
更新を許可
デフォルトでは、UpdateRow 操作を呼び出して、データテーブルのデータを更新できます。また、データテーブルの作成後に、データテーブルの「更新を許可」パラメータを「いいえ」に設定することもできます。
重要ただし、データテーブル用に作成された検索インデックスの TTL 機能を使用する場合は、データテーブルに対する UpdateRow 操作を禁止する必要があります。
データテーブルが高性能インスタンスの にある場合は、データテーブルの予約済み読み取りスループットまたは予約済み書き込みスループットを指定できます。
Tablestore は、データクエリ中の読み取り整合性に関するさまざまな要件を満たすために、ローカル セカンダリ インデックスとグローバル セカンダリ インデックスの機能を提供します。データテーブルを作成するときに、1 つ以上のセカンダリ インデックスを作成できます。
説明データテーブルを作成するときに、主キー列ではない列とそのデータ型を定義できます。セカンダリ インデックス機能を使用すると、事前定義列をインデックステーブルのインデックス列または属性列として使用できます。また、データテーブルの作成後に、事前定義列を追加または削除することもできます。
Tablestore は、データがデータテーブルに書き込まれるときにデータを暗号化するデータ暗号化機能を提供します。これにより、テーブル データのセキュリティが確保されます。データテーブルを作成するときに、テーブルの暗号化を構成できます。
データテーブルのローカル トランザクション機能を有効にすると、特定のパーティションキー値に基づいてローカル トランザクションを作成し、ローカル トランザクション内でデータの読み取りおよび書き込み操作を実行できます。
重要Tablestore コンソールで、または Tablestore SDK for Java V5.11.0 以降を使用して、データテーブルのローカル トランザクション機能を有効にできます。
データテーブルの作成時にローカル トランザクション機能を有効にしなかった場合は、チケットを送信して、機能の使用を申請する必要があります。
テーブルの構成の更新
データテーブルの TTL、最大バージョン数、最大バージョン オフセット、および Stream の構成を更新できます。 の高性能インスタンスのデータテーブルの予約済み読み取り/書き込みスループットを更新することもできます。
テーブル名のクエリ
インスタンス内のすべてのデータテーブルの名前をクエリできます。
テーブルに関する情報のクエリ
データテーブルのスキーマ、予約済み読み取りスループット、および予約済み書き込みスループットをクエリできます。
データテーブルの削除
データテーブルを削除できます。
データテーブルの作成
Tablestore コンソールでデータテーブルを作成するには、次の手順を実行します。
[インスタンス管理] ページに移動します。
Tablestore コンソール にログオンします。
上部のナビゲーションバーで、リソースグループとリージョンを選択します。
[概要] ページで、管理するインスタンスの名前をクリックするか、インスタンスの [操作] 列の [インスタンスの管理] をクリックします。
[インスタンスの詳細] タブで、[テーブルの作成] をクリックします。
[テーブルの作成] ダイアログボックスで、パラメータを構成します。次の表に、パラメータを示します。
パラメータ
説明
テーブル名
インスタンス内のデータテーブルを識別するために使用されるデータテーブルの名前。
名前は 1 ~ 255 バイトの長さで、文字、数字、およびアンダースコア(_)を含めることができます。名前は文字またはアンダースコア(_)で始める必要があります。
主キー
主キー列。すべての主キー列は、テーブル内のレコードを識別するために使用されます。
主キー列の名前を入力し、データ型を選択します。[主キー列の追加] をクリックして、主キー列を追加します。
1 ~ 4 つの主キー列を追加できます。最初の主キー列はパーティションキーです。データテーブルを作成した後、主キー列の構成と順序を変更することはできません。
重要Tablestore では、データテーブルごとに 1 つの主キー列のみを自動インクリメント主キー列として指定できます。パーティションキーを自動インクリメント主キー列として指定することはできません。
主キー列を自動インクリメント主キー列として指定すると、データ行を書き込むときに、Tablestore によって自動インクリメント主キー列の値が自動的に生成されます。自動インクリメント主キー列の値は、同じパーティションキーを共有する行内でインクリメンタルで一意です。
主キー列の命名規則:名前は 1 ~ 255 バイトの長さで、文字、数字、およびアンダースコア(_)を含めることができます。名前は文字またはアンダースコア(_)で始める必要があります。
主キー列では、[STRING]、[INTEGER]、および [BINARY] データ型がサポートされています。
更新を許可
UpdateRow 操作を許可するかどうかを指定します。デフォルト値は [はい] で、UpdateRow 操作が許可されることを指定します。
データテーブル用に作成された検索インデックスの TTL 機能を使用する場合は、このパラメータを [いいえ] に設定する必要があります。詳細については、「検索インデックスの TTL を指定する」をご参照ください。
暗号化
データの暗号化を有効にするかどうかを指定します。デフォルトでは、この機能は無効になっています。[暗号化] をオンにすることで、この機能を有効にできます。
重要機能を有効にした後、機能を無効にすることはできません。注意して進めてください。
暗号化タイプ
データの暗号化タイプ。このパラメータは、[暗号化] をオンにした場合にのみ必須です。有効な値:
[KMS の CMK]:Tablestore は、Key Management Service(KMS)にカスタマーマスターキー(CMK)を自動的に作成して、データを暗号化および復号化します。
[BYOK ベースのキー]:Tablestore は、Bring Your Own Key(BYOK)ベースのキーに基づいてデータを暗号化および復号化します。
重要BYOK ベースの暗号化を使用する前に、KMS コンソールでソフトウェア保護キーを作成し、Resource Access Management(RAM)ロールを作成してから、RAM ロールに権限を付与する必要があります。詳細については、「BYOK ベースの暗号化」をご参照ください。
キー ID
キーの ID。このパラメータは、[暗号化タイプ] パラメータを [BYOK ベースのキー] に設定した場合にのみ必須です。
ARN
RAM ロールの Alibaba Cloud Resource Name(ARN)。このパラメータは、[暗号化タイプ] パラメータを [BYOK ベースのキー] に設定した場合にのみ必須です。
(オプション)[テーブルの作成] ダイアログボックスで、「詳細設定」または「セカンダリ インデックスの作成」をオンにします。
TTL などの詳細設定を構成するには、「詳細設定」をオンにします。セカンダリ インデックスを作成するには、「セカンダリ インデックスの作成」をオンにします。
詳細設定の構成
データテーブル内のデータの保存期間を管理するには、「Time To Live」パラメータを指定します。同じ主キー値を持つデータの複数のバージョンを管理するには、「最大バージョン数」パラメータを指定します。詳細については、「データバージョンと TTL」をご参照ください。
CU モードの高性能インスタンスのコストを削減するには、データテーブルの予約済み読み取り/書き込みスループットを指定します。詳細については、「予約済み読み取り/書き込みスループット」をご参照ください。
[詳細設定] をオンにします。
詳細パラメータを構成します。次の表に、パラメータを示します。
パラメータ
説明
Time To Live
データテーブル内のデータの保存期間。保存期間が TTL 値を超えると、Tablestore によって期限切れのデータが自動的に削除されます。単位:秒。
最小値は 86,400 秒(1 日)です。値 -1 は、データが期限切れにならないことを指定します。
最大バージョン数
データテーブルの各属性列に保持できるバージョンの最大数。属性列のデータのバージョン数がこのパラメータの値を超えると、システムによって以前のバージョンのデータが削除されます。
このパラメータの値は正の整数である必要があります。
有効なバージョン オフセット
現在のシステム時刻と指定されたデータバージョンの最大差。単位:秒。「最大バージョン オフセット」パラメータの値は、1970 年 1 月 1 日 00:00:00 UTC から経過した秒数よりも大きい正の整数です。
バージョン番号とデータが書き込まれた時刻の差は、「最大バージョン オフセット」パラメータの値以下である必要があります。そうでない場合、データの書き込み時にエラーが発生します。
属性列のデータの有効なバージョン範囲は、次の式を使用して計算されます。有効なバージョン範囲 = [max{データ書き込み時刻 - 最大バージョン オフセット、データ書き込み時刻 - TTL 値}、データ書き込み時刻 + 最大バージョン オフセット)]。
予約済み読み取りスループット
これら 2 つのパラメータは、高性能インスタンスでのみサポートされています。
データテーブルの予約済み読み取りまたは書き込みスループット。値は INTEGER 型です。有効な値:0 ~ 100000。単位:容量単位(CU)。
[予約済み読み取りスループット] または [予約済み書き込みスループット] パラメータを 0 より大きい値に設定すると、Tablestore によってデータテーブルに関連リソースが割り当てられ、予約されます。データテーブルを作成した後、予約済みスループット リソースの料金が発生します。
[予約済み読み取りスループット] または [予約済み書き込みスループット] パラメータを 0 に設定すると、Tablestore はデータテーブルに関連リソースを割り当てたり予約したりしません。
予約済み書き込みスループット
ローカル トランザクションを有効にする
デフォルトでは、[ローカル トランザクションを有効にする] スイッチはオフになっています。1 行以上のデータの読み取りまたは書き込みに対してアトミック操作を実行する場合は、[ローカル トランザクションを有効にする] スイッチをオンにします。
Prerequisites
アプリケーションが異なる属性列をクエリ条件として使用してデータをクエリする必要がある場合、これらの属性列をセカンダリインデックスのプライマリキー列として指定して、クエリを高速化できます。詳細については、「セカンダリインデックス」をご参照ください。
[セカンダリインデックスの作成] をオンにします。
[事前定義列] フィールドの横にある [+ 追加] ボタンをクリックします。事前定義列の名前を入力し、ドロップダウンリストからデータ型を選択します。
事前定義列の命名規則:名前は 1 ~ 255 バイトの長さで、文字、数字、およびアンダースコア(_)を含めることができます。名前は文字またはアンダースコア(_)で始める必要があります。
事前定義列は、[STRING]、[INTEGER]、[BINARY]、[FLOAT]、および [BOOLEAN] データ型をサポートしています。
[グローバルセカンダリインデックスの追加] をクリックします。[インデックス名] パラメーターと [プライマリキー] パラメーターを設定する必要があります。ビジネス要件に基づいて、[事前定義列] パラメーターと [インデックスタイプ] パラメーターを設定できます。
重要インデックス名はデータテーブル名と異なる必要があります。インデックス名とデータテーブル名は、インスタンス内で一意である必要があります。
セカンダリインデックスの名前は 1 ~ 255 バイトの長さで、文字、数字、およびアンダースコア(_)を含めることができます。名前は文字またはアンダースコア(_)で始める必要があります。
[プライマリキー] パラメーターには、データテーブルの 1 つ以上のプライマリキー列または事前定義列を指定できます。[事前定義列] パラメーターには、データテーブルの 1 つ以上の事前定義列を指定できます。ただし、セカンダリインデックスのプライマリキー列と事前定義列に同じ事前定義列を指定することはできません。
[インデックスタイプ] パラメーターを [グローバル] または [ローカル] に設定できます。
重要グローバルセカンダリインデックスの最初のプライマリキー列は、データテーブルのプライマリキー列または事前定義列にすることができます。ローカルセカンダリインデックスの最初のプライマリキー列は、データテーブルの最初のプライマリキー列である必要があります。
グローバルセカンダリインデックス機能を使用すると、Tablestore はデータテーブルのインデックス付き列とプライマリキー列のデータを非同期モードでインデックステーブルの列に自動的に同期します。同期遅延はミリ秒単位まで短縮できます。ローカルセカンダリインデックス機能を使用すると、Tablestore はデータテーブルのインデックス付き列とプライマリキー列のデータを同期モードでインデックステーブルの列に自動的に同期します。データがデータテーブルに書き込まれた直後に、インデックステーブルからデータをクエリできます。
[作成] をクリックします。
データテーブルの管理
ビジネス要件に基づいて、データテーブルを管理するための操作を実行できます。
操作 | 説明 |
テーブルの名前を照会する | [テーブル] タブで、現在のインスタンスのすべてのデータテーブルの名前を表示できます。 |
テーブルの構成を更新する |
|
テーブルに関する情報を照会する |
|
事前定義列を管理する |
|
データテーブルを削除する |
|
開発統合
次の表に、Tablestore CLI および Tablestore SDK を使用してデータテーブルで実行できる操作を示します。
機能 | API 操作 | 方法 |
データテーブルを作成する | ||
テーブルの構成を更新する | ||
テーブルの名前をクエリする | ||
テーブルに関する情報をクエリする | ||
データテーブルを削除する | ||
事前定義列を追加する | ||
事前定義列を削除する |