All Products
Search
Document Center

Tablestore:Membaca data secara batch

Last Updated:Apr 21, 2026

Gunakan Tablestore PHP SDK untuk membaca data dari beberapa tabel dalam satu permintaan batch.

Catatan penggunaan

Satu operasi pembacaan batch dapat mengambil hingga 100 baris data.

Prasyarat

Inisialisasi client Tablestore

Metode

public function batchGetRow(array $request)

Parameter $request berisi bidang-bidang berikut.

  • tables (Wajib) array: Informasi untuk pembacaan data secara batch. Parameter ini mencakup bidang-bidang berikut.

    Nama

    Tipe

    Deskripsi

    table_name (Wajib)

    string

    Nama tabel data.

    primary_keys (Wajib)

    array

    Informasi kunci primer, termasuk nama dan nilai kolom kunci primer.

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

    • Jumlah dan tipe kunci primer harus sama dengan yang ada di tabel data.

    max_versions (Opsional)

    int

    Jumlah maksimum versi yang akan dikembalikan.

    • Tentukan salah satu antara max_versions atau time_range.

    • Jika jumlah versi melebihi batas maksimum yang ditentukan, sistem akan mengembalikan versi terbaru.

    time_range (Opsional)

    array

    Rentang waktu versi data.

    • Tentukan salah satu antara max_versions atau time_range.

    • Setiap kolom atribut dalam tabel Tablestore dapat memiliki beberapa versi data. Hanya data dalam rentang versi yang ditentukan yang dikembalikan.

    columns_to_get (Opsional)

    array

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

    • Jika Anda tidak menetapkan columns_to_get, seluruh baris akan dikembalikan.

    • Jika Anda menetapkan columns_to_get dan baris yang dibaca tidak mengandung kolom data yang ditentukan, sistem akan mengembalikan null.

    column_filter (Opsional)

    array

    Kondisi filter. Untuk informasi lebih lanjut, lihat Filters.

    • Jika Anda menetapkan columns_to_get dan column_filter sekaligus, sistem terlebih dahulu memilih baris berdasarkan columns_to_get, lalu menyaring data berdasarkan column_filter.

Contoh

Baca dua baris dengan nilai kunci primer row1 dan row2 dari tabel test_table:

$table = array (
    'table_name' => 'test_table',
    'max_versions' => 1,
    'primary_keys' => array (
        array ( array('id', 'row1') ),
        array ( array('id', 'row2') )
    )
);

$request = array (
    'tables' => array (
        $table
    )
);

try {
    // Panggil metode batchGetRow untuk membaca data baris.
    $response = $client->batchGetRow ($request);

    // Proses respons.
    foreach ($response['tables'] as $tableGroup) {
        echo "* Table: " . $tableGroup['table_name'] . "\n";
        foreach ($tableGroup['rows'] as $row) {
            if ($row['is_ok']) {
                if ($row['primary_key'] != null) {
                    echo "Succeeded Row: " . json_encode($row['primary_key']) . json_encode($row['attribute_columns']) . "\n";
                } else {
                    echo "Succeeded Row: This row is not exist." . "\n";
                }
            } else {
                echo "Failed Row: " . $row['error']['code'] . '. ' . $row['error']['message'] . "\n";
            }
        }
    }
} catch (Exception $e){
    echo "Batch get row failed.";
}

Konfigurasikan parameter pembacaan batch sesuai kebutuhan:

  • Baca data dari beberapa tabel. Operasi pembacaan batch mendukung pengambilan data dari beberapa tabel sekaligus. Tentukan MultiRowQueryCriteria untuk setiap tabel.

    $table1 = array (
        'table_name' => 'orders_small',
        'max_versions' => 1,
        'primary_keys' => array (
            array (
                array('order_id', '90fb478c-1360-11f0-a34d-00163e30a2a9')
            )
        )
    );
    
    $request = array (
        'tables' => array (
            $table,
            $table1
        )
    );
  • Tentukan rentang waktu untuk versi data yang akan diambil. Hanya data dalam rentang waktu yang ditentukan yang dikembalikan.

    // Tetapkan rentang waktu kueri ke 24 jam terakhir.
    $table['time_range'] = array (
        'start_time' => intval(microtime(true) * 1000) - 86400 * 1000,
        'end_time' => intval(microtime(true) * 1000)
    );
  • Tentukan kolom atribut yang akan diambil.

    $table['columns_to_get'] = array('col2');

Referensi

Membaca data dalam rentang