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

Tablestore:データの反復読み取り

最終更新日:May 12, 2026

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

前提条件

Tablestore クライアントの初期化

メソッド

public IEnumerable<Row> GetRangeIterator(GetIteratorRequest request)

GetIteratorRequest には、以下のパラメーターが含まれます。

パラメーター

タイプ

説明

tableName (必須)

string

テーブルの名前。

inclusiveStartPrimaryKey (必須)

PrimaryKey

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

  • 結果には、開始プライマリキーに一致する行が 含まれます

  • プライマリキー列の数とタイプは、テーブルのスキーマと一致する必要があります。

  • 順方向読み取りの場合、開始プライマリキーは終了プライマリキーより小さくする必要があります。

  • 逆方向読み取りの場合、開始プライマリキーは終了プライマリキーより大きくする必要があります。

  • 無限最小値を表すには ColumnValue.INF_MIN を、無限最大値を表すには ColumnValue.INF_MAX を使用します。

exclusiveEndPrimaryKey (必須)

PrimaryKey

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

  • 結果には、終了プライマリキーに一致する行は 含まれません

  • プライマリキー列の数とタイプは、テーブルのスキーマと一致する必要があります。

  • 無限最小値を表すには ColumnValue.INF_MIN を、無限最大値を表すには ColumnValue.INF_MAX を使用します。

direction (必須)

GetRangeDirection

読み取り方向。

  • GetRangeDirection.Forward:順方向読み取りを実行します。

  • GetRangeDirection.Backward:逆方向読み取りを実行します。

consumedCapacityUnitCounter (必須)

CapacityUnit

操作で消費されるキャパシティーユニットを追跡するオブジェクト。

limit (オプション)

int

読み取る行の最大数。値は 0 より大きくする必要があります。

columnsToGet (オプション)

HashSet<string>

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

  • このパラメーターが設定されていない場合、行全体が返されます。

  • 設定されている場合、指定された列のいずれも含まない行は結果から除外されます。

condition (オプション)

IColumnCondition

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

  • columnsToGetcondition の両方が指定されている場合、Tablestore は選択された列を取得してから、フィルター条件を適用します。

サンプルコード

次のコードは、プライマリキー値が "row1" の行から、test_table テーブルのデータを反復的に読み取ります。

try
{
    // 開始プライマリキーを設定します。
    PrimaryKey inclusiveStartPrimaryKey = new PrimaryKey()
    {
        { "id", new ColumnValue("row1") }
    };
    // 終了プライマリキーを設定します。結果には終了プライマリキーは含まれません。
    PrimaryKey exclusiveEndPrimaryKey = new PrimaryKey()
    {
        { "id", ColumnValue.INF_MAX }
    };

    // 反復処理中に消費されたキャパシティーユニットを追跡する CapacityUnit オブジェクトを作成します。
    CapacityUnit capacityUnit = new CapacityUnit(0, 0);

    // イテレーター取得リクエストを作成します。
    GetIteratorRequest getIteratorRequest = new GetIteratorRequest("test_table", GetRangeDirection.Forward, inclusiveStartPrimaryKey, exclusiveEndPrimaryKey, capacityUnit);

    // GetRangeIterator を呼び出してイテレーターを取得します。
    IEnumerable<Row> iterator = client.GetRangeIterator(getIteratorRequest);
    foreach (var row in iterator)
    {
        Console.WriteLine(row);
    }
}
catch (Exception ex)
{
    Console.WriteLine($"Get range iterator failed, exception: {ex.Message}");
}

次の例は、反復読み取りのさまざまなパラメーターを設定する方法を示しています。

  • 読み取り方向を設定します。

    // 開始プライマリキーを設定します。逆方向読み取りの場合、開始プライマリキーは終了プライマリキーより大きくする必要があります。
    PrimaryKey inclusiveStartPrimaryKey = new PrimaryKey()
    {
        { "id", ColumnValue.INF_MAX }
    };
    // 終了プライマリキーを設定します。結果には終了プライマリキーは含まれません。
    PrimaryKey exclusiveEndPrimaryKey = new PrimaryKey()
    {
        { "id", new ColumnValue("row1") }
    };
    
    // イテレーター取得リクエストを作成し、方向を逆方向に設定します。
    GetIteratorRequest getIteratorRequest = new GetIteratorRequest("test_table", GetRangeDirection.Backward, inclusiveStartPrimaryKey, exclusiveEndPrimaryKey, capacityUnit);
  • 読み取る行の最大数を設定します。

    int limit = 20;
    
    // イテレーター取得リクエストを作成します。
    GetIteratorRequest getIteratorRequest = new GetIteratorRequest("test_table", GetRangeDirection.Forward, inclusiveStartPrimaryKey, exclusiveEndPrimaryKey, capacityUnit, null, limit);
  • 読み取る属性列を指定します。

    HashSet<string> columnsToGet = new HashSet<string> { "col2" };
    
    // イテレーター取得リクエストを作成します。
    GetIteratorRequest getIteratorRequest = new GetIteratorRequest("test_table", GetRangeDirection.Forward, inclusiveStartPrimaryKey, exclusiveEndPrimaryKey, capacityUnit, columnsToGet);