このトピックでは、Tablestore SDK for Java を使用して、Tablestore テーブルから単一のデータ行を読み取る方法について説明します。
使用方法
データテーブルからデータを読み取る場合は、オートインクリメントプライマリキー列の値を含む、完全なプライマリキーを指定する必要があります。
前提条件
クライアントが初期化されていること。詳細については、「Tablestore クライアントを初期化する」をご参照ください。
メソッドの説明
public GetRowResponse getRow(GetRowRequest getRowRequest) throws TableStoreException, ClientExceptionサンプルコード
次のサンプルコードは、プライマリキー値が 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");