Gunakan Tablestore PHP SDK untuk membaca baris dalam rentang kunci primer yang ditentukan.
Prasyarat
Metode
public function getRange(array $request)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;