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

Tablestore:単一のデータ行を読み取る

最終更新日:Jul 01, 2025

このトピックでは、Tablestore SDK for Java を使用して、Tablestore テーブルから単一のデータ行を読み取る方法について説明します。

使用方法

データテーブルからデータを読み取る場合は、オートインクリメントプライマリキー列の値を含む、完全なプライマリキーを指定する必要があります。

前提条件

クライアントが初期化されていること。詳細については、「Tablestore クライアントを初期化する」をご参照ください。

メソッドの説明

public GetRowResponse getRow(GetRowRequest getRowRequest) throws TableStoreException, ClientException

GetRowRequest パラメーター

  • rowQueryCriteria (必須) SingleRowQueryCriteria: 読み取るデータ行に関する情報。以下のパラメーターを含みます。

    パラメーター

    説明

    tableName (必須)

    String

    データテーブルの名前。

    primaryKey (必須)

    PrimaryKey

    プライマリキー情報。プライマリキー列の名前と値を含みます。

    • プライマリキー列のデータ型には、STRING、INTEGER、BINARY があります。

    • 指定するプライマリキー列の数と型は、テーブルのものと一致している必要があります。

    maxVersions (オプション)

    OptionalValue<Integer>

    バージョンの最大数。

    • maxVersions パラメーターと timeRange パラメーターの少なくとも 1 つを設定する必要があります。

    • クエリ条件を満たすバージョンの数が指定された最大バージョン数を超える場合、指定された数のバージョンが最新バージョンから最古バージョンまで返されます。

    timeRange (オプション)

    OptionalValue<TimeRange>

    データバージョンの範囲。

    • maxVersions パラメーターと timeRange パラメーターの少なくとも 1 つを設定する必要があります。

    • Tablestore テーブルの各属性列は、異なるデータバージョンを持つことができます。バージョン範囲を指定すると、バージョン範囲内のデータのみが返されます。

    columnsToGet (オプション)

    Set<String>

    読み取る列。プライマリキー列または属性列を指定できます。

    • columnsToGet パラメーターを設定しない場合は、データ行全体が返されます。

    • columnsToGet パラメーターを設定し、行に指定された列が含まれていない場合は、null が返されます。

    filter (オプション)

    OptionalValue<Filter>

    フィルター条件。詳細については、「フィルターを設定する」をご参照ください。

    • columnsToGet パラメーターと filter パラメーターを設定すると、行は columnsToGet パラメーターで指定された条件に基づいてフィルター処理され、次に filter パラメーターで指定された条件に基づいてフィルター処理されます。

サンプルコード

次のサンプルコードは、プライマリキー値が row1 の単一のデータ行を読み取ります。

public static void getRowExample(SyncClient client) {
    // プライマリキーを構築します。
    PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
    primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
    PrimaryKey primaryKey = primaryKeyBuilder.build();

    // 読み取る行データを構築します。
    SingleRowQueryCriteria singleRowQueryCriteria = new SingleRowQueryCriteria("test_table", primaryKey);
    singleRowQueryCriteria.setMaxVersions(1);

    // getRow メソッドを呼び出して、行データを読み取ります。
    GetRowRequest getRowRequest = new GetRowRequest(singleRowQueryCriteria);
    GetRowResponse getRowResponse = client.getRow(getRowRequest);

    // 結果を返します。
    System.out.println("RequestId: " + getRowResponse.getRequestId());
    System.out.println("Read CU Cost: " + getRowResponse.getConsumedCapacity().getCapacityUnit().getReadCapacityUnit());
    System.out.println("Write CU Cost: " + getRowResponse.getConsumedCapacity().getCapacityUnit().getWriteCapacityUnit());
    System.out.println("Row Data: \n" + getRowResponse.getRow());
}
  • 読み取るデータのバージョン範囲を指定します。バージョン範囲内のデータのみが返されます。

    // 読み取るデータのバージョン範囲を現在の時刻の 1 日前に設定します。
    singleRowQueryCriteria.setTimeRange(new TimeRange(System.currentTimeMillis() - 86400*1000, System.currentTimeMillis()));
  • 読み取る属性列を指定します。

    singleRowQueryCriteria.addColumnsToGet("col2");

関連情報