Lindorm GanosBase meningkatkan kemampuan indeks kunci utama dan indeks sekunder yang disediakan oleh Lindorm untuk mempercepat pelaksanaan query spasio-temporal. Query spasio-temporal adalah query di mana kolom spasial yang menyimpan koordinat atau objek geometri, atau kombinasi kolom spasial yang menyimpan koordinat atau objek geometri dan kolom waktu, ditentukan sebagai kondisi. Topik ini menjelaskan konsep, jenis, dan skenario indeks spasio-temporal.
Indeks Z-ORDER
Ketika Anda membuat indeks kunci utama atau indeks sekunder di Lindorm GanosBase, Anda dapat menggunakan fungsi pengindeksan Z-ORDER untuk menambahkan indeks pada kolom spasial yang menyimpan objek geometri atau kombinasi kolom spasial dan temporal yang menyimpan data geometri dan waktu. Fungsi pengindeksan Z-ORDER mengembalikan nilai terkode, yang disebut kode Z-ORDER atau kode spasio-temporal. Kode ini digunakan sebagai bagian dari indeks kunci utama atau indeks sekunder. Indeks spasio-temporal Lindorm GanosBase merupakan ekspansi tertanam dari indeks kunci utama atau indeks sekunder Lindorm untuk mempercepat query spasio-temporal.
Jenis indeks Z-ORDER
Indeks kunci utama Z-ORDER
Jika kode Z-ORDER termasuk dalam indeks kunci utama, indeks tersebut adalah indeks kunci utama Z-ORDER. Contoh: PRIMARY KEY(Z-ORDER(g)).
Indeks sekunder Z-ORDER
Jika kode Z-ORDER termasuk dalam indeks sekunder, indeks tersebut adalah indeks sekunder Z-ORDER. Contoh: Z-ORDER(g).
Untuk informasi lebih lanjut tentang cara membuat indeks Z-ORDER, lihat Buat Indeks Spasio-Temporal.
Fungsi pengindeksan Z-ORDER
Lindorm GanosBase menghitung kode spasio-temporal berdasarkan parameter input yang Anda tentukan untuk fungsi Z-ORDER. Tabel berikut menjelaskan metode yang dapat Anda gunakan untuk menentukan parameter input fungsi pengindeksan Z-ORDER.
Jika dua objek spasial hanya berjarak beberapa sentimeter, kode spasio-temporal yang dihasilkan oleh fungsi Z-ORDER untuk kedua objek tersebut mungkin sama.
Format | Parameter | Skenario |
|
| Indeks dibuat untuk titik-titik yang ditentukan. Anda dapat menggunakan indeks untuk mempercepat query di mana rentang spasial ditentukan sebagai kondisi. |
|
| Indeks dibuat secara terpisah untuk titik-titik dan data waktu yang ditentukan. Anda dapat menggunakan indeks untuk mempercepat query di mana rentang spasial dan waktu ditentukan sebagai kondisi. |
|
| Indeks dibuat untuk line string atau poligon yang ditentukan. Anda dapat menggunakan indeks untuk mempercepat query di mana rentang spasial ditentukan sebagai kondisi. |
|
| Indeks dibuat secara terpisah untuk line string, poligon, dan data waktu yang ditentukan. Anda dapat menggunakan indeks untuk mempercepat query di mana rentang spasial dan waktu ditentukan sebagai kondisi. |
Indeks sekunder S2
Hanya LindormTable yang lebih baru dari V2.6.5 yang mendukung indeks sekunder S2.
Jika Anda menggunakan fungsi pengindeksan S2 pada kolom yang menyimpan data POLYGON, MULTIPOLYGON, LINESTRING, atau MULTILINESTRING saat membuat indeks, LindormTable secara otomatis membuat indeks sekunder S2 untuk indeks tersebut. Anda dapat menggunakan indeks sekunder S2 untuk menyaring dan menghitung data berdasarkan sel S2.
Indeks sekunder S2 membagi ruang menjadi sel S2 berukuran sama dan mengalokasikan ID unik untuk setiap sel berdasarkan algoritma Google S2. Setiap sel berpotongan dengan satu atau lebih sisi. Informasi perpotongan dicatat dalam indeks.
Fungsi pengindeksan S2
Sintaksis
Fungsi pengindeksan S2 menerima objek geometri dan level S2 sebagai parameter input dan mengembalikan ID sel S2 yang dicakup oleh objek geometri yang ditentukan pada level yang ditentukan. Untuk informasi lebih lanjut tentang cara membuat indeks S2, lihat Buat Indeks Spasio-Temporal.
Set<Long> S2(String geomColumnName, int level)Parameter
Parameter | Deskripsi |
geomColumnName | Nama kolom yang menyimpan data POLYGON, MULTIPOLYGON, LINESTRING atau MULTILINESTRING. Koordinat data di kolom harus berupa koordinat WGS84. Penting Data LINESTRING atau MULTILINESTRING didukung hanya di LindormTable versi 2.6.7.5 dan versi lebih baru. Jika Anda tidak dapat memperbarui LindormTable di konsol, hubungi dukungan teknis (ID DingTalk: s0s3eg3). |
level | Level sel S2. Nilai valid: [1,30]. |
Pilih indeks
Skenario indeks Z-ORDER
Indeks Z-ORDER cocok untuk menyaring titik spasial. Jika Anda perlu menentukan hubungan spasial antara titik spasial dalam kondisi query, Anda dapat menggunakan fungsi Z-ORDER dalam format untuk membuat indeks sesuai kebutuhan. Untuk informasi lebih lanjut tentang skenario fungsi pengindeksan Z-ORDER, lihat Fungsi Pengindeksan Z-ORDER.
Indeks Z-ORDER berlaku untuk skenario berikut:
Query rentang spasio-temporal: Anda dapat menggunakan indeks Z-ORDER untuk menanyakan jejak kendaraan di suatu area selama periode waktu tertentu.
Query sekitar: Anda dapat menggunakan indeks Z-ORDER untuk menanyakan kendaraan dalam jarak tertentu di sekitar lokasi dan mendapatkan lokasi real-time kendaraan tersebut.
Statistik jejak: Anda dapat menggunakan indeks Z-ORDER untuk mengumpulkan statistik titik jejak yang masuk dan keluar dari suatu area, termasuk waktu masuk, waktu keluar, durasi tinggal, dan jumlah jejak.
Indeks Z-ORDER juga dapat digunakan dalam kondisi query sederhana untuk menyaring data garis atau poligon.
Query data garis: Anda dapat menggunakan indeks Z-ORDER untuk menanyakan jalan dalam jarak tertentu di sekitar lokasi. Informasi setiap jalan disimpan sebagai objek LINESTRING atau MULTILINESTRING di database.
Query data poligon: Anda dapat menggunakan indeks Z-ORDER untuk menanyakan distrik bisnis dalam area tertentu. Informasi setiap distrik disimpan sebagai objek POLYGON atau MULTIPOLYGON di database.
Skenario indeks S2
Dibandingkan dengan indeks Z-ORDER, indeks S2 lebih cocok untuk menyaring line string dan poligon. Untuk query non-agregat, Anda dapat menggunakan indeks S2 untuk menyaring data di sel yang tidak sesuai dengan kondisi query untuk mempercepat query.
Pemantauan geofencing: Anda dapat menggunakan indeks S2 untuk menanyakan geofence tempat titik jejak berada secara real-time. Untuk query yang dilakukan pada dataset yang berisi jutaan catatan data geofencing, hasilnya dapat dikembalikan dalam milidetik.
Query sekitar: Anda dapat menggunakan indeks S2 untuk menanyakan distrik bisnis dalam jarak tertentu di sekitar lokasi secara real-time.
Selain itu, indeks S2 dapat digunakan untuk memperbarui statistik yang tersimpan secara real-time. Oleh karena itu, Anda dapat menggunakan indeks S2 untuk mengumpulkan dan mengagregasi data berdasarkan sel.
Penghitungan jumlah: Anda dapat menggunakan indeks S2 untuk menghitung jumlah distrik bisnis dan jejak berdasarkan sel.
Kumpulkan statistik area: Anda dapat menggunakan indeks S2 untuk mengumpulkan statistik seperti cakupan vegetasi dan jumlah total volume transaksi berdasarkan sel.