All Products
Search
Document Center

Tablestore:Membaca data secara batch

Last Updated:Apr 01, 2026

Topik ini menjelaskan cara menggunakan Go SDK untuk membaca data secara batch dari Tablestore. Anda dapat membaca data dari beberapa tabel dalam satu permintaan.

Catatan penggunaan

Satu operasi baca batch dapat membaca hingga 100 baris.

Prasyarat

Inisialisasi client Tablestore

Metode

func (tableStoreClient *TableStoreClient) BatchGetRow(request *BatchGetRowRequest) (*BatchGetRowResponse, error)

Parameter BatchGetRowRequest

  • MultiRowQueryCriteria (wajib)[]*MultiRowQueryCriteria: Kriteria untuk operasi baca batch.

    Parameter

    Tipe

    Deskripsi

    TableName (wajib)

    string

    Nama tabel.

    PrimaryKey (wajib)

    []*PrimaryKey

    Daftar kunci primer.

    • Tipe data kolom kunci primer dapat berupa STRING, INTEGER, atau BINARY.

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

    MaxVersion (opsional)

    int

    Jumlah maksimum versi yang dikembalikan.

    • Anda harus menentukan parameter ini atau TimeRange.

    • Jika jumlah versi yang cocok melebihi nilai ini, Tablestore mengembalikan jumlah versi terbaru yang ditentukan, diurutkan menurun berdasarkan timestamp.

    TimeRange (opsional)

    *TimeRange

    Rentang versi.

    • Anda harus menentukan parameter ini atau MaxVersion.

    • Setiap kolom atribut dalam tabel Tablestore dapat memiliki beberapa versi. Jika Anda menentukan rentang versi, Tablestore hanya mengembalikan data dalam rentang tersebut.

    ColumnsToGet (opsional)

    []string

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

    • Jika Anda tidak menentukan parameter ini, Tablestore mengembalikan seluruh baris.

    • Jika suatu baris tidak berisi kolom yang ditentukan, respons untuk baris tersebut hanya berisi kunci primernya tanpa kolom atribut.

    Filter (opsional)

    ColumnFilter

    Kondisi filter. Untuk informasi lebih lanjut, lihat Filters.

    • Jika Anda menentukan ColumnsToGet dan Filter, filter diterapkan pada baris tersebut. Untuk baris yang memenuhi filter, Tablestore hanya mengembalikan kolom yang ditentukan dalam ColumnsToGet.

Contoh kode

Kode berikut menunjukkan cara membaca dua baris dengan nilai kunci primer row1 dan row2 dari tabel bernama test_table.

func BatchGetRowSample(client *tablestore.TableStoreClient) {
    // Membuat kriteria kueri.
    multiRowQueryCriteria := new(tablestore.MultiRowQueryCriteria)
    // Menetapkan nama tabel.
    multiRowQueryCriteria.TableName = "test_table"
    // Menambahkan kunci primer untuk baris pertama.
    getPk1 := new(tablestore.PrimaryKey)
    getPk1.AddPrimaryKeyColumn("id", "row1")
    multiRowQueryCriteria.AddRow(getPk1)
    // Menambahkan kunci primer untuk baris kedua.
    getPk2 := new(tablestore.PrimaryKey)
    getPk2.AddPrimaryKeyColumn("id", "row2")
    multiRowQueryCriteria.AddRow(getPk2)
    // Menetapkan jumlah maksimum versi yang dikembalikan.
    multiRowQueryCriteria.MaxVersion = 1

    // Memanggil metode BatchGetRow.
    batchGetRowRequest := new(tablestore.BatchGetRowRequest)
    batchGetRowRequest.MultiRowQueryCriteria = append(batchGetRowRequest.MultiRowQueryCriteria, multiRowQueryCriteria)
    batchGetRowResponse, err := client.BatchGetRow(batchGetRowRequest)

    // Memproses respons.
    if err != nil {
        fmt.Println("Batch get row gagal dengan error: ", err)
    } else {
        fmt.Printf("* RequestId: %s \n", batchGetRowResponse.RequestId)
        for tableName, rows := range batchGetRowResponse.TableToRowsResult {
            fmt.Printf("* Tabel: %s \n", tableName)
            for _, row := range rows {
                if row.IsSucceed {
                    fmt.Printf("Baris Berhasil: %v \n", row)
                } else {
                    fmt.Printf("Baris Gagal: %d | %v \n", row.Index, row.Error)
                }
            }
        }
    }
}

Potongan kode berikut menunjukkan cara mengonfigurasi parameter untuk operasi baca batch.

  • Untuk membaca data dari beberapa tabel dalam satu permintaan, tambahkan objek MultiRowQueryCriteria untuk setiap tabel.

    // Membuat kriteria kueri untuk tabel kedua.
    multiRowQueryCriteria1 := new(tablestore.MultiRowQueryCriteria)
    multiRowQueryCriteria1.TableName = "orders_small"
    // Menambahkan kunci primer untuk baris pertama.
    getPk3 := new(tablestore.PrimaryKey)
    getPk3.AddPrimaryKeyColumn("order_id", "90fb478c-1360-11f0-a34d-00163e30a2a9")
    multiRowQueryCriteria1.AddRow(getPk3)
    // Menetapkan jumlah maksimum versi yang dikembalikan.
    multiRowQueryCriteria1.MaxVersion = 1
    // Menambahkan objek MultiRowQueryCriteria ke permintaan.
    batchGetRowRequest.MultiRowQueryCriteria = append(batchGetRowRequest.MultiRowQueryCriteria, multiRowQueryCriteria1)
  • Untuk membaca data dalam rentang versi tertentu, atur parameter TimeRange. Operasi ini hanya mengembalikan data dalam rentang tersebut.

    // Menetapkan rentang versi ke 24 jam terakhir.
    timeRange := new(tablestore.TimeRange)
    timeRange.Start = int64(time.Now().Unix() * 1000 - 86400 * 1000) 
    timeRange.End = int64(time.Now().Unix() * 1000) 
    multiRowQueryCriteria.TimeRange = timeRange
  • Menentukan kolom atribut yang akan dibaca.

    multiRowQueryCriteria.AddColumnToGet("col1")

Dokumen terkait

Membaca data dalam rentang tertentu