All Products
Search
Document Center

Tablestore:Membaca data secara batch

Last Updated:May 12, 2026

Topik ini menjelaskan cara membaca data secara batch dari Tablestore menggunakan .NET SDK. Anda dapat mengkueri data dari beberapa tabel dalam satu operasi.

Usage notes

Satu operasi batch read dapat membaca hingga 100 baris.

Prasyarat

Inisialisasi client Tablestore

Method signature

public BatchGetRowResponse BatchGetRow(BatchGetRowRequest request)

Metode asinkron:

public Task<BatchGetRowResponse> BatchGetRowAsync(BatchGetRowRequest request)

Parameter

  • rowQueryCriteriaDict (Required) IDictionary<string, MultiRowQueryCriteria>: Kriteria kueri untuk operasi batch read.

    Parameter

    Tipe

    Deskripsi

    tableName (Required)

    string

    Nama tabel.

    primaryKeys (Required)

    List<PrimaryKey>

    Informasi primary key, termasuk nama dan nilai setiap kolom kunci primer.

    • Tipe data kolom kunci primer meliputi STRING, INTEGER, dan BINARY.

    • Jumlah dan tipe data primary key harus sesuai dengan yang didefinisikan untuk tabel tersebut.

    columnsToGet (Optional)

    HashSet<string>

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

    • Jika parameter ini dihilangkan, semua kolom data baris akan dikembalikan.

    • Jika baris yang diambil tidak berisi salah satu kolom yang ditentukan, objek Row yang dikembalikan untuk baris tersebut bernilai null.

    condition (Optional)

    IColumnCondition

    Kondisi filter. Untuk informasi selengkapnya, lihat Filters.

    • Jika Anda menentukan columnsToGet dan condition sekaligus, Tablestore terlebih dahulu mengambil kolom yang ditentukan dalam columnsToGet, lalu menerapkan kondisi filter.

Contoh

Contoh kode berikut menunjukkan cara membaca dua baris data dengan nilai primary key row1 dan row2 dari tabel test_table.

try
{
    List<PrimaryKey> primaryKeys = new List<PrimaryKey>
    {
        // Tambahkan primary key baris pertama.
        new PrimaryKey {{ "id", new ColumnValue("row1") }},
        // Tambahkan primary key baris kedua.
        new PrimaryKey {{ "id", new ColumnValue("row2") }},
    };

    // Bangun kriteria kueri.
    BatchGetRowRequest batchGetRowRequest = new BatchGetRowRequest();
    batchGetRowRequest.Add("test_table", primaryKeys);

    // Panggil metode BatchGetRow untuk membaca data baris.
    BatchGetRowResponse batchGetRowResponse = client.BatchGetRow(batchGetRowRequest);

    // Proses respons.
    Console.WriteLine($"* RequestId: {batchGetRowResponse.RequestID}");
    Console.WriteLine($"* Apakah semua berhasil: {batchGetRowResponse.IsAllSucceed}");
    foreach (var tableGroup in batchGetRowResponse.RowDataGroupByTable)
    {
        Console.WriteLine($"* Tabel: {tableGroup.Key}");
        foreach (var item in tableGroup.Value)
        {
            if (item.IsOK)
            {
                if (item.Row != null)
                {
                    Console.WriteLine($"Baris Berhasil: {item.Row}");
                }
                else
                {
                    Console.WriteLine("Baris Berhasil: Baris ini tidak ada.");
                }
            }
            else
            {
                Console.WriteLine($"Baris Gagal: {item.ErrorMessage}");
            }
        }
    }
}
catch (Exception ex)
{
    Console.WriteLine($"Batch get row gagal, exception: {ex.Message}");
}

Contoh berikut menunjukkan cara mengonfigurasi parameter untuk operasi batch read data.

  • Untuk membaca data dari beberapa tabel dalam satu operasi batch read, Anda harus menentukan MultiRowQueryCriteria untuk setiap tabel.

    // Bangun kriteria kueri untuk tabel kedua.
    List<PrimaryKey> primaryKeys1 = new List<PrimaryKey>
    {
        new PrimaryKey {{ "order_id", new ColumnValue("90fb478c-1360-11f0-a34d-00163e30a2a9") }}
    };
    
    batchGetRowRequest.Add("orders_small", primaryKeys1);
  • Tentukan kolom atribut yang akan dibaca.

    HashSet<string> columnsToGet = new HashSet<string> { "col2" };
    
    batchGetRowRequest.Add("test_table", primaryKeys, columnsToGet);