全部产品
Search
文档中心

Tablestore:Membaca Data

更新时间:Jul 06, 2025

Tablestore menyediakan berbagai operasi untuk membaca data. Anda dapat menggunakan operasi GetRow untuk membaca satu baris data, BatchGetRow untuk membaca beberapa baris sekaligus, dan GetRange untuk membaca data dengan nilai kunci primer dalam rentang tertentu.

Metode Kueri

Tablestore menyediakan operasi GetRow, BatchGetRow, dan GetRange untuk membaca data. Pilih metode kueri yang sesuai berdasarkan skenario penggunaan Anda.

Penting

Jika Anda ingin membaca data dari tabel yang memiliki kolom kunci primer auto-increment, pastikan semua nilai kolom kunci primer termasuk nilai auto-increment telah ditentukan. Untuk informasi lebih lanjut, lihat Konfigurasi kolom kunci primer auto-increment. Jika nilai kolom kunci primer auto-increment tidak tersedia, gunakan operasi GetRange untuk menentukan rentang pembacaan berdasarkan nilai kunci primer dari kolom pertama.

Metode Kueri

Deskripsi

Skenario

Membaca satu baris data

Gunakan operasi GetRow untuk membaca satu baris data.

Metode ini cocok jika semua kolom kunci primer dapat ditentukan dan jumlah baris yang dibaca sedikit.

Membaca beberapa baris data sekaligus

Gunakan operasi BatchGetRow untuk membaca beberapa baris data dari satu atau lebih tabel.

Operasi BatchGetRow terdiri dari beberapa operasi GetRow. Proses pembuatannya sama dengan pemanggilan operasi GetRow.

Metode ini cocok jika semua kolom kunci primer dapat ditentukan dan jumlah baris yang dibaca banyak atau data berasal dari beberapa tabel.

Membaca data dalam rentang tertentu

Gunakan operasi GetRange untuk membaca data dengan nilai kunci primer dalam rentang tertentu.

Operasi GetRange memungkinkan pembacaan data ke arah maju atau mundur dengan batasan jumlah baris. Jika rentang besar, pemindaian akan berhenti ketika batas tercapai, dan baris yang dibaca serta informasi kunci primer baris berikutnya dikembalikan. Anda dapat melanjutkan dari posisi terakhir menggunakan informasi tersebut.

Metode ini cocok jika rentang atau awalan kolom kunci primer dapat ditentukan.

Penting

Jika awalan kolom kunci primer tidak dapat ditentukan, gunakan INF_MIN dan INF_MAX untuk menentukan rentang semua kolom kunci primer. Operasi ini memindai seluruh tabel tetapi mengonsumsi banyak sumber daya komputasi. Gunakan dengan hati-hati.

Persyaratan Awal

Membaca satu baris data

Gunakan operasi GetRow untuk membaca satu baris data. Setelah memanggil operasi ini, salah satu hasil berikut mungkin diperoleh:

    Operasi API

    /**
     * Membaca baris data. 
     * @api
     * @param [] $request Parameter permintaan. 
     * @return [] Respons.  
     * @throws OTSClientException Pengecualian yang dilempar jika terjadi kesalahan parameter atau server Tablestore mengembalikan kesalahan verifikasi. 
     * @throws OTSServerException Pengecualian yang dilempar jika server Tablestore mengembalikan kesalahan. 
     */
    public function getRow(array $request);            

    Parameter Permintaan

    Parameter

    Deskripsi

    table_name

    Nama tabel.

    primary_key

    Informasi kunci primer dari baris. Informasi kunci primer terdiri dari nama kolom kunci primer, tipe kunci primer, dan nilai kunci primer.

    Penting

    Jumlah dan tipe kolom kunci primer yang Anda tentukan harus sama dengan jumlah dan tipe kolom kunci primer aktual dalam tabel.

    max_versions

    Jumlah maksimum versi data yang dapat dibaca.

    Penting

    Anda harus menentukan setidaknya salah satu parameter max_versions dan time_range.

    • Jika Anda hanya menentukan parameter max_versions, data dari jumlah versi yang ditentukan dikembalikan dari entri data terbaru hingga entri data paling lama.

    • Jika Anda hanya menentukan parameter time_range, semua data yang versinya berada dalam rentang waktu yang ditentukan atau data dari versi yang ditentukan dikembalikan.

    • Jika Anda menentukan kedua parameter max_versions dan time_range, data dari jumlah versi yang ditentukan dalam rentang waktu yang ditentukan dikembalikan dari entri data terbaru hingga entri data paling lama.

    time_range

    Rentang waktu versi atau versi spesifik yang ingin Anda baca. Untuk informasi lebih lanjut, lihat TimeRange.

    Penting

    Anda harus menentukan setidaknya salah satu parameter max_versions dan time_range.

    • Jika Anda hanya menentukan parameter max_versions, data dari jumlah versi yang ditentukan dikembalikan dari entri data terbaru hingga entri data paling lama.

    • Jika Anda hanya menentukan parameter time_range, semua data yang versinya berada dalam rentang waktu yang ditentukan atau data dari versi yang ditentukan dikembalikan.

    • Jika Anda menentukan kedua parameter max_versions dan time_range, data dari jumlah versi yang ditentukan dalam rentang waktu yang ditentukan dikembalikan dari entri data terbaru hingga entri data paling lama.

    • Untuk menanyakan data yang versinya berada dalam rentang waktu tertentu, Anda harus menentukan parameter start_time dan end_time. Parameter start_time menentukan timestamp awal. Parameter end_time menentukan timestamp akhir. Rentang yang ditentukan adalah interval tertutup kiri, terbuka kanan dalam format [start_time, end_time).

    • Untuk menanyakan data dari versi tertentu, Anda harus menentukan parameter specific_time. Parameter specific_time menentukan timestamp spesifik.

    Hanya salah satu dari specific_time dan [start_time, end_time) yang diperlukan.

    Nilai valid parameter time_range: 0 hingga INT64.MAX. Unit: milidetik.

    columns_to_get

    Kolom yang ingin Anda baca. Anda dapat menentukan nama kolom kunci primer atau kolom atribut.

    • Jika Anda tidak menentukan kolom, semua data dalam baris dikembalikan.

    • Jika Anda menentukan kolom tetapi baris tidak mengandung kolom yang ditentukan, nilai pengembalian adalah null. Jika baris mengandung beberapa kolom yang ditentukan, data dalam beberapa kolom yang ditentukan dari baris tersebut dikembalikan.

    Catatan
    • Secara default, Tablestore mengembalikan data dari semua kolom baris saat Anda menanyakan baris tersebut. Anda dapat menggunakan parameter columns_to_get untuk mengembalikan data dari kolom tertentu. Jika col0 dan col1 ditambahkan ke parameter columns_to_get, hanya nilai kolom col0 dan col1 yang dikembalikan.

    • Jika Anda menentukan parameter columns_to_get dan column_filter, Tablestore menanyakan kolom yang ditentukan oleh parameter columns_to_get, dan kemudian mengembalikan baris yang memenuhi kondisi filter.

    start_column

    Kolom tempat operasi pembacaan kolom lebar dimulai. Respons mencakup kolom awal.

    Kolom diurutkan berdasarkan nama mereka secara alfabetis. Misalnya, sebuah tabel berisi tiga kolom: a, b, dan c. Jika nilai parameter start_column adalah b, operasi pembacaan dimulai dari Kolom b, dan Kolom b dan c dikembalikan.

    end_column

    Kolom tempat operasi pembacaan kolom lebar berakhir. Respons mengecualikan kolom akhir.

    Kolom diurutkan berdasarkan nama mereka secara alfabetis. Misalnya, sebuah tabel berisi tiga kolom: a, b, dan c. Jika nilai parameter end_column adalah b, operasi pembacaan berakhir pada Kolom b, dan Kolom a dikembalikan.

    token

    Posisi tempat operasi pembacaan kolom lebar berikutnya dimulai. Parameter ini tidak tersedia.

    column_filter

    Filter yang ingin Anda gunakan untuk menyaring hasil kueri di sisi server. Hanya baris yang memenuhi kondisi filter yang dikembalikan. Untuk informasi lebih lanjut, lihat Gunakan filter.

    Catatan

    Jika Anda menentukan parameter columns_to_get dan column_filter, Tablestore menanyakan kolom yang ditentukan oleh parameter columns_to_get, dan kemudian mengembalikan baris yang memenuhi kondisi filter.

    Sintaksis Permintaan

    $result = $client->getRow([
        'table_name' => '<string>',                     // Tentukan nama tabel. 
        'primary_key' => [                              // Tentukan informasi kunci primer. 
            ['<string>', <PrimaryKeyValue>], 
            ['<string>', <PrimaryKeyValue>],
            ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
        ], 
        'max_versions' => <integer>,
        'time_range' => [
            'start_time' => <integer>,
            'end_time' => <integer>,
            'specific_time' => <integer>
        ],
        'start_column' => '<string>',
        'end_column' => '<string>',
        'token' => '<string>',
        'columns_to_get' => [
            '<string>',
            '<string>',
            //...   
        ],
        'column_filter' =>  <ColumnCondition>
    ]);            

    Parameter Respons

    Parameter

    Deskripsi

    consumed

    Jumlah unit kapasitas (CUs) yang dikonsumsi oleh operasi.

    capacity_unit: jumlah CUs baca/tulis yang dikonsumsi. Parameter:

    • read: throughput baca.

    • write: throughput tulis.

    primary_key

    Nilai kunci primer, yang sama dengan yang ditentukan dalam permintaan.

    Catatan

    Jika baris tidak ada, daftar kosong [] dikembalikan untuk parameter primary_key.

    attribute_columns

    Kolom atribut.

    Catatan

    Jika baris tidak ada, daftar kosong [] dikembalikan untuk parameter attribute_columns.

    • Informasi setiap kolom atribut terdiri dari nama kolom atribut, nilai kolom atribut (ColumnValue), tipe nilai kolom atribut (ColumnType), dan timestamp.

      Timestamp adalah bilangan bulat 64-bit, yang menunjukkan versi data.

    • Kolom atribut dalam respons diurutkan berdasarkan nama kolom atribut secara alfabetis. Versi kolom atribut diurutkan berdasarkan timestamp secara menurun.

    • Urutan kolom atribut dalam respons mungkin berbeda dari yang ditentukan dalam permintaan.

    next_token

    Posisi tempat operasi pembacaan kolom lebar berikutnya dimulai. Parameter ini tidak tersedia.

    Format Respons

    [
        'consumed' => [
            'capacity_unit' => [
                'read' => <integer>,
                'write' => <integer>
            ]
        ],
        'primary_key' => [ 
            ['<string>', <PrimaryKeyValue>], 
            ['<string>', <PrimaryKeyValue>],
            ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
        ],  
        'attribute_columns' => [
                ['<string>', <ColumnValue>, <ColumnType>, <integer>]
                ['<string>', <ColumnValue>, <ColumnType>, <integer>]
                ['<string>', <ColumnValue>, <ColumnType>, <integer>]
        ],
        'next_token' => '<string>'
    ]            

    Kode Contoh

    Baca data versi terbaru dari kolom tertentu dari sebuah baris

    Contoh berikut menunjukkan cara membaca data versi terbaru dari kolom tertentu:

    $request = [
        'table_name' => 'MyTable',
        'primary_key' => [ // Tentukan informasi kunci primer. 
            ['PK0', 123],
            ['PK1', 'abc']
        ],
        'max_versions' => 1,                     // Atur parameter ini ke 1 untuk membaca data versi terbaru. 
        'columns_to_get' => ['Col0']             // Tentukan kolom yang ingin Anda baca. 
    ];
    $response = $otsClient->getRow ($request);            

    Baca baris data menggunakan filter

    Contoh berikut menunjukkan cara membaca baris data dengan filter:

    $request = [
        'table_name' => 'MyTable',
        'primary_key' => [ // Tentukan informasi kunci primer. 
            ['PK0', 123],
            ['PK1', 'abc']
        ],
        'max_versions' => 1,                     // Atur parameter ini ke 1 untuk membaca data versi terbaru. 
        'column_filter' => [                     // Konfigurasikan filter untuk mengembalikan baris yang nilainya pada kolom Col0 adalah 0. 
            'column_name' => 'Col0',
            'value' => 0,
            'comparator' => ComparatorTypeConst::CONST_EQUAL,
            'pass_if_missing' => false          // Jika baris tidak mengandung kolom Col0, baris tersebut tidak dikembalikan. 
        ]
    ];
    $response = $otsClient->getRow ($request);            

    Membaca beberapa baris data sekaligus

    Gunakan operasi BatchGetRow untuk membaca beberapa baris data dari satu atau lebih tabel secara bersamaan. Operasi ini terdiri dari beberapa operasi GetRow.

    Setiap operasi GetRow dilakukan secara independen. Tablestore mengembalikan respons untuk setiap operasi GetRow secara terpisah.

    Catatan Penggunaan

    • Saat memanggil operasi BatchGetRow untuk membaca beberapa baris sekaligus, ada kemungkinan beberapa baris gagal dibaca. Jika hal ini terjadi, Tablestore tidak mengembalikan pengecualian, melainkan mengembalikan BatchGetRowResponse yang mencakup informasi tentang baris yang gagal. Oleh karena itu, saat menggunakan operasi BatchGetRow, Anda harus memeriksa nilai pengembalian untuk memastikan keberhasilan pembacaan data dari setiap baris.

    • Operasi BatchGetRow menggunakan parameter yang sama untuk semua baris. Misalnya, jika parameter ColumnsToGet diatur ke [colA], hanya nilai kolom colA yang dibaca dari semua baris.

    • Anda dapat membaca maksimal 100 baris sekaligus menggunakan BatchGetRow.

    Operasi API

    /**
     * Baca baris data yang ditentukan. 
     * Ketika Anda memanggil operasi BatchGetRow untuk membaca beberapa baris sekaligus, beberapa baris mungkin gagal dibaca. Jika ini terjadi, sistem tidak mengembalikan pengecualian tetapi mengembalikan informasi tentang baris yang gagal dalam $response. Untuk informasi lebih lanjut, lihat respons sampel untuk operasi BatchGetRow. 
     * @api
     * @param [] $request Parameter permintaan. 
     * @return [] Respons. 
     * @throws OTSClientException Pengecualian yang dikembalikan jika terjadi kesalahan parameter atau server Tablestore mengembalikan kesalahan verifikasi. 
     * @throws OTSServerException Pengecualian yang dikembalikan jika server Tablestore mengembalikan kesalahan. 
     */
    public function batchGetRow(array $request);  
                

    Parameter Permintaan

    Dibandingkan dengan GetRow, BatchGetRow memiliki perubahan berikut:

    • Hierarki dibuat untuk tabel, memungkinkan pembacaan data dari beberapa tabel sekaligus.

      Gunakan parameter tables untuk menentukan informasi tabel dan baris yang ingin dibaca.

    • Parameter primary_key diubah menjadi primary_keys, memungkinkan pembacaan data dari beberapa baris sekaligus.

    Sintaksis Permintaan

    $result = $client->batchGetRow([
        'tables' => [                                            // Tentukan hierarki tabel. 
            [
                'table_name' => '<string>',                      // Tentukan nama tabel. 
                'primary_keys' => [                              // Tentukan informasi kunci primer. 
                    [
                        ['<string>', <PrimaryKeyValue>], 
                        ['<string>', <PrimaryKeyValue>],
                        ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
                    ], 
                    // Tentukan parameter lainnya. 
                ]
                'max_versions' => <integer>,
                'time_range' => [
                    'start_time' => <integer>,
                    'end_time' => <integer>,
                    'specific_time' => <integer>
                ],
                'start_column' => '<string>',
                'end_column' => '<string>',
                'token' => '<string>',
                'columns_to_get' => [
                    '<string>',
                    '<string>',
                    //...   
                ],
                'column_filter' =>  <ColumnCondition>
            ],
            // Tentukan tabel lainnya. 
        ]
    ]);            

    Parameter Respons

    Setiap tabel dalam respons sesuai dengan tabel dalam permintaan. Tabel berikut menjelaskan parameter dalam respons.

    Parameter

    Deskripsi

    table_name

    Nama tabel.

    is_ok

    Menunjukkan apakah operasi pada baris berhasil.

    • Nilai true menunjukkan bahwa baris telah dibaca. Dalam hal ini, parameter error tidak valid.

    • Nilai false menunjukkan bahwa baris gagal dibaca. Dalam hal ini, parameter consumed, primary_key, dan attribute_columns tidak valid.

    error

    Informasi kesalahan dalam respons jika operasi pada baris gagal. Parameter:

    • code: kode kesalahan yang dikembalikan dalam respons jika operasi pada baris gagal.

    • message: pesan kesalahan yang dikembalikan dalam respons jika operasi pada baris gagal.

    consumed

    Jumlah CU yang dikonsumsi oleh operasi.

    capacity_unit: jumlah CU baca/tulis yang dikonsumsi. Parameter:

    • read: throughput baca.

    • write: throughput tulis.

    primary_key

    Nilai kunci primer, yang sama dengan yang ditentukan dalam permintaan.

    Catatan

    Jika baris tidak ada, daftar kosong [] dikembalikan untuk parameter primary_key.

    attribute_columns

    Kolom atribut.

    Catatan

    Jika baris tidak ada, daftar kosong [] dikembalikan untuk parameter attribute_columns.

    • Informasi setiap kolom atribut terdiri dari nama kolom atribut, nilai kolom atribut (ColumnValue), tipe nilai kolom atribut (ColumnType), dan timestamp.

      Timestamp adalah bilangan bulat 64-bit, yang menunjukkan versi data.

    • Kolom atribut dalam respons diurutkan berdasarkan nama kolom atribut secara alfabetis. Versi kolom atribut diurutkan berdasarkan timestamp secara menurun.

    • Urutan kolom atribut dalam respons mungkin berbeda dari yang ditentukan dalam permintaan.

    next_token

    Posisi tempat operasi pembacaan kolom lebar berikutnya dimulai. Parameter ini tidak tersedia.

    Format Respons

    [
        'tables' => [
            [
                'table_name' => '<string>',
                'rows' => [
                    [
                        'is_ok' => true || false,
                        'error' => [
                            'code' => '<string>',
                            'message' => '<string>',
                        ]
                        'consumed' => [
                            'capacity_unit' => [
                                'read' => <integer>,
                                'write' => <integer>
                            ]
                        ],
                        'primary_key' => [ 
                            ['<string>', <PrimaryKeyValue>], 
                            ['<string>', <PrimaryKeyValue>],
                            ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
                        ],  
                        'attribute_columns' => [
                                ['<string>', <ColumnValue>, <ColumnType>, <integer>]
                                ['<string>', <ColumnValue>, <ColumnType>, <integer>]
                                ['<string>', <ColumnValue>, <ColumnType>, <integer>]
                        ],
                        'next_token' => '<string>'
                    ],
                    // Baris lainnya. 
                ]
            ],
            // Tabel lainnya. 
        ]
    ]            

    Kode Contoh

    Contoh berikut menunjukkan cara membaca 30 baris data dari tiga tabel sekaligus (10 baris per tabel):

    // Baca data dari tiga tabel. Sepuluh baris dibaca dari setiap tabel. 
    $tables = array();
    for($i = 0; $i < 3; $i++) {
        $primary_keys = array();
        for($j = 0; $j < 10; $j++) {
            $primary_keys[] = [
                ['pk0', $i],
                ['pk1', $j]
            ];
        }
        $tables[] = [
            'table_name' => 'SampleTable' . $i,
            'max_versions' => 1,
            'primary_keys' => $primary_keys
        ];
    }
    $request = [
        'tables' => $tables
    ];
    $response = $otsClient->batchGetRow ($request);
    
    // Proses data yang dikembalikan dari setiap tabel. 
    foreach ($response['tables'] as $tableData) {
      print "Memproses tabel {$tableData['table_name']} ...\n";
    
      // Proses setiap baris data dalam tabel. 
      foreach ($tableData['rows'] as $rowData) {
    
        if ($rowData['is_ok']) {
    
          // Proses data yang dibaca. 
            $row = json_encode($rowData['primary_key']);
            print "Memproses baris: {$row}\n";
    
        } else {
    
          // Tangani kesalahan. 
          print "Kesalahan: {$rowData['error']['code']} {$rowData['error']['message']}\n";
        }
      }
    }            

    Tabel berikut menjelaskan contoh kode rinci:

    Contoh

    Deskripsi

    BatchGetRow1.php

    Menunjukkan cara memanggil operasi BatchGetRow untuk membaca beberapa baris dari sebuah tabel.

    BatchGetRow2.php

    Menunjukkan cara memanggil operasi BatchGetRow untuk membaca beberapa baris dari beberapa tabel.

    BatchGetRow3.php

    Menunjukkan cara memanggil operasi BatchGetRow untuk membaca kolom tertentu dari beberapa baris dari sebuah tabel.

    BatchGetRow4.php

    Menunjukkan cara memanggil operasi BatchGetRow untuk memproses hasil yang dikembalikan.

    BatchGetRowWithColumnFilter.php

    Menunjukkan cara memanggil operasi BatchGetRow bersama dengan filter.

    Membaca data yang nilai kunci primernya berada dalam rentang tertentu

    Gunakan operasi GetRange untuk membaca data dengan nilai kunci primer dalam rentang tertentu.

    Operasi GetRange memungkinkan pembacaan data ke arah maju atau mundur dengan batasan jumlah baris. Jika rentang besar, pemindaian berhenti ketika batas tercapai, dan baris yang dibaca serta informasi kunci primer baris berikutnya dikembalikan. Anda dapat melanjutkan dari posisi terakhir menggunakan informasi tersebut.

    Catatan

    Di Tablestore, semua baris diurutkan berdasarkan kunci primer. Kunci primer terdiri dari semua kolom kunci primer secara berurutan.

    Catatan Penggunaan

    Operasi GetRange mengikuti prinsip pencocokan paling kiri. Tablestore membandingkan nilai kolom kunci primer secara berurutan untuk membaca data dalam rentang tertentu. Misalnya, jika kunci primer terdiri dari PK1, PK2, dan PK3, Tablestore pertama-tama memeriksa apakah nilai PK1 berada dalam rentang yang ditentukan. Jika ya, baris tersebut dikembalikan tanpa memeriksa kolom lainnya.

    • Jumlah data yang dipindai mencapai 4 MB.

    • Jumlah baris yang dipindai mencapai 5.000.

    • Jumlah baris yang dikembalikan mencapai batas atas.

    • Throughput baca tidak cukup untuk membaca baris data berikutnya karena semua throughput baca yang dicadangkan telah habis.

    Operasi API

    /**
     * Baca data yang nilai kunci primernya berada dalam rentang yang ditentukan oleh informasi kunci primer awal dan informasi kunci primer akhir. 
     * Server mungkin memotong rentang ini. Jika ini terjadi, Anda harus menentukan apakah akan memanggil operasi GetRange lagi berdasarkan nilai parameter next_start_primary_key yang dikembalikan dalam respons. 
     * Anda dapat menentukan jumlah maksimum baris yang ingin dibaca. 
     * Saat Anda menentukan informasi kunci primer awal dan informasi kunci primer akhir, Anda dapat menggunakan INF_MIN untuk menentukan nilai minimum dan menggunakan INF_MAX untuk menentukan nilai maksimum. Untuk informasi lebih lanjut, lihat kode contoh berikut. 
     * @api
     * @param [] $request Parameter permintaan. 
     * @return [] Respons. 
     * @throws OTSClientException Pengecualian yang dikembalikan jika terjadi kesalahan parameter atau server Tablestore mengembalikan kesalahan verifikasi. 
     * @throws OTSServerException Pengecualian yang dikembalikan jika server Tablestore mengembalikan kesalahan. 
     */
    public function getRange(array $request);            

    Parameter

    Dibandingkan dengan GetRow, GetRange memiliki perubahan berikut:

    • Parameter primary_key diubah menjadi inclusive_start_primary_key dan exclusive_end_primary_key, mendefinisikan rentang tertutup kiri dan terbuka kanan.

    • Parameter direction ditambahkan untuk menentukan arah pembacaan.

    • Parameter limit ditambahkan untuk membatasi jumlah baris yang dikembalikan.

    Parameter

    Deskripsi

    table_name

    Nama tabel.

    inclusive_start_primary_key

    Informasi kunci primer awal dan informasi kunci primer akhir dari rentang yang ingin Anda baca. Kolom kunci primer awal dan kolom kunci primer akhir harus berupa kolom kunci primer yang valid atau kolom virtual yang datanya bertipe INF_MIN dan INF_MAX. Jumlah kolom dalam rentang yang ditentukan oleh kolom virtual harus sama dengan jumlah kolom kunci primer dari tabel yang ditentukan.

    INF_MIN menunjukkan nilai yang sangat kecil. Semua nilai tipe lainnya lebih besar dari nilai tipe INF_MIN. INF_MAX menunjukkan nilai yang sangat besar. Semua nilai tipe lainnya lebih kecil dari nilai tipe INF_MAX.

    • Parameter inclusive_start_primary_key menentukan kolom kunci primer awal dan nilainya. Jika sebuah baris mengandung kolom kunci primer awal, data baris tersebut dikembalikan.

    • Parameter exclusive_end_primary_key menentukan kolom kunci primer akhir dan nilainya. Jika sebuah baris mengandung kolom kunci primer akhir, data baris tersebut tidak dikembalikan.

    Baris dalam tabel diurutkan secara menaik berdasarkan nilai kunci primer. Rentang yang digunakan untuk membaca data adalah interval tertutup kiri, terbuka kanan. Jika data dibaca ke arah maju, baris yang nilai kunci primernya lebih besar dari atau sama dengan nilai kunci primer awal tetapi lebih kecil dari nilai kunci primer akhir dikembalikan.

    exclusive_end_primary_key

    direction

    Urutan Anda ingin menyortir baris dalam respons.

    • Jika Anda mengatur parameter ini ke DirectionConst::CONST_FORWARD, nilai kunci primer awal harus lebih kecil dari nilai kunci primer akhir, dan baris dalam respons disortir secara menaik berdasarkan nilai kunci primer.

    • Jika Anda mengatur parameter ini ke DirectionConst::CONST_BACKWARD, nilai kunci primer awal harus lebih besar dari nilai kunci primer akhir, dan baris dalam respons disortir secara menurun berdasarkan nilai kunci primer.

    Misalnya, sebuah tabel memiliki dua nilai kunci primer A dan B, dan Nilai A lebih kecil dari Nilai B. Jika Anda mengatur parameter direction ke DirectionConst::CONST_FORWARD dan menentukan rentang [A, B) untuk tabel, Tablestore mengembalikan baris yang nilai kunci primernya lebih besar dari atau sama dengan Nilai A tetapi lebih kecil dari Nilai B secara menaik dari Nilai A ke Nilai B. Jika Anda mengatur parameter direction ke DirectionConst::CONST_BACKWARD dan menentukan rentang [B, A) untuk tabel, Tablestore mengembalikan baris yang nilai kunci primernya lebih kecil dari atau sama dengan Nilai B dan lebih besar dari Nilai A secara menurun dari Nilai B ke Nilai A.

    limit

    Jumlah maksimum baris yang dapat dikembalikan. Nilai parameter ini harus lebih besar dari 0.

    Tablestore menghentikan operasi setelah jumlah maksimum baris yang dapat dikembalikan ke arah maju atau mundur tercapai, meskipun beberapa baris dalam rentang yang ditentukan belum dikembalikan. Anda dapat menggunakan nilai parameter next_start_primary_key yang dikembalikan dalam respons untuk membaca data dalam permintaan berikutnya.

    max_versions

    Jumlah maksimum versi data yang dapat dibaca.

    Penting

    Anda harus menentukan setidaknya salah satu parameter max_versions dan time_range.

    • Jika Anda hanya menentukan parameter max_versions, data dari jumlah versi yang ditentukan dikembalikan dari entri data terbaru hingga entri data paling lama.

    • Jika Anda hanya menentukan parameter time_range, semua data yang versinya berada dalam rentang waktu yang ditentukan atau data dari versi yang ditentukan dikembalikan.

    • Jika Anda menentukan kedua parameter max_versions dan time_range, data dari jumlah versi yang ditentukan dalam rentang waktu yang ditentukan dikembalikan dari entri data terbaru hingga entri data paling lama.

    time_range

    Rentang waktu versi atau versi spesifik yang ingin Anda baca. Untuk informasi lebih lanjut, lihat TimeRange.

    Penting

    Anda harus menentukan setidaknya salah satu parameter max_versions dan time_range.

    • Jika Anda hanya menentukan parameter max_versions, data dari jumlah versi yang ditentukan dikembalikan dari entri data terbaru hingga entri data paling lama.

    • Jika Anda hanya menentukan parameter time_range, semua data yang versinya berada dalam rentang waktu yang ditentukan atau data dari versi yang ditentukan dikembalikan.

    • Jika Anda menentukan kedua parameter max_versions dan time_range, data dari jumlah versi yang ditentukan dalam rentang waktu yang ditentukan dikembalikan dari entri data terbaru hingga entri data paling lama.

    • Untuk menanyakan data yang versinya berada dalam rentang waktu tertentu, Anda harus menentukan parameter start_time dan end_time. Parameter start_time menentukan timestamp awal. Parameter end_time menentukan timestamp akhir. Rentang yang ditentukan adalah interval tertutup kiri, terbuka kanan dalam format [start_time, end_time).

    • Untuk menanyakan data dari versi tertentu, Anda harus menentukan parameter specific_time. Parameter specific_time menentukan timestamp spesifik.

    Hanya salah satu dari specific_time dan [start_time, end_time) yang diperlukan.

    Nilai valid parameter time_range: 0 hingga INT64.MAX. Unit: milidetik.

    columns_to_get

    Kolom yang ingin Anda baca. Anda dapat menentukan nama kolom kunci primer atau kolom atribut.

    • Jika Anda tidak menentukan kolom, semua data dalam baris dikembalikan.

    • Jika Anda menentukan kolom tetapi baris tidak mengandung kolom yang ditentukan, nilai pengembalian adalah null. Jika baris mengandung beberapa kolom yang ditentukan, data dalam beberapa kolom yang ditentukan dari baris tersebut dikembalikan.

    Catatan
    • Secara default, Tablestore mengembalikan data dari semua kolom baris saat Anda menanyakan baris tersebut. Anda dapat menggunakan parameter columns_to_get untuk mengembalikan data dari kolom tertentu. Jika col0 dan col1 ditambahkan ke parameter columns_to_get, hanya nilai kolom col0 dan col1 yang dikembalikan.

    • Jika sebuah baris berada dalam rentang yang ditentukan yang ingin Anda baca berdasarkan nilai kunci primer tetapi tidak mengandung kolom yang ditentukan yang ingin Anda kembalikan, respons mengecualikan baris tersebut.

    • Jika Anda menentukan parameter columns_to_get dan column_filter, Tablestore menanyakan kolom yang ditentukan oleh parameter columns_to_get, dan kemudian mengembalikan baris yang memenuhi kondisi filter.

    start_column

    Kolom tempat operasi pembacaan kolom lebar dimulai. Respons mencakup kolom awal.

    Kolom diurutkan berdasarkan nama mereka secara alfabetis. Misalnya, sebuah tabel berisi tiga kolom: a, b, dan c. Jika nilai parameter start_column adalah b, operasi pembacaan dimulai dari Kolom b, dan Kolom b dan c dikembalikan.

    end_column

    Kolom tempat operasi pembacaan kolom lebar berakhir. Respons mengecualikan kolom akhir.

    Kolom diurutkan berdasarkan nama mereka secara alfabetis. Misalnya, sebuah tabel berisi tiga kolom: a, b, dan c. Jika nilai parameter end_column adalah b, operasi pembacaan berakhir pada Kolom b, dan Kolom a dikembalikan.

    token

    Posisi tempat operasi pembacaan kolom lebar berikutnya dimulai. Parameter ini tidak tersedia.

    column_filter

    Filter yang ingin Anda gunakan untuk menyaring hasil kueri di sisi server. Hanya baris yang memenuhi kondisi filter yang dikembalikan. Untuk informasi lebih lanjut, lihat Konfigurasikan filter.

    Catatan

    Jika Anda menentukan parameter columns_to_get dan column_filter, Tablestore menanyakan kolom yang ditentukan oleh parameter columns_to_get, dan kemudian mengembalikan baris yang memenuhi kondisi filter.

    Sintaksis Permintaan

    $result = $client->getRange([
        'table_name' => '<string>',                                     // Tentukan nama tabel. 
        'inclusive_start_primary_key' => [                              // Tentukan informasi kunci primer awal. 
            ['<string>', <PrimaryKeyValue>], 
            ['<string>', <PrimaryKeyValue>],
            ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
        ], 
        'exclusive_end_primary_key' => [                                // Tentukan informasi kunci primer akhir. 
            ['<string>', <PrimaryKeyValue>], 
            ['<string>', <PrimaryKeyValue>],
            ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
        ], 
        'direction' => <Direction>,                                     // Tentukan urutan Anda ingin menyortir baris dalam respons. 
        'limit' => <Direction>,
        'max_versions' => <integer>,
        'time_range' => [
            'start_time' => <integer>,
            'end_time' => <integer>,
            'specific_time' => <integer>
        ],
        'start_column' => '<string>',
        'end_column' => '<string>',
        'token' => '<string>',
        'columns_to_get' => [
            '<string>',
            '<string>',
            //...   
        ],
        'column_filter' =>  <ColumnCondition>
    ]);      

    Parameter Respons

    Parameter

    Deskripsi

    consumed

    Jumlah CU yang dikonsumsi oleh operasi.

    capacity_unit: jumlah CU baca/tulis yang dikonsumsi. Parameter:

    • read: throughput baca.

    • write: throughput tulis.

    primary_key

    Nilai kunci primer, yang sama dengan yang ditentukan dalam permintaan.

    attribute_columns

    Kolom atribut.

    • Informasi setiap kolom atribut terdiri dari nama kolom atribut, nilai kolom atribut (ColumnValue), tipe nilai kolom atribut (ColumnType), dan timestamp.

      Timestamp adalah bilangan bulat 64-bit, yang menunjukkan versi data. Unit: milidetik.

    • Kolom atribut dalam respons diurutkan berdasarkan nama kolom atribut secara alfabetis. Versi kolom atribut diurutkan berdasarkan timestamp secara menurun.

    • Urutan kolom atribut dalam respons mungkin berbeda dari yang ditentukan dalam permintaan.

    next_start_primary_key

    Informasi kunci primer awal untuk permintaan baca berikutnya. Nilai parameter next_start_primary_key dapat digunakan untuk menentukan apakah semua data telah dibaca.

    • Jika nilai parameter next_start_primary_key tidak kosong dalam respons, nilai tersebut dapat digunakan sebagai informasi kunci primer awal untuk operasi GetRange berikutnya.

    • Jika nilai parameter next_start_primary_key kosong dalam respons, semua data dalam rentang telah dikembalikan.

    Format Respons

    [
        'consumed' => [
            'capacity_unit' => [
                'read' => <integer>,
                'write' => <integer>
            ]
        ],
        'next_start_primary_key' => [ 
            ['<string>', <PrimaryKeyValue>], 
            ['<string>', <PrimaryKeyValue>],
            ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
        ], 
        'rows' => [
            [
                'primary_key' => [ 
                    ['<string>', <PrimaryKeyValue>], 
                    ['<string>', <PrimaryKeyValue>],
                    ['<string>', <PrimaryKeyValue>, <PrimaryKeyType>]
                ],  
                'attribute_columns' => [
                        ['<string>', <ColumnValue>, <ColumnType>, <integer>]
                        ['<string>', <ColumnValue>, <ColumnType>, <integer>]
                        ['<string>', <ColumnValue>, <ColumnType>, <integer>]
                ]
            ],
            // Baris lainnya. 
        ]
    ]
                

    Kode Contoh

    Contoh berikut menunjukkan cara membaca data dalam rentang tertentu:

    // Kueri baris yang nilainya pada kolom PK0 berada dalam rentang [1, 4). 
    // Anda harus menyediakan kolom kunci primer lengkap untuk menentukan rentang. Jika rentang kueri tidak melibatkan nilai kolom, atur nilai kolom ke nilai sangat besar (INF_MAX) atau nilai sangat kecil (INF_MIN). 
    $startPK = [
        ['PK0', 1], 
        ['PK1', null, PrimaryKeyTypeConst::CONST_INF_MIN]  // INF_MIN menunjukkan nilai yang sangat kecil. 
    ];
    // Anda harus menyediakan kolom kunci primer lengkap untuk menentukan rentang. Jika rentang kueri tidak melibatkan nilai kolom, atur nilai kolom ke nilai sangat besar (INF_MAX) atau nilai sangat kecil (INF_MIN). 
    $endPK = [
        ['PK0', 4], 
        ['PK1', null, PrimaryKeyTypeConst::CONST_INF_MAX]  // INF_MAX menunjukkan nilai yang sangat besar. 
    ];
    $request = [
        'table_name' => 'SampleTable',
        'max_versions' => 1,                          // Atur parameter ini ke 1 untuk membaca versi terbaru. 
        'direction' => DirectionConst::CONST_FORWARD, // Kueri data ke arah maju. 
        'inclusive_start_primary_key' => $startPK,    // Tentukan informasi kunci primer awal. 
        'exclusive_end_primary_key' => $endPK,        // Tentukan informasi kunci primer akhir. 
        'limit' => 10                                 // Atur parameter ini ke 10 untuk menentukan bahwa maksimal 10 baris data dapat dikembalikan. 
    ];
    $response = $otsClient->getRange ($request);
    print "CU Baca Terpakai: {$response['consumed']['capacity_unit']['read']}\n";
    
    foreach ($response['rows'] as $rowData) {
      // Proses setiap baris data. 
    }           

    Tabel berikut menjelaskan contoh kode rinci:

    Contoh

    Deskripsi

    GetRange1.php

    Menunjukkan cara memanggil operasi GetRange.

    GetRange2.php

    Menunjukkan cara memanggil operasi GetRange untuk mendapatkan kolom tertentu.

    GetRange3.php

    Menunjukkan cara memanggil operasi GetRange untuk mendapatkan jumlah baris tertentu.

    GetRangeWithColumnFilter.php

    Menunjukkan cara Anda memanggil operasi GetRange bersama dengan filter.