Membaca satu baris data berdasarkan kunci primer yang ditentukan.
Sintaks permintaan
message GetRowRequest {
required string table_name = 1;
required bytes primary_key = 2; // Data dienkripsi sebagai data biner dalam format PlainBuffer.
repeated string columns_to_get = 3; // Jika Anda tidak menentukan parameter ini, semua kolom akan dibaca.
optional TimeRange time_range = 4;
optional int32 max_versions = 5;
optional bytes filter = 7;
optional string start_column = 8;
optional string end_column = 9;
optional bytes token = 10;
optional string transaction_id = 11;
}Parameter | Tipe | Diperlukan | Deskripsi |
table_name | string | Ya | Nama tabel yang datanya ingin Anda baca. |
primary_key | bytes | Ya | Semua kolom kunci primer dari baris tersebut, termasuk nama dan nilai kolom kunci primer. Kolom kunci primer dienkripsi dalam format PlainBuffer. Untuk informasi lebih lanjut, lihat PlainBuffer. |
columns_to_get | string | Tidak | Nama kolom yang ingin Anda kembalikan. Jika Anda tidak menentukan parameter ini, semua kolom dari baris tersebut dikembalikan. Nilai parameter ini dapat berisi hingga 128 string. Jika kolom yang ditentukan tidak ada, data dari kolom yang ditentukan tidak dikembalikan. Jika Anda menentukan nama kolom duplikat, respons hanya menyertakan kolom ini sekali. |
time_range | Tidak (Anda harus menentukan setidaknya salah satu dari time_range dan max_versions.) | Rentang waktu tempat Anda ingin membaca beberapa versi data. Nilai minimum adalah 0, dan nilai maksimum adalah INT64.MAX. Unit: milidetik. Jika Anda ingin meminta data dalam rentang waktu tertentu, tentukan start_time dan end_time. Jika Anda ingin meminta data yang berisi timestamp tertentu, tentukan specific_time. Sebagai contoh, jika nilai time_range adalah [100, 200), timestamp data pada kolom yang dikembalikan harus berada dalam rentang [100, 200). | |
max_versions | int32 | Tidak (Anda harus menentukan setidaknya salah satu dari time_range dan max_versions.) | Jumlah maksimum versi data yang ingin Anda kembalikan. Jika nilai max_versions adalah 2, hingga dua versi data akan dikembalikan untuk setiap kolom. |
filter | bytes | Tidak | Ekspresi kondisi filter. Ekspresi kondisi filter diserialisasi sebagai data biner menggunakan Protobuf. Untuk informasi lebih lanjut, lihat Filter. |
start_column | string | Tidak | Kolom tempat operasi pembacaan dimulai dalam baris. Parameter ini digunakan untuk membaca kolom lebar. Kolom diurutkan berdasarkan nama mereka dalam urutan abjad. Respons berisi kolom awal yang ditentukan. Jika sebuah tabel berisi kolom a, b, dan c dan nilai start_column adalah b, operasi pembacaan dimulai dari kolom b, dan kolom b dan c dikembalikan. |
end_column | string | Tidak | Kolom tempat operasi pembacaan berakhir. Respons tidak berisi kolom akhir yang ditentukan. Kolom diurutkan berdasarkan nama mereka dalam urutan abjad. Contoh: Jika sebuah tabel berisi kolom a, b, dan c dan nilai end_column adalah b, operasi pembacaan berakhir pada kolom b, dan hanya kolom a yang dikembalikan. |
token | bytes | Tidak | Posisi tempat operasi pembacaan berikutnya dimulai dalam kolom lebar. Parameter ini tidak tersedia. |
transaction_id | string | Tidak | ID transaksi lokal. Parameter ini diperlukan jika Anda menggunakan fitur transaksi lokal untuk membaca data. |
Sintaks respons
message GetRowResponse {
required ConsumedCapacity consumed = 1;
required bytes row = 2; // Data dienkripsi sebagai data biner dalam format PlainBuffer.
optional bytes next_token = 3;
}Parameter | Tipe | Deskripsi |
consumed | Jumlah unit kapasitas (CUs) yang dikonsumsi oleh operasi. Untuk informasi lebih lanjut, lihat Konsumsi CU. | |
row | bytes | Data yang dibaca dari baris. Jika baris yang diminta tidak ada, tidak ada data yang dikembalikan. Data yang dikembalikan dienkripsi dalam format PlainBuffer. Untuk informasi lebih lanjut tentang PlainBuffer, lihat PlainBuffer. |
next_token | bytes | Token yang dikembalikan jika jumlah kolom dalam baris data melebihi 128 dalam permintaan. |
Menggunakan SDK Tablestore
Gunakan SDK Tablestore berikut untuk membaca baris data:
Tablestore SDK for Java: Membaca satu baris data
Tablestore SDK for Go: Membaca satu baris data
Tablestore SDK for Python: Membaca satu baris data
Tablestore SDK for Node.js: Membaca satu baris data
Tablestore SDK for .NET: Membaca satu baris data
Tablestore SDK for PHP: Membaca satu baris data
Konsumsi CU
Jika baris yang diminta tidak ada, satu CU baca dikonsumsi.
Jika baris yang diminta ada, jumlah CU baca yang dikonsumsi dibulatkan ke atas dari nilai yang dihitung menggunakan rumus berikut: Jumlah CU baca yang dikonsumsi = (Ukuran data di semua kolom kunci primer baris + Ukuran data di kolom atribut yang dibaca)/4 KB. Untuk informasi lebih lanjut tentang cara menghitung ukuran data, lihat Ikhtisar Penagihan.
Jika permintaan habis waktu dan hasilnya tidak terdefinisi, CU mungkin dikonsumsi atau tidak.
Jika kode status HTTP 5xx dikembalikan, yang menunjukkan bahwa kesalahan internal terjadi, operasi tidak mengonsumsi CU. Jika kesalahan lain dikembalikan, satu CU baca dikonsumsi.