All Products
Search
Document Center

Data Management:Kueri tabel logis

Last Updated:Jun 21, 2026

Topik ini menjelaskan cara melakukan kueri pada tabel logis.

Latar Belakang

  • Setelah menerapkan sharding database dan tabel, Anda memerlukan cara sederhana untuk mengkueri data yang tersebar di beberapa tabel fisik. Tabel logis menyediakan tampilan terpadu sehingga Anda dapat mengkueri data yang telah di-shard seolah-olah berada dalam satu tabel tunggal, menyembunyikan kompleksitas penentuan lokasi manual database dan tabel fisik yang tepat untuk setiap kueri.

  • Data Management (DMS) memungkinkan kueri transparan tersebut dengan menggabungkan data dari logical databases dan logical tables.

Prosedur

  1. Pilih logical database yang akan dikueri dan diekspor datanya. Sebelum mengonfigurasi algoritma perutean, Anda hanya dapat menjalankan pernyataan SELECT, UPDATE, dan DELETE. Pernyataan INSERT tidak didukung.

    Jika Anda menjalankan pernyataan INSERT pada tahap ini, sistem akan mengembalikan error berikut: [Error] dsql.DSQLException: No shard route found, execution failed. Make sure a routing algorithm is configured for the logical table.

  2. Konfigurasikan algoritma perutean. Contoh ini menggunakan simple modulo. Untuk informasi lebih lanjut tentang konfigurasi algoritma kompleks, lihat Configure a routing algorithm.

    Pada kotak dialog New algorithm, atur Algorithm type ke Single-column modulo, Modulo type ke Simple modulo, dan Routing field ke user_id (bigint). Atur Modulo ke 128, lalu klik Save.

  3. Jalankan pernyataan INSERT.

    Sebagai contoh, jalankan INSERT INTO scend_test(gmt_create,gmt_modified,user_id) VALUES (now(),now(),2); untuk memasukkan catatan ke dalam tabel scend_test. Tanda centang hijau akan muncul di area hasil jika eksekusi berhasil.

  4. Lakukan kueri cepat.

    • Setelah Anda mengonfigurasi algoritma perutean, Anda dapat mengkueri tabel shard fisik tertentu menggunakan bidang routing dalam kondisi kueri. Dengan ini, Anda tidak perlu lagi menghitung dan beralih secara manual di antara database dan tabel fisik. Di DMS SQL Console, jalankan pernyataan SQL SELECT * FROM <code data-tag="code" id="code_a2fbd55c876f">scend_test WHERE user_id = 4, yang menggunakan bidang routing user_id sebagai kondisi kueri. Log eksekusi menunjukkan bahwa DMS merutekan tabel logis scend_test ke tabel shard fisik poc_dev.scend_test_000.

    • Hasil kueri menyertakan kolom tambahan yang menunjukkan database dan tabel sumber. Anda dapat mengeklik nilai di kolom ini untuk membuka tabel shard fisik yang sesuai dengan pernyataan SQL dan kondisi kueri yang terisi otomatis. Misalnya, saat Anda menjalankan SELECT * FROM <code data-tag="code" id="code_64bfb8d79453">scend_test WHERE user_id = 1, kolom lokasi data di hasil kueri akan menampilkan poc_dev.scend_test_000. Ini menunjukkan bahwa DMS mengarahkan data ke tabel shard fisik yang sesuai dan mengembalikan satu catatan yang cocok.

    • Anda juga dapat menjalankan kueri tanpa menyertakan bidang routing sebagai kondisi. Hal ini akan melakukan pemindaian tabel penuh di seluruh tabel shard fisik, yang berguna untuk operasi seperti statistik ringkasan.

      Catatan

      Sintaks seperti GROUP BY juga didukung. Sebagian besar sintaks SQL konsisten dengan database sumber, tetapi subkueri saat ini belum didukung.

      Sebagai contoh, jika Anda menjalankan SELECT COUNT(*) FROM scend_test; di SQL Console, hasilnya adalah 1, yang menunjukkan bahwa tabel tersebut berisi satu catatan.