全部产品
Search
文档中心

Tablestore:Membaca Data Rentang

更新时间:Mar 10, 2026

Gunakan Tablestore PHP SDK untuk membaca baris dalam rentang kunci primer yang ditentukan.

Prasyarat

Inisialisasi client Tablestore

Metode

public function getRange(array $request)

Tabel berikut menjelaskan parameter $request.

Nama

Jenis

Deskripsi

table_name (wajib)

string

Nama tabel data.

inclusive_start_primary_key (wajib)

array

Kunci primer awal. Berisi nama dan nilai kolom kunci primer.

  • Tanggapan mencakup kunci primer awal.

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

  • Untuk pembacaan maju, kunci primer awal harus lebih kecil daripada kunci primer akhir.

  • Untuk pembacaan mundur, kunci primer awal harus lebih besar daripada kunci primer akhir.

  • PrimaryKeyTypeConst::CONST_INF_MIN berarti negatif tak hingga. PrimaryKeyTypeConst::CONST_INF_MAX berarti positif tak hingga.

exclusive_end_primary_key (wajib)

array

Kunci primer akhir. Berisi nama dan nilai kolom kunci primer.

  • Tanggapan tidak mencakup kunci primer akhir.

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

  • PrimaryKeyTypeConst::CONST_INF_MIN berarti negatif tak hingga. PrimaryKeyTypeConst::CONST_INF_MAX berarti positif tak hingga.

direction (wajib)

string

Arah pembacaan.

  • DirectionConst::CONST_FORWARD: Pembacaan maju.

  • DirectionConst::CONST_BACKWARD: Pembacaan mundur.

max_versions (opsional)

int

Jumlah maksimum versi.

  • Tetapkan salah satu antara max_versions atau time_range.

  • Jika jumlah versi yang sesuai melebihi max_versions, tanggapan akan mengembalikan versi terbaru hingga sejumlah max_versions.

time_range (opsional)

array

Rentang versi.

  • Tetapkan salah satu antara max_versions atau time_range.

  • Setiap kolom atribut dalam tabel data Tablestore dapat memiliki versi berbeda. Saat Anda menetapkan time_range, hanya data dalam rentang tersebut yang dikembalikan.

limit (opsional)

int

Jumlah maksimum baris yang dikembalikan per permintaan. Harus lebih besar dari 0. Jika jumlah baris yang sesuai melebihi batas ini, tanggapan akan mengembalikan jumlah baris yang ditentukan beserta kunci primer awal untuk permintaan berikutnya.

columns_to_get (opsional)

array

Kolom yang akan dibaca. Dapat berupa kolom kunci primer atau kolom atribut.

  • Jika tidak ditetapkan, tanggapan mengembalikan seluruh baris.

  • Jika ditetapkan dan suatu baris tidak mengandung kolom yang ditentukan, tanggapan mengembalikan null untuk baris tersebut.

column_filter (opsional)

array

Kondisi filter. Untuk informasi selengkapnya, lihat Filter.

  • Jika columns_to_get dan column_filter keduanya ditetapkan, Tablestore terlebih dahulu menerapkan columns_to_get, lalu menerapkan column_filter.

Contoh

Contoh berikut membaca data dari tabel test_table dengan nilai kunci primer lebih besar dari row1.

$request = array (
    'table_name' => 'test_table',
    // Tetapkan kunci primer awal
    'inclusive_start_primary_key' => array (
        array('id', 'row1')
    ),
    // Tetapkan kunci primer akhir (tanggapan tidak mencakup kunci ini)
    'exclusive_end_primary_key'  => array (
        array('id', null, PrimaryKeyTypeConst::CONST_INF_MAX)
    ),
    // Tetapkan pembacaan maju
    'direction' => DirectionConst::CONST_FORWARD,
    // Tetapkan jumlah versi yang akan dibaca
    'max_versions' => 1
);

try {
    // Panggil getRange untuk membaca baris
    $response = $client->getRange ($request);

    // Proses tanggapan
    echo "* Biaya CU Baca: " . $response['consumed']['capacity_unit']['read'] . "\n";
    echo "* Biaya CU Tulis: " . $response['consumed']['capacity_unit']['write'] . "\n";
    echo "* Data Baris: " . "\n";
    foreach ($response['rows'] as $row) {
        echo json_encode($row) . "\n";
    }
} catch (Exception $e){
    echo "Get Range gagal.";
}

Satu kali pemindaian rentang mengembalikan hingga 5.000 baris atau 4 MB. Jika hasil melebihi batas tersebut, tanggapan menyertakan kunci primer awal untuk permintaan berikutnya. Gunakan kode berikut untuk melakukan kueri iteratif.

while (true) {
    // Panggil getRange untuk membaca baris
    $response = $client->getRange ($request);
    // Proses tanggapan
    echo "* Biaya CU Baca: " . $response['consumed']['capacity_unit']['read'] . "\n";
    echo "* Biaya CU Tulis: " . $response['consumed']['capacity_unit']['write'] . "\n";
    echo "* Data Baris: " . "\n";
    foreach ($response['rows'] as $row) {
        echo json_encode($row) . "\n";
    }
    
    if ($response['next_start_primary_key'] != null){
        $request['inclusive_start_primary_key'] = $response['next_start_primary_key'];
    } else {
        break;
    }
}

Konfigurasikan pengaturan opsional berikut sesuai kebutuhan.

  • Tetapkan arah pembacaan menjadi terbalik.

    $request = array (
        'table_name' => 'test_table',
        // Tetapkan kunci primer awal (untuk pembacaan mundur, kunci awal harus lebih besar daripada kunci akhir)
        'inclusive_start_primary_key' => array (
            array('id', null, PrimaryKeyTypeConst::CONST_INF_MAX)
        ),
        // Tetapkan kunci primer akhir (tanggapan tidak mencakup kunci ini)
        'exclusive_end_primary_key'  => array (
            array('id', 'row1')
        ),
        // Tetapkan pembacaan mundur
        'direction' => DirectionConst::CONST_BACKWARD,
        // Tetapkan jumlah versi yang akan dibaca
        'max_versions' => 1
    );
  • Tetapkan rentang versi. Hanya data dalam rentang yang ditentukan yang dikembalikan.

    // Tetapkan rentang versi ke satu hari sebelum waktu saat ini
    $request['time_range'] = array (
        'start_time' => intval(microtime(true) * 1000) - 86400 * 1000,
        'end_time' => intval(microtime(true) * 1000)
    );
  • Tentukan kolom atribut yang akan dibaca.

    $request['columns_to_get'] = array('col2');
  • Tetapkan jumlah maksimum baris yang dikembalikan per permintaan.

    $request['limit'] = 10;

Referensi

Membaca data secara batch