全部产品
Search
文档中心

Tablestore:Membaca Data

更新时间:Jun 24, 2025

Tablestore menyediakan operasi API untuk membaca satu baris data, beberapa baris data secara bersamaan, dan data dengan nilai primary key dalam rentang tertentu dari tabel. Saat membaca satu atau beberapa baris data, Anda harus menentukan semua nilai kolom primary key. Untuk membaca data dalam rentang tertentu, tentukan rentang untuk semua kolom primary key atau awalan primary key. Anda juga dapat menentukan atribut kolom, jumlah versi data, rentang waktu untuk kueri, dan kondisi filter.

Metode Kueri

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

null

Untuk membaca data dari tabel dengan kolom primary key auto-increment, pastikan Anda telah mengkueri semua nilai primary key, termasuk kolom auto-increment. Untuk informasi lebih lanjut, lihat Konfigurasi kolom primary key auto-increment. Jika nilai kolom auto-increment tidak tersedia, gunakan operasi GetRange untuk menentukan rentang pembacaan berdasarkan nilai primary key kolom pertama.

Metode Kueri

Deskripsi

Skenario

Membaca satu baris data

Gunakan operasi GetRow untuk membaca satu baris data.

Metode ini cocok jika Anda mengetahui semua nilai primary key dan jumlah baris yang ingin dibaca kecil.

Membaca beberapa baris data secara bersamaan

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

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

Metode ini cocok jika Anda mengetahui semua nilai primary key dan jumlah baris besar atau ingin membaca data dari beberapa tabel.

Membaca data dalam rentang tertentu

Gunakan operasi GetRange untuk membaca data dalam rentang nilai primary key tertentu.

Operasi GetRange mendukung pembacaan data dalam urutan maju atau mundur. Anda dapat menentukan jumlah baris yang ingin dibaca. Jika rentang besar dan batas pemindaian tercapai, pemindaian berhenti, dan informasi tentang baris berikutnya dikembalikan untuk melanjutkan pembacaan.

Metode ini cocok jika Anda mengetahui rentang nilai primary key atau awalan primary key.

null

Jika awalan primary key tidak ditentukan, gunakan INF_MIN dan INF_MAX untuk memindai semua data dalam tabel. Ini memerlukan sumber daya komputasi besar. Gunakan dengan hati-hati.

Prasyarat

Membaca satu baris data

Gunakan operasi GetRow untuk membaca satu baris data. Hasil yang mungkin diperoleh setelah memanggil operasi ini adalah:

    Operasi API

    """
    Deskripsi: Operasi ini membaca satu baris data. 
    table_name: nama tabel. 
    primary_key: primary key. Tipe: dict. 
    columns_to_get: opsional. Nama kolom yang ingin Anda kembalikan. Tipe: list. Jika Anda tidak menentukan parameter ini, semua kolom dikembalikan. 
    column_filter: opsional. Kondisi filter untuk kolom. Hanya baris yang memenuhi kondisi yang dikembalikan. 
    max_version: opsional. Jumlah maksimum versi data yang dapat dikembalikan.
    time_range: opsional. Rentang versi atau versi spesifik yang ingin Anda kembalikan. Anda harus mengonfigurasi setidaknya satu dari parameter max_version dan time_range.
    Respons: jumlah unit kapasitas (CUs) yang dikonsumsi oleh operasi, dan kolom primary key dan kolom atribut yang dikembalikan. 
    consumed: jumlah CUs yang dikonsumsi oleh operasi. Parameter consumed adalah instance dari kelas tablestore.metadata.CapacityUnit. 
    return_row: data baris yang dikembalikan, termasuk primary key dan kolom atribut. Tipe: list. Contoh: [('PK0',value0), ('PK1',value1)]. 
    next_token: kolom dari mana operasi baca kolom lebar berikutnya dimulai. Tipe: binary. 
    Contoh:
        primary_key = [('gid',1), ('uid',101)]
        columns_to_get = ['name', 'address', 'age']
        consumed, return_row, next_token = client.get_row('myTable', primary_key, columns_to_get)
    """
    def get_row(self, table_name, primary_key, columns_to_get=None,
                column_filter=None, max_version=1, time_range=None,
                start_column=None, end_column=None, token=None,
                transaction_id=None):

    Parameter

    Parameter

    Deskripsi

    table_name

    Nama tabel data.

    primary_key

    Primary key dari baris. Nilai parameter ini terdiri dari nama, tipe, dan nilai setiap kolom primary key.

    null

    Jumlah dan tipe kolom primary key yang Anda tentukan harus sama dengan jumlah dan tipe kolom primary key sebenarnya dalam tabel.

    columns_to_get

    Kolom yang ingin Anda kembalikan. Anda dapat menentukan nama kolom primary key atau kolom atribut.

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

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

    null
    • Secara default, Tablestore mengembalikan data dari semua kolom baris saat Anda mengkueri baris. Anda dapat menentukan parameter columns_to_get untuk mengembalikan kolom tertentu. Misalnya, jika Anda menentukan col0 dan col1 sebagai kolom yang ingin Anda kembalikan, hanya nilai col0 dan col1 yang dikembalikan.

    • Jika Anda mengonfigurasi parameter columns_to_get dan column_filter, Tablestore mengkueri kolom yang ditentukan oleh columns_to_get, lalu mengembalikan baris yang memenuhi kondisi filter.

    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 Filter.

    null

    Jika Anda mengonfigurasi parameter columns_to_get dan column_filter, Tablestore mengkueri kolom yang ditentukan oleh columns_to_get, lalu mengembalikan baris yang memenuhi kondisi filter.

    max_version

    Jumlah maksimum versi data yang dapat dikembalikan.

    null

    Anda harus mengonfigurasi setidaknya satu dari max_version dan time_range.

    • Jika Anda hanya menentukan parameter max_version, 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 yang ditentukan atau data dari versi yang ditentukan dikembalikan.

    • Jika Anda mengonfigurasi parameter max_version dan time_range, data dari jumlah versi yang ditentukan dalam rentang versi yang ditentukan dikembalikan dari entri data terbaru hingga entri data paling lama.

    time_range

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

    null

    Anda harus mengonfigurasi setidaknya satu dari max_version dan time_range.

    • Jika Anda hanya menentukan parameter max_version, 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 yang ditentukan atau data dari versi yang ditentukan dikembalikan.

    • Jika Anda mengonfigurasi parameter max_version dan time_range, data dari jumlah versi yang ditentukan dalam rentang versi yang ditentukan dikembalikan dari entri data terbaru hingga entri data paling lama.

    • Untuk mengkueri data yang versinya berada dalam rentang 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 mengkueri data dari versi tertentu, Anda harus menentukan parameter specific_time. Parameter specific_time menentukan timestamp tertentu.

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

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

    transaction_id

    ID transaksi lokal. Jika Anda ingin menggunakan fitur transaksi lokal untuk membaca data, Anda harus mengonfigurasi parameter ini.

    Contoh

    Contoh kode berikut menunjukkan cara membaca satu baris data dari tabel:

    # Primary key kolom pertama adalah gid dan nilainya adalah integer 1. Primary key kolom kedua adalah uid dan nilainya adalah integer 101. 
    primary_key = [('gid', 1), ('uid', 101)]
    
    # Tentukan kolom yang ingin Anda baca. Dalam contoh ini, kolom diatur ke kolom atribut name, growth, dan type. Jika Anda biarkan parameter columns_to_get kosong, semua kolom atribut dikembalikan. 
    columns_to_get = ['name', 'growth', 'type']
    
    # Tentukan filter untuk kolom. Dalam contoh ini, baris di mana nilai kolom growth bukan 0.9 dan nilai kolom name adalah Hangzhou dikembalikan. 
    cond = CompositeColumnCondition(LogicalOperator.AND)
    cond.add_sub_condition(SingleColumnCondition("growth", 0.9, ComparatorType.NOT_EQUAL))
    cond.add_sub_condition(SingleColumnCondition("name", 'Hangzhou', ComparatorType.EQUAL))
    
    try:
        # Panggil operasi get_row untuk mengkueri data. 
        # Tentukan nama tabel. Nilai terakhir 1 menentukan bahwa hanya satu versi data yang dikembalikan. 
        consumed, return_row, next_token = client.get_row('<table_name>', primary_key, columns_to_get, cond, 1)
        print('Baca berhasil, konsumsi %s CU baca.' % consumed.read)
        print('Nilai primary key: %s' % return_row.primary_key)
        print('Nilai atribut: %s' % return_row.attribute_columns)
        for att in return_row.attribute_columns:
            # Tampilkan kunci, nilai, dan versi setiap kolom. 
            print('nama:%s\tvalue:%s\ttimestamp:%d' % (att[0], att[1], att[2]))
    # Dalam banyak kasus, pengecualian klien disebabkan oleh kesalahan parameter atau pengecualian jaringan. 
    except OTSClientError as e:
        print('get row gagal, http_status:%d, error_message:%s' % (e.get_http_status(), e.get_error_message()))
    # Dalam banyak kasus, pengecualian server disebabkan oleh kesalahan parameter atau pengecualian throttling. 
    except OTSServiceError as e:
        print('get row gagal, http_status:%d, error_code:%s, error_message:%s, request_id:%s' % (e.get_http_status(), e.get_error_code(), e.get_error_message(), e.get_request_id()))
    

    Untuk kode lengkap, kunjungi GetRow@GitHub.

    Membaca beberapa baris data secara bersamaan

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

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

    Catatan Penggunaan

    • Jika beberapa baris gagal dibaca saat menggunakan BatchGetRow, Tablestore tidak mengembalikan pengecualian tetapi mencakup informasi baris gagal dalam respons BatchGetRowResponse. Periksa nilai pengembalian untuk memastikan keberhasilan pembacaan.

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

    • Anda dapat membaca maksimal 100 baris sekaligus dengan BatchGetRow.

    Operasi API

    """
    Deskripsi: Operasi ini membaca beberapa baris data secara bersamaan. 
    request = BatchGetRowRequest()
    request.add(TableInBatchGetRowItem(myTable0, primary_keys, column_to_get=None, column_filter=None))
    request.add(TableInBatchGetRowItem(myTable1, primary_keys, column_to_get=None, column_filter=None))
    request.add(TableInBatchGetRowItem(myTable2, primary_keys, column_to_get=None, column_filter=None))
    request.add(TableInBatchGetRowItem(myTable3, primary_keys, column_to_get=None, column_filter=None))
    response = client.batch_get_row(request)
    response: hasil yang dikembalikan. Parameter response adalah instance dari kelas tablestore.metadata.BatchGetRowResponse. 
    """
    def batch_get_row(self, request):                    
      

    Parameter

    Untuk detail parameter, lihat tabel Parameter pada bagian "Membaca satu baris data".

    Contoh

    Contoh kode berikut menunjukkan cara membaca tiga baris data sekaligus dari beberapa tabel:

    # Tentukan kolom yang ingin Anda kembalikan. 
    columns_to_get = ['name', 'mobile', 'address', 'age']
    # Baca tiga baris data. 
    rows_to_get = []
    for i in range(0, 3):
        primary_key = [('gid', i), ('uid', i + 1)]
        rows_to_get.append(primary_key)
    
    # Tentukan filter untuk kolom. Dalam contoh ini, kondisi filter terpenuhi jika nilai kolom name adalah John dan nilai kolom address adalah China. 
    cond = CompositeColumnCondition(LogicalOperator.AND)
    cond.add_sub_condition(SingleColumnCondition("name", "John", ComparatorType.EQUAL))
    cond.add_sub_condition(SingleColumnCondition("address", 'China', ComparatorType.EQUAL))
    
    # Buat permintaan untuk membaca beberapa baris data. 
    request = BatchGetRowRequest()
    
    # Tentukan baris yang ingin Anda baca dari tabel. Nilai terakhir 1 menentukan bahwa versi data terbaru dibaca. 
    request.add(TableInBatchGetRowItem('<table_name1>', rows_to_get, columns_to_get, cond, 1))
    
    # Tentukan baris yang ingin Anda baca dari tabel lain. 
    request.add(TableInBatchGetRowItem('<table_name2>', rows_to_get, columns_to_get, cond, 1))
    
    try:
        result = client.batch_get_row(request)
        print('Status Hasil: %s' % (result.is_all_succeed()))
    
        table_result_0 = result.get_result_by_table('<table_name1>')
        table_result_1 = result.get_result_by_table('<table_name2>')
        print('Periksa hasil tabel pertama:')
        for item in table_result_0:
            if item.is_ok:
                print('Baca berhasil, PrimaryKey: %s, Atribut: %s' % (item.row.primary_key, item.row.attribute_columns))
            else:
                print('Baca gagal, kode kesalahan: %s, pesan kesalahan: %s' % (item.error_code, item.error_message))
        print('Periksa hasil tabel kedua:')
        for item in table_result_1:
            if item.is_ok:
                print('Baca berhasil, PrimaryKey: %s, Atribut: %s' % (item.row.primary_key, item.row.attribute_columns))
            else:
                print('Baca gagal, kode kesalahan: %s, pesan kesalahan: %s' % (item.error_code, item.error_message))
    # Dalam banyak kasus, pengecualian klien disebabkan oleh kesalahan parameter atau pengecualian jaringan. 
    except OTSClientError as e:
        print('get row gagal, http_status:%d, error_message:%s' % (e.get_http_status(), e.get_error_message()))
    # Dalam banyak kasus, pengecualian server disebabkan oleh kesalahan parameter atau pengecualian throttling. 
    except OTSServiceError as e:
        print('get row gagal, http_status:%d, error_code:%s, error_message:%s, request_id:%s' % (e.get_http_status(), e.get_error_code(), e.get_error_message(), e.get_request_id()))
    

    Untuk kode lengkap, kunjungi BatchGetRow@GitHub.

    Membaca data yang nilai primary key-nya berada dalam rentang tertentu

    Gunakan operasi GetRange untuk membaca data dalam rentang nilai primary key tertentu.

    Operasi GetRange mendukung pembacaan data dalam urutan maju atau mundur. Anda dapat menentukan jumlah baris yang ingin dibaca. Jika rentang besar dan batas pemindaian tercapai, pemindaian berhenti, dan informasi tentang baris berikutnya dikembalikan untuk melanjutkan pembacaan.

    null

    Dalam tabel Tablestore, semua baris diurutkan berdasarkan primary key. Primary key terdiri dari semua kolom primary key secara berurutan, sehingga baris tidak diurutkan berdasarkan kolom primary key tertentu.

    Catatan Penggunaan

    Operasi GetRange mengikuti prinsip pencocokan paling kiri. Tablestore membandingkan nilai kolom primary key secara berurutan untuk membaca data dalam rentang tertentu. Misalnya, jika primary key terdiri dari PK1, PK2, dan PK3, Tablestore memeriksa apakah nilai PK1 berada dalam rentang. Jika ya, baris tersebut dikembalikan tanpa memeriksa kolom lain.

    • Ukuran 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 berikutnya karena throughput cadangan habis.

    Setiap pemanggilan GetRange memindai data sekali. Jika ukuran data besar, pemindaian berhenti saat jumlah baris mencapai 5.000 atau ukuran data mencapai 4 MB. Tablestore tidak mengembalikan data tersisa yang memenuhi kondisi kueri. Gunakan metode paging untuk mendapatkan data tersisa.

    Operasi API

    """
    Deskripsi: Operasi ini membaca baris yang nilai primary key-nya berada dalam rentang tertentu. 
    table_name: nama tabel data. 
    direction: urutan di mana Anda ingin mengurutkan baris dalam respons. Tipe: string. Nilai valid: FORWARD dan BACKWARD. 
    inclusive_start_primary_key: primary key tempat operasi baca dimulai. Jika baris yang ditentukan ada, baris tersebut termasuk dalam respons. 
    exclusive_end_primary_key: primary key tempat operasi baca berakhir. Terlepas dari apakah baris yang berisi primary key akhir ada, baris tersebut dikecualikan dari respons. 
    columns_to_get: opsional. Nama kolom yang ingin Anda kembalikan. Tipe: list. Jika Anda tidak menentukan parameter ini, semua kolom dikembalikan. 
    limit: opsional. Jumlah maksimum baris yang dapat dikembalikan. Jika Anda tidak menentukan parameter ini, semua baris dikembalikan. 
    column_filter: opsional. Kondisi filter untuk kolom. Hanya baris yang memenuhi kondisi yang dikembalikan. 
    max_version: opsional. Jumlah maksimum versi data yang dapat dikembalikan. Anda harus menentukan setidaknya satu dari parameter max_version dan time_range. 
    time_range: opsional. Rentang versi atau versi spesifik yang ingin Anda kembalikan. Anda harus menentukan setidaknya satu dari parameter max_version dan time_range. 
    start_column: opsional. Kolom tempat operasi baca kolom lebar dimulai. 
    end_column: opsional. Kolom tempat operasi baca kolom lebar berakhir. 
    token: opsional. Kolom awal untuk operasi baca kolom lebar saat ini. Nilai parameter ini dikembalikan oleh operasi baca kolom lebar sebelumnya, dan dienkripsi sebagai data biner. 
    
    Respons: hasil yang memenuhi kondisi. 
    consumed: jumlah CUs yang dikonsumsi oleh operasi. Parameter consumed adalah instance dari kelas tablestore.metadata.CapacityUnit. 
    next_start_primary_key: primary key tempat Anda ingin memulai operasi GetRange berikutnya. Tipe: dict. 
    row_list: baris data yang dikembalikan. Format: [Row, ...].   
    """
    def get_range(self, table_name, direction,
                 inclusive_start_primary_key,
                 exclusive_end_primary_key,
                 columns_to_get=None,
                 limit=None,
                 column_filter=None,
                 max_version=None,
                 time_range=None,
                 start_column=None,
                 end_column=None,
                 token=None):

    Parameter

    Parameter

    Deskripsi

    table_name

    Nama tabel data.

    direction

    Urutan di mana Anda ingin mengurutkan baris dalam respons.

    • Jika Anda menetapkan parameter ini ke FORWARD, nilai parameter inclusive_start_primary_key harus lebih kecil dari nilai parameter exclusive_end_primary_key, dan baris dalam respons diurutkan dalam urutan menaik berdasarkan nilai primary key.

    • Jika Anda menetapkan parameter ini ke BACKWARD, nilai parameter inclusive_start_primary_key harus lebih besar dari nilai parameter exclusive_end_primary_key, dan baris dalam respons diurutkan dalam urutan menurun berdasarkan nilai primary key.

    Misalnya, sebuah tabel memiliki dua nilai primary key A dan B, dan Nilai A lebih kecil dari Nilai B. Jika Anda menetapkan parameter direction ke FORWARD dan menentukan rentang [A, B) untuk tabel, Tablestore mengembalikan baris yang nilai primary key-nya lebih besar dari atau sama dengan Nilai A tetapi lebih kecil dari Nilai B dalam urutan menaik dari Nilai A ke Nilai B. Jika Anda menetapkan parameter direction ke BACKWARD dan menentukan rentang [B, A) untuk tabel, Tablestore mengembalikan baris yang nilai primary key-nya lebih kecil dari atau sama dengan Nilai B dan lebih besar dari Nilai A dalam urutan menurun dari Nilai B ke Nilai A.

    inclusive_start_primary_key

    Primary key awal dan akhir dari rentang yang akan dibaca. Primary key awal dan akhir harus berupa primary key yang valid atau titik virtual yang terdiri dari tipe data INF_MIN dan INF_MAX. Jumlah kolom untuk setiap titik virtual harus sama dengan jumlah kolom setiap primary key.

    INF_MIN menentukan nilai yang sangat kecil. Semua nilai lain dari tipe lain lebih besar dari INF_MIN. INF_MAX menentukan nilai yang sangat besar. Semua nilai lain dari tipe lain lebih kecil dari INF_MAX.

    • Parameter inclusive_start_primary_key menentukan primary key awal. Jika baris yang berisi primary key awal ada, baris data tersebut dikembalikan.

    • Parameter exclusive_end_primary_key menentukan primary key akhir. Terlepas dari apakah baris yang berisi primary key akhir ada, baris data tersebut tidak dikembalikan.

    Baris dalam tabel diurutkan dalam urutan menaik berdasarkan nilai primary key. Rentang yang digunakan untuk membaca data adalah interval tertutup kiri, terbuka kanan. Jika data dibaca dalam arah maju, baris yang nilai primary key-nya lebih besar dari atau sama dengan nilai primary key awal tetapi lebih kecil dari nilai primary key akhir dikembalikan.

    exclusive_end_primary_key

    limit

    Jumlah maksimum baris yang ingin Anda kembalikan. Nilai parameter ini harus lebih besar dari 0.

    Tablestore menghentikan operasi ketika jumlah maksimum baris yang dapat dikembalikan dalam 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.

    columns_to_get

    Kolom yang ingin Anda kembalikan. Anda dapat menentukan nama kolom primary key atau kolom atribut.

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

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

    null
    • Secara default, Tablestore mengembalikan data dari semua kolom baris saat Anda mengkueri baris. Anda dapat menentukan parameter columns_to_get untuk mengembalikan kolom tertentu. Misalnya, jika Anda menentukan col0 dan col1 sebagai kolom yang ingin Anda kembalikan, hanya nilai col0 dan col1 yang dikembalikan.

    • Jika baris berada dalam rentang yang ditentukan yang ingin Anda baca berdasarkan nilai primary key tetapi tidak berisi kolom yang ditentukan yang ingin Anda kembalikan, respons tidak menyertakan baris tersebut.

    • Jika Anda mengonfigurasi parameter columns_to_get dan column_filter, Tablestore mengkueri kolom yang ditentukan oleh columns_to_get, lalu mengembalikan baris yang memenuhi kondisi filter.

    max_version

    Jumlah maksimum versi data yang dapat dikembalikan.

    null

    Anda harus mengonfigurasi setidaknya satu dari max_version dan time_range.

    • Jika Anda hanya menentukan parameter max_version, 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 yang ditentukan atau data dari versi yang ditentukan dikembalikan.

    • Jika Anda mengonfigurasi parameter max_version dan time_range, data dari jumlah versi yang ditentukan dalam rentang versi yang ditentukan dikembalikan dari entri data terbaru hingga entri data paling lama.

    time_range

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

    null

    Anda harus mengonfigurasi setidaknya satu dari max_version dan time_range.

    • Jika Anda hanya menentukan parameter max_version, 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 yang ditentukan atau data dari versi yang ditentukan dikembalikan.

    • Jika Anda mengonfigurasi parameter max_version dan time_range, data dari jumlah versi yang ditentukan dalam rentang versi yang ditentukan dikembalikan dari entri data terbaru hingga entri data paling lama.

    • Untuk mengkueri data yang versinya berada dalam rentang 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 mengkueri data dari versi tertentu, Anda harus menentukan parameter specific_time. Parameter specific_time menentukan timestamp tertentu.

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

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

    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 Filter.

    null

    Jika Anda mengonfigurasi parameter columns_to_get dan column_filter, Tablestore mengkueri kolom yang ditentukan oleh columns_to_get, lalu mengembalikan baris yang memenuhi kondisi filter.

    next_start_primary_key

    Primary key 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, nilainya dapat digunakan sebagai nilai primary key awal untuk operasi GetRange berikutnya.

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

    Contoh

    Contoh berikut membaca data dengan nilai kolom primary key pertama dalam rentang tertentu, dalam urutan menaik berdasarkan kolom primary key kedua dari INF_MIN hingga INF_MAX. Sistem memeriksa parameter next_start_primary_key dalam respons. Jika tidak kosong, sistem memanggil GetRange lagi hingga parameter tersebut kosong.

    # Tentukan informasi primary key awal. 
    inclusive_start_primary_key = [('gid', 1), ('uid', INF_MIN)]
    
    # Tentukan informasi primary key akhir. 
    exclusive_end_primary_key = [('gid', 5), ('uid', INF_MAX)]
    
    # Kueri semua kolom. 
    columns_to_get = []
    
    # Tetapkan parameter limit ke 90 untuk mengembalikan maksimal 90 baris data. Jika total 100 baris memenuhi kondisi kueri, jumlah baris yang dikembalikan dalam operasi baca pertama berkisar antara 0 hingga 90. Nilai parameter next_start_primary_key tidak None. 
    limit = 90
    
    # Tentukan filter untuk kolom. Dalam contoh ini, baris di mana nilai kolom address adalah China dan nilai kolom age lebih kecil dari 50 memenuhi kondisi filter. 
    cond = CompositeColumnCondition(LogicalOperator.AND)
    # Tentukan parameter pass_if_missing untuk menentukan apakah baris memenuhi kondisi filter jika baris tidak berisi kolom tertentu. 
    # Jika Anda tidak menentukan parameter pass_if_missing atau menetapkan parameter ke True, baris memenuhi kondisi filter jika baris tidak berisi kolom tertentu. 
    # Jika Anda menetapkan parameter pass_if_missing ke False, baris tidak memenuhi kondisi filter jika baris tidak berisi kolom tertentu. 
    cond.add_sub_condition(SingleColumnCondition("address", 'China', ComparatorType.EQUAL, pass_if_missing = False))
    cond.add_sub_condition(SingleColumnCondition("age", 50, ComparatorType.LESS_THAN, pass_if_missing = False))
    
    try:
        # Panggil operasi GetRange. 
        consumed, next_start_primary_key, row_list, next_token = client.get_range(
            '<table_name>', Direction.FORWARD,
            inclusive_start_primary_key, exclusive_end_primary_key,
            columns_to_get,
            limit,
            column_filter=cond,
            max_version=1,
            time_range = (1557125059000, 1557129059000) # Tentukan bahwa nilai parameter start_time lebih besar dari atau sama dengan 1557125059000 dan nilai parameter end_time lebih kecil dari 1557129059000. 
        )
    
        all_rows = []
        all_rows.extend(row_list)
    
        # Jika parameter next_start_primary_key tidak kosong, lanjutkan membaca data. 
        while next_start_primary_key is not None:
            inclusive_start_primary_key = next_start_primary_key
            consumed, next_start_primary_key, row_list, next_token = client.get_range(
                '<table_name>', Direction.FORWARD,
                inclusive_start_primary_key, exclusive_end_primary_key,
                columns_to_get, limit,
                column_filter=cond,
                max_version=1
            )
            all_rows.extend(row_list)
    
        # Tampilkan kolom primary key dan kolom atribut. 
        for row in all_rows:
            print(row.primary_key, row.attribute_columns)
        print('Total baris: ', len(all_rows))
    # Dalam banyak kasus, pengecualian klien disebabkan oleh kesalahan parameter atau pengecualian jaringan. 
    except OTSClientError as e:
        print('get row gagal, http_status:%d, error_message:%s' % (e.get_http_status(), e.get_error_message()))
    # Dalam banyak kasus, pengecualian server disebabkan oleh kesalahan parameter atau pengecualian throttling. 
    except OTSServiceError as e:
        print('get row gagal, http_status:%d, error_code:%s, error_message:%s, request_id:%s' % (e.get_http_status(), e.get_error_code(), e.get_error_message(), e.get_request_id()))
    

    Untuk kode lengkap, kunjungi GetRange@GitHub.

    Tanya Jawab Umum

    Referensi

    • Untuk mempercepat kueri data, gunakan fitur indeks sekunder atau indeks pencarian. Untuk informasi lebih lanjut, lihat Indeks Sekunder atau Indeks Pencarian.

    • Untuk memvisualisasikan data dalam tabel, hubungkan tabel ke DataV atau Grafana. Untuk informasi lebih lanjut, lihat Visualisasi Data.

    • Untuk mengunduh data dari tabel ke file lokal, gunakan DataX atau CLI Tablestore. Untuk informasi lebih lanjut, lihat Unduh Data Tablestore ke File Lokal.

    • Untuk menghitung dan menganalisis data dalam tabel, gunakan fitur kueri SQL Tablestore. Untuk informasi lebih lanjut, lihat Kueri SQL.

      null

      Anda juga dapat menggunakan mesin komputasi seperti MaxCompute, Spark, Hive, HadoopMR, Function Compute, dan Flink untuk menghitung dan menganalisis data. Untuk informasi lebih lanjut, lihat Ikhtisar.