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

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

最終更新日:May 12, 2026

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

使用上の注意

データを読み取る際は、自動採番プライマリキー列の値を含め、完全なプライマリキーの値を指定する必要があります。

前提条件

Tablestore クライアントの初期化

メソッド

public GetRowResponse GetRow(GetRowRequest request)

非同期メソッド:

public Task<GetRowResponse> GetRowAsync(GetRowRequest request)

GetRowRequest パラメーター

パラメーター

説明

tableName (必須)

string

データテーブルの名前。

primaryKey (必須)

PrimaryKey

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

  • プライマリキー列で使用できるデータ型は、STRING、INTEGER、BINARY です。

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

maxVersion (任意)

int

返すバージョンの最大数。デフォルト値は 1 です。

  • maxVersiontimeRange の両方を設定することはできません。

  • クエリ条件を満たすデータバージョン数が指定された最大バージョン数を超えた場合、返される結果には、新しい順に指定された数のバージョンが含まれます。

timeRange (任意)

TimeRange

データバージョン範囲。

  • maxVersiontimeRange の両方を設定することはできません。

  • Tablestore データテーブルの各属性列は、複数のデータバージョンを持つことができます。バージョン範囲を指定した場合、メソッドはその範囲内のデータのみを返します。

columnsToGet (任意)

HashSet<string>

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

  • columnsToGet を指定しない場合、メソッドは行全体を返します。

  • columnsToGet を指定し、行に指定されたデータ列が含まれていない場合、返される GetRowResponseRow プロパティは null になります。

condition (任意)

IColumnCondition

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

  • columnsToGetcondition の両方を設定した場合、システムはまず condition を適用してデータをフィルターします。条件が満たされた場合、メソッドは columnsToGet で指定された列のデータのみを返します。

コード例

この例では、プライマリキーの値が 'row1' である単一行を読み取ります。

try
{
    // プライマリキーを構築します。
    PrimaryKey primaryKey = new PrimaryKey
    {
        { "id", new ColumnValue("row1") }
    };

    // GetRow メソッドを呼び出して行を読み取ります。
    GetRowRequest getRowRequest = new GetRowRequest("test_table", primaryKey);
    GetRowResponse getRowResponse = client.GetRow(getRowRequest);

    Console.WriteLine($"RequestId: {getRowResponse.RequestID}");
    Console.WriteLine($"読み取りで消費したキャパシティーユニット: {getRowResponse.ConsumedCapacityUnit.Read}");
    Console.WriteLine($"書き込みで消費したキャパシティーユニット: {getRowResponse.ConsumedCapacityUnit.Write}");
    Console.WriteLine($"行データ: {getRowResponse.Row}");
}
catch (Exception ex)
{
    Console.WriteLine($"行の取得に失敗しました。例外: {ex.Message}");
}
  • 読み取るデータのバージョン範囲を指定します。メソッドは、指定されたバージョン範囲内のデータのみを返します。

    TimeRange timeRange = new TimeRange
    {
        StartTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() - 86400 * 1000,
        EndTime = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()
    };
    
    // GetRow メソッドを呼び出して行を読み取ります。
    GetRowRequest getRowRequest = new GetRowRequest("test_table", primaryKey, null, null, timeRange);
  • 読み取る属性列を指定します。

    HashSet<string> columnsToGet = new HashSet<string> { "col2" };
    
    // GetRow メソッドを呼び出して行を読み取ります。
    GetRowRequest getRowRequest = new GetRowRequest("test_table", primaryKey, columnsToGet);