Jika data dengan kunci primer di luar rentang yang ditentukan dikembalikan saat operasi GetRange dipanggil, Anda dapat membuat indeks sekunder untuk membatasi pembacaan hanya pada data dengan kunci primer dalam rentang tersebut.
Deskripsi masalah
Saat operasi GetRange digunakan untuk menanyakan rentang di konsol Tablestore atau menggunakan SDK Tablestore, menanyakan tabel eksternal Tablestore, atau menyinkronkan data dari Tablestore menggunakan Tablestore Reader, data dengan kunci primer di luar rentang yang ditentukan dapat muncul.
Penyebab yang mungkin
Kondisi kueri tidak sesuai dengan prinsip pencocokan paling kiri. Sebagai contoh, jika tabel memiliki dua kolom kunci primer dan nilai beginPrimaryKey = INF_MIN serta endPrimaryKey = INF_MAX diterapkan pada kolom kunci primer pertama, sementara beginPrimaryKey = 10 dan endPrimaryKey = 10 diterapkan pada kolom kunci primer kedua, semua data dalam tabel akan dikembalikan, bukan hanya baris dengan nilai 10 pada kolom kunci primer kedua.
Prinsip pencocokan paling kiri menunjukkan bahwa rentang yang ditentukan oleh kunci primer awal dan akhir pada kolom kanan hanya berlaku jika kunci primer awal dan akhir sama di setiap kolom kunci primer paling kiri. Jika kunci primer awal dan akhir di kolom paling kiri berbeda, rentang pada kolom kanan tidak berlaku. Kunci primer paling kiri dan kanan mengacu pada urutan definisi dalam struktur tabel.
Solusi
Buat indeks sekunder dengan urutan kolom kunci primer yang sesuai dan gunakan metode kueri yang tepat sesuai kebutuhan.
Untuk menanyakan data dalam rentang tertentu di konsol Tablestore atau menggunakan SDK tertentu, gunakan indeks sekunder. Untuk detail lebih lanjut, lihat Gunakan indeks sekunder di konsol Tablestore dan Mulai menggunakan indeks sekunder dengan SDK Tablestore.
Untuk menanyakan data dalam rentang tertentu di tabel eksternal Tablestore, atur nama tabel menjadi nama indeks sekunder dalam pernyataan SQL yang digunakan untuk membuat tabel eksternal. Untuk informasi lebih lanjut, lihat Buat tabel eksternal Tablestore.
Untuk menyinkronkan data dalam rentang tertentu dari Tablestore menggunakan Tablestore Reader, atur nama tabel menjadi nama indeks sekunder dalam skrip sinkronisasi data. Untuk detail lebih lanjut, lihat Tablestore Reader.