All Products
Search
Document Center

Tablestore:Membaca data secara iteratif

Last Updated:May 12, 2026

Topik ini menjelaskan cara menggunakan .NET SDK untuk membaca data dari Tablestore secara iteratif.

Prasyarat

Inisialisasi client Tablestore

Metode

public IEnumerable<Row> GetRangeIterator(GetIteratorRequest request)

GetIteratorRequest mencakup parameter berikut.

Parameter

Jenis

Deskripsi

tableName (Wajib)

string

Nama tabel.

inclusiveStartPrimaryKey (Wajib)

PrimaryKey

Kunci primer awal, yang mencakup nama dan nilai kolom kunci primer.

  • Hasil termasuk baris yang sesuai dengan kunci primer awal.

  • Jumlah dan tipe kolom kunci primer harus sesuai dengan skema tabel.

  • Untuk pembacaan maju, kunci primer awal harus lebih kecil daripada kunci primer akhir.

  • Untuk pembacaan mundur, kunci primer awal harus lebih besar daripada kunci primer akhir.

  • Gunakan ColumnValue.INF_MIN untuk merepresentasikan nilai minimum tak hingga dan ColumnValue.INF_MAX untuk merepresentasikan nilai maksimum tak hingga.

exclusiveEndPrimaryKey (Wajib)

PrimaryKey

Kunci primer akhir, yang mencakup nama dan nilai kolom kunci primer.

  • Hasil tidak termasuk baris yang sesuai dengan kunci primer akhir.

  • Jumlah dan tipe kolom kunci primer harus sesuai dengan skema tabel.

  • Gunakan ColumnValue.INF_MIN untuk merepresentasikan nilai minimum tak hingga dan ColumnValue.INF_MAX untuk merepresentasikan nilai maksimum tak hingga.

direction (Wajib)

GetRangeDirection

Arah pembacaan.

  • GetRangeDirection.Forward: Melakukan pembacaan maju.

  • GetRangeDirection.Backward: Melakukan pembacaan mundur.

consumedCapacityUnitCounter (Wajib)

CapacityUnit

Objek yang melacak unit kapasitas yang dikonsumsi oleh operasi.

limit (Opsional)

int

Jumlah maksimum baris yang akan dibaca. Nilainya harus lebih besar dari 0.

columnsToGet (Opsional)

HashSet<string>

Kolom yang akan dibaca. Anda dapat menentukan kolom kunci primer atau kolom atribut.

  • Jika parameter ini tidak ditetapkan, seluruh baris dikembalikan.

  • Jika ditetapkan, baris apa pun yang tidak berisi salah satu kolom yang ditentukan akan dihilangkan dari hasil.

condition (Opsional)

IColumnCondition

Kondisi filter. Untuk informasi selengkapnya, lihat Filter.

  • Ketika columnsToGet dan condition keduanya ditentukan, Tablestore mengambil kolom yang dipilih sebelum menerapkan kondisi filter.

Kode contoh

Kode berikut membaca data secara iteratif dari tabel test_table, dimulai dari baris dengan nilai kunci primer "row1".

try
{
    // Tetapkan kunci primer awal.
    PrimaryKey inclusiveStartPrimaryKey = new PrimaryKey()
    {
        { "id", new ColumnValue("row1") }
    };
    // Tetapkan kunci primer akhir. Hasil tidak menyertakan kunci primer akhir.
    PrimaryKey exclusiveEndPrimaryKey = new PrimaryKey()
    {
        { "id", ColumnValue.INF_MAX }
    };

    // Buat objek CapacityUnit untuk melacak unit kapasitas yang dikonsumsi selama iterasi.
    CapacityUnit capacityUnit = new CapacityUnit(0, 0);

    // Buat permintaan untuk iterator.
    GetIteratorRequest getIteratorRequest = new GetIteratorRequest("test_table", GetRangeDirection.Forward, inclusiveStartPrimaryKey, exclusiveEndPrimaryKey, capacityUnit);

    // Panggil GetRangeIterator untuk mendapatkan iterator.
    IEnumerable<Row> iterator = client.GetRangeIterator(getIteratorRequest);
    foreach (var row in iterator)
    {
        Console.WriteLine(row);
    }
}
catch (Exception ex)
{
    Console.WriteLine($"Get range iterator gagal, exception: {ex.Message}");
}

Contoh berikut menunjukkan cara menetapkan parameter berbeda untuk pembacaan iteratif.

  • Tetapkan arah pembacaan.

    // Tetapkan kunci primer awal. Untuk pembacaan mundur, kunci primer awal harus lebih besar daripada kunci primer akhir.
    PrimaryKey inclusiveStartPrimaryKey = new PrimaryKey()
    {
        { "id", ColumnValue.INF_MAX }
    };
    // Tetapkan kunci primer akhir. Hasil tidak menyertakan kunci primer akhir.
    PrimaryKey exclusiveEndPrimaryKey = new PrimaryKey()
    {
        { "id", new ColumnValue("row1") }
    };
    
    // Buat permintaan untuk iterator dan tetapkan arah ke mundur.
    GetIteratorRequest getIteratorRequest = new GetIteratorRequest("test_table", GetRangeDirection.Backward, inclusiveStartPrimaryKey, exclusiveEndPrimaryKey, capacityUnit);
  • Tetapkan jumlah maksimum baris yang akan dibaca.

    int limit = 20;
    
    // Buat permintaan untuk iterator.
    GetIteratorRequest getIteratorRequest = new GetIteratorRequest("test_table", GetRangeDirection.Forward, inclusiveStartPrimaryKey, exclusiveEndPrimaryKey, capacityUnit, null, limit);
  • Tentukan kolom atribut yang akan dibaca.

    HashSet<string> columnsToGet = new HashSet<string> { "col2" };
    
    // Buat permintaan untuk iterator.
    GetIteratorRequest getIteratorRequest = new GetIteratorRequest("test_table", GetRangeDirection.Forward, inclusiveStartPrimaryKey, exclusiveEndPrimaryKey, capacityUnit, columnsToGet);