All Products
Search
Document Center

Tablestore:Batch get data

Last Updated:Apr 21, 2026

Baca data secara batch dari satu atau beberapa tabel Tablestore menggunakan Python SDK.

Usage notes

Setiap operasi batch get dapat mengambil hingga 100 baris.

Prasyarat

Inisialisasi Tablestore Client

Method

def batch_get_row(self, request)

Parameter permintaan

  • items (Required)List[TableInBatchGetRowItem]: Daftar item yang akan diambil dalam operasi batch get. Setiap item berisi parameter berikut.

    Parameter

    Type

    Description

    table_name (Required)

    str

    Nama tabel.

    primary_keys (Required)

    List[Tuple]

    Nama dan nilai setiap kolom kunci primer.

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

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

    max_version (Optional)

    int

    Jumlah maksimum versi yang dikembalikan.

    • Anda harus menentukan salah satu dari max_version atau time_range.

    • Jika jumlah versi yang cocok melebihi batas ini, Tablestore mengembalikan versi terbaru hingga batas tersebut dalam urutan kronologis terbalik.

    time_range (Optional)

    Tuple

    Rentang versi data yang akan dibaca.

    • Anda harus menentukan salah satu dari max_version atau time_range.

    • Setiap kolom atribut dalam tabel Tablestore dapat berisi beberapa versi data. Menetapkan rentang versi hanya mengembalikan versi yang berada dalam rentang tersebut.

    columns_to_get (Optional)

    List[str]

    Kolom yang akan dibaca. Kolom ini dapat berupa kolom kunci primer atau kolom atribut.

    • Jika parameter ini tidak ditentukan, seluruh baris dikembalikan.

    • Jika baris tidak berisi salah satu kolom yang ditentukan, respons mengembalikan null.

    column_filter (Optional)

    ColumnCondition

    Kondisi filter. Untuk informasi lebih lanjut, lihat filter.

    • Jika columns_to_get dan column_filter keduanya ditentukan, Tablestore pertama-tama mengambil kolom yang ditentukan dalam columns_to_get, lalu menerapkan column_filter untuk memfilter hasilnya.

Contoh kode

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

try:
    primary_keys = []
    # Tambahkan kunci primer untuk baris pertama.
    primary_keys.append([('id', 'row1')])
    # Tambahkan kunci primer untuk baris kedua.
    primary_keys.append([('id', 'row2')])

    # Buat kondisi kueri.
    batchGetRowItem = TableInBatchGetRowItem('test_table', primary_keys=primary_keys, max_version=1)

    # Panggil metode batch_get_row untuk melakukan operasi batch get.
    request = BatchGetRowRequest()
    request.add(batchGetRowItem)
    response = client.batch_get_row(request)

    # Proses respons.
    print('* Apakah semua berhasil: %s' % response.is_all_succeed())
    print('* Baris yang Berhasil: ')
    for succeed in response.get_succeed_rows():
        if succeed.row is not None:
            print('table_name: %s. primary_key: %s, attribute_columns: %s.' % (succeed.table_name, succeed.row.primary_key,
                                                                               succeed.row.attribute_columns))
        else:
            print('table_name: %s. Baris ini tidak ada.' % succeed.table_name)
    if not response.is_all_succeed():
        print('* Baris yang Gagal: ')
        for failed in response.get_failed_rows():
            print('table_name: %s. error code: %s, error message: %s.' % (failed.table_name, failed.error_code,
                                                                          failed.error_message))
except Exception as e:
    print("Batch get row gagal dengan error: %s" % e)

Contoh berikut menunjukkan konfigurasi parameter tambahan untuk operasi batch get.

  • Baca data dari beberapa tabel. Operasi batch get mendukung pembacaan dari beberapa tabel. Tentukan TableInBatchGetRowItem untuk setiap tabel.

    # Buat kondisi kueri untuk tabel kedua.
    primary_keys1 = [[('order_id', '90fb478c-1360-11f0-a34d-00163e30a2a9')]]
    batchGetRowItem1 = TableInBatchGetRowItem('orders_small', primary_keys=primary_keys1, max_version=1)
    request.add(batchGetRowItem1)
  • Tetapkan rentang versi untuk hanya membaca versi data yang berada dalam rentang tersebut.

    # Tetapkan rentang versi ke 24 jam terakhir dari waktu saat ini.
    time_range = (int(time.time() * 1000 - 86400 * 1000), int(time.time() * 1000))
    batchGetRowItem = TableInBatchGetRowItem('test_table', primary_keys=primary_keys, time_range=time_range)
  • Tentukan kolom atribut yang akan dibaca.

    columns_to_get = ['col1']
    batchGetRowItem = TableInBatchGetRowItem('test_table', primary_keys=primary_keys, columns_to_get=columns_to_get, max_version=1)

Topik terkait

Baca data dalam rentang