Tablestore memungkinkan Anda membaca satu baris data atau data dengan nilai kunci primer dalam rentang tertentu dari tabel indeks. Jika tabel indeks berisi kolom atribut yang ingin dikembalikan, Anda dapat membaca langsung dari tabel indeks. Jika tidak, Anda harus mengambil data dari tabel utama tempat indeks dibuat.
Prasyarat
Instance OTSClient telah diinisialisasi. Untuk detail lebih lanjut, lihat Inisialisasi klien Tablestore.
Indeks sekunder telah dibuat. Untuk informasi lebih lanjut, lihat Buat indeks sekunder.
Catatan penggunaan
Tabel indeks hanya digunakan untuk membaca data.
Kolom kunci primer pertama dari indeks sekunder lokal harus sama dengan kolom kunci primer pertama dari tabel utama.
Jika kolom atribut yang ingin dikembalikan tidak ada dalam tabel indeks, Anda perlu mengambil data dari tabel utama tempat indeks dibuat untuk mendapatkan atribut yang diperlukan.
Baca satu baris data
Anda dapat memanggil operasi GetRow untuk membaca satu baris data. Untuk informasi lebih lanjut, lihat Baca satu baris data.
Parameter
Saat memanggil operasi GetRow untuk membaca data dari tabel indeks, perhatikan hal-hal berikut:
Atur parameter table_name ke nama tabel indeks.
Tablestore secara otomatis menambahkan kolom kunci primer tabel utama yang tidak ditentukan sebagai kolom indeks ke tabel indeks sebagai kolom kunci primer tambahan. Oleh karena itu, saat menentukan kolom kunci primer suatu baris dalam tabel indeks, Anda harus menyertakan kolom indeks dan kolom kunci primer tabel utama.
Contoh
Kode sampel berikut menunjukkan cara membaca baris data dalam tabel indeks berdasarkan kunci primernya:
$request = [
'table_name' => '<INDEX_NAME>', // Tentukan nama tabel indeks.
'primary_key' => [ // Tentukan kunci primer baris berdasarkan mana Anda ingin membaca data. Jika Anda ingin membaca data dari indeks sekunder lokal, kolom kunci primer pertama dari tabel indeks harus sama dengan kolom kunci primer pertama dari tabel data.
['PK0', 123],
['Col1', "abc"],
['PK1', 'abc']
],
'max_versions' => 1, // Tentukan bahwa versi terbaru data dibaca.
'columns_to_get' => ['Col1'] // Tentukan kolom atribut yang ingin Anda kembalikan.
];
$response = $otsClient->getRow($request); Baca data yang nilai kunci primernya berada dalam rentang tertentu
Anda dapat memanggil operasi GetRange untuk membaca data dengan nilai kunci primer dalam rentang tertentu. Untuk informasi lebih lanjut, lihat Baca data yang nilai kunci primernya berada dalam rentang tertentu.
Parameter
Saat memanggil operasi GetRange untuk membaca data dari tabel indeks, perhatikan hal-hal berikut:
Atur parameter table_name ke nama tabel indeks.
Tablestore secara otomatis menambahkan kolom kunci primer tabel utama yang tidak ditentukan sebagai kolom indeks ke tabel indeks sebagai kolom kunci primer tambahan. Oleh karena itu, saat menentukan kunci primer awal dan akhir dari rentang yang ingin diambil, Anda harus menyertakan kolom indeks dan kolom kunci primer tabel utama.
Contoh
Kode sampel berikut menunjukkan cara membaca data dengan nilai kunci primer dalam rentang tertentu dari tabel indeks:
// Tanyakan baris-baris di mana nilai kolom PK0 berada dalam rentang [1, 4).
// Anda harus menentukan nilai untuk semua kolom kunci primer saat Anda menentukan rentang. Jika rentang tidak melibatkan nilai kolom, atur nilai kolom ke nilai sangat besar (INF_MAX) atau nilai sangat kecil (INF_MIN).
// Jika Anda ingin membaca data dari indeks sekunder lokal, kolom kunci primer pertama dari tabel indeks harus sama dengan kolom kunci primer pertama dari tabel data.
$startPK = [
['Col1', "abc"],
['PK0', null, PrimaryKeyTypeConst::CONST_INF_MIN] // INF_MIN menunjukkan nilai minimum.
['PK1', null, PrimaryKeyTypeConst::CONST_INF_MIN] // INF_MIN menunjukkan nilai minimum.
];
// Anda harus menentukan nilai untuk semua kolom kunci primer saat Anda menentukan rentang. Jika rentang tidak melibatkan nilai kolom, atur nilai kolom ke nilai sangat besar (INF_MAX) atau nilai sangat kecil (INF_MIN).
$endPK = [
['Col1', "abc"],
['PK0', null, PrimaryKeyTypeConst::CONST_INF_MAX] // INF_MAX menunjukkan nilai maksimum.
['PK1', null, PrimaryKeyTypeConst::CONST_INF_MAX] // INF_MAX menunjukkan nilai maksimum.
];
$request = [
'table_name' => '<INDEX_NAME>', // Tentukan nama tabel indeks.
'max_versions' => 1, // Tentukan bahwa versi terbaru data dibaca.
'direction' => DirectionConst::CONST_FORWARD, // Tanyakan data dalam arah maju.
'inclusive_start_primary_key' => $startPK, // Tentukan kunci primer awal.
'exclusive_end_primary_key' => $endPK, // Tentukan kunci primer akhir.
'limit' => 10 // Tentukan bahwa hingga 10 baris data dapat dikembalikan.
];
$response = $otsClient->getRange ($request);
print "Read CU Consumed: {$response['consumed']['capacity_unit']['read']}\n";
foreach ($response['rows'] as $rowData) {
// Proses setiap baris data.
} FAQ
Referensi
Jika bisnis Anda memerlukan kueri multi-dimensi dan analisis data, Anda dapat membuat indeks pencarian dan menentukan atribut yang relevan sebagai bidang indeks pencarian. Kemudian, Anda dapat menggunakan indeks pencarian untuk menjalankan kueri berdasarkan kolom non-kunci primer, kueri Boolean, dan kueri fuzzy. Anda juga dapat menggunakannya untuk mendapatkan nilai maksimum dan minimum, mengumpulkan statistik jumlah baris, serta mengelompokkan hasil kueri. Untuk informasi lebih lanjut, lihat Indeks pencarian.
Jika Anda ingin menjalankan pernyataan SQL untuk menanyakan dan menganalisis data, Anda dapat menggunakan fitur kueri SQL. Untuk informasi lebih lanjut, lihat Kueri SQL.