Topik ini menjelaskan cara menggunakan .NET SDK untuk membaca data dari Tablestore secara iteratif.
Prasyarat
Metode
public IEnumerable<Row> GetRangeIterator(GetIteratorRequest request)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);