このトピックでは、Tablestore SDK for Java を使用してテーブルに対して実行できる操作について説明します。
Tablestore を使用する場合、データストレージ用のテーブルを作成する必要があります。ほとんどの場合、テーブルのセカンダリインデックスを設定する必要はありません。ビジネス要件に基づいて、次の機能を持つテーブルを作成できます。
セカンダリインデックスを使用してデータクエリの効率を向上させる場合は、テーブルの作成時にセカンダリインデックスを設定します。詳細については、データテーブルの作成を参照してください。
セカンダリインデックス機能を使用すると、テーブルに対して1つ以上のインデックステーブルを作成できます。その後、テーブルではなく、インデックステーブルのプライマリキー列に基づいてデータをクエリできます。
1つ以上のデータ行の読み取りまたは書き込みに対してアトミック操作を実行する場合は、テーブルの作成時にローカル・トランザクション機能を有効にします。詳細については、データテーブルの作成を参照してください。
製品ID、ユーザーID、投稿ID、メッセージIDなどのデータに自動インクリメントプライマリキー列を使用する場合は、テーブルの作成時に自動インクリメントプライマリキー列を設定します。詳細については、自動インクリメントプライマリキー列の設定を参照してください。
テーブルがディスクに保存されるときにテーブルを暗号化する場合は、テーブルの作成時にテーブルの暗号化を設定します。詳細については、暗号化テーブルの作成を参照してください。
テーブルを作成した後、ビジネス要件に基づいて、テーブルに対して次の操作を実行できます。
操作 | 説明 |
データの有効期限 (TTL) や最大バージョンなど、テーブルの設定を更新します。 | |
テーブルの設定をクエリします。 | |
インスタンス内のすべてのテーブルの名前をクエリします。 | |
テーブルに事前定義列を追加、またはテーブルから事前定義列を削除します。テーブルのセカンダリインデックスを作成するときに、テーブルの事前定義列をセカンダリインデックスのインデックス列または属性列として設定できます。 | |
テーブルを削除します。 |
また、ビジネス要件に基づいて、テーブル内のデータに対して操作を実行するときに、次の機能を使用することもできます。
機能 | 説明 | シナリオ |
条件付き更新を使用する場合、テーブル内のデータは、条件が満たされた場合にのみ更新できます。それ以外の場合、更新は失敗し、エラーメッセージが返されます。 | この機能は、高並列シナリオでのデータの更新に適しています。 | |
テーブルのローカル・トランザクションを有効にした後、パーティションキー値に基づいてローカル・トランザクションを作成できます。ローカル・トランザクション内でデータを読み書きした後、ローカル・トランザクションをコミットまたは中止できます。 | この機能は、1つ以上のデータ行の読み取りまたは書き込みに対してアトミック操作を実行するのに適しています。 | |
アトミックカウンターを使用すると、列にアトミックカウンターを実装できます。 | この機能は、さまざまな投稿のページビュー数 (PV) など、オンラインアプリケーションの統計データを取得するのに適しています。 | |
フィルターを設定した後、クエリ結果はフィルター条件に基づいてサーバー側でフィルタリングされます。フィルター条件に一致するデータ行のみが返されます。 | この機能は、特定の条件を満たすデータのクエリに適しています。 | |
テーブル内のデータを、サイズが指定された値とほぼ同じ論理シャードに分割できます。シャード間の分割点とシャードが存在するマシンに関する情報が返されます。 | この機能は、計算エンジンで並列処理プランを実装するのに適しています。 |