Lindorm GanosBase adalah mesin data spatio-temporal yang dibangun secara native di atas LindormTable, yaitu mesin tabel lebar Lindorm. GanosBase memperluas LindormTable dengan tipe data spasial, indeks spatio-temporal, dan fungsi yang kompatibel dengan PostGIS, sehingga Anda dapat menyimpan, mengkueri, dan menganalisis data lintasan skala besar dengan throughput dan profil biaya yang sesuai dengan penyimpanan tabel lebar terdistribusi.
Jika aplikasi Anda memproses data lintasan dari beban kerja Internet of Vehicles (IoV), Internet of Things (IoT), logistik, kendaraan otonom, perjalanan, navigasi, atau Sistem Informasi Geografis (SIG), GanosBase dirancang untuk skala tersebut.
Kapan menggunakan GanosBase
GanosBase sesuai dengan kebutuhan Anda ketika:
Aplikasi Anda menjalankan kueri rentang spatio-temporal—misalnya, menemukan semua kendaraan yang melewati area tertentu dalam satu jam terakhir.
Anda memerlukan pemagaran geografis real-time untuk mendeteksi saat suatu objek memasuki atau meninggalkan batas yang telah ditentukan.
Anda menjalankan layanan berbasis lokasi, seperti mencari tempat menarik dalam radius tertentu.
Anda memiliki volume besar data lintasan historis dan perlu mengompres serta mengarsipkannya secara hemat biaya.
Aplikasi yang sudah ada menggunakan fitur spasial PostGIS, GeoMesa, MongoDB, atau Redis, dan Anda ingin bermigrasi ke backend terdistribusi yang dapat diskalakan.
Cara kerja
Database spasio-temporal didefinisikan oleh tiga kemampuan. GanosBase menambahkan ketiganya ke LindormTable:
Tipe data spasial — objek geometri standar termasuk titik (points), LineStrings, dan poligon (polygons).
Indeks spatio-temporal — indeks Z-ORDER yang memetakan koordinat multidimensi (ruang, atau ruang + waktu) ke kunci berdimensi tunggal, memungkinkan pemindaian rentang yang efisien tanpa menyimpan replika data redundan.
Fungsi spatio-temporal — pustaka fungsi yang kompatibel dengan PostGIS yang mencakup akses, hubungan spasial, pemrosesan data, dan pengukuran.
GanosBase menyediakan kemampuan ini melalui tiga antarmuka. Pilih yang sesuai dengan stack yang sudah Anda gunakan.
Antarmuka yang didukung
| Antarmuka | Titik masuk | Paling cocok untuk | Kinerja |
|---|---|---|---|
| GanosBase SQL | SQL Standar | Aplikasi yang dibangun di atas fitur spasial PostGIS, GeoMesa, MongoDB, atau Redis | Lebih unggul daripada GeoMesa open source (penulisan ulang kueri, kueri paralel, shard, dan algoritma aproksimasi spasial yang dioptimalkan) |
| GanosBase GeoMesa | API GeoTools atau ECQL | Aplikasi yang dibangun di atas GeoMesa open source | Lebih unggul daripada GeoMesa dan HBase open source |
| GanosBase for streaming engines | SQL Flink Standar | Pipeline streaming Flink atau Spark | Kinerja kueri sangat baik berkat indeks in-memory dan kueri paralel |
GanosBase SQL
GanosBase SQL menyediakan kemampuan spatio-temporal melalui SQL Standar, mencakup fitur pemrosesan data GeoMesa, MongoDB, dan Redis dalam satu antarmuka.
Tipe data spasial
Titik (Points), LineStrings, dan poligon (polygons)—objek geometri OGC standar. Lihat Tipe data spasial.
Sintaks SQL
Gunakan pernyataan DDL dan DML standar untuk bekerja dengan tabel spatio-temporal:
Membuat tabel: CREATE TABLE
Memasukkan atau memperbarui data: UPSERT
Mengkueri data: SELECT
Untuk referensi sintaks lengkap, lihat DDL dan DML.
Fungsi spatio-temporal
GanosBase SQL mencakup fungsi yang kompatibel dengan PostGIS dalam empat kategori:
| Kategori | Contoh fungsi |
|---|---|
| Akses | ST_X |
| Hubungan spasial | ST_Contains, ST_Intersects |
| Pemrosesan data | ST_Buffer |
| Pengukuran | ST_Length |
Untuk referensi fungsi lengkap, lihat Ikhtisar.
Indeks Memori Spasial-Temporal
GanosBase SQL menggunakan indeks Z-ORDER, yang mengencode koordinat spasial atau spatio-temporal sebagai kunci berdimensi tunggal. Hal ini mendukung pemindaian rentang yang efisien pada kondisi hanya spasial atau spasial + waktu tanpa menyimpan replika data redundan.
Gunakan indeks kunci primer jika pola pencarian utama bersifat spasial atau spatio-temporal:
-- Hanya kueri rentang spasial
CREATE TABLE gtest(id INT, g GEOMETRY(POINT), name VARCHAR, PRIMARY KEY(Z-ORDER(g),id));
-- Kueri rentang spasial dan waktu
CREATE TABLE gtest(id INT, g GEOMETRY(POINT), name VARCHAR, t LONG, PRIMARY KEY(Z-ORDER(g,t),id));Gunakan indeks sekunder untuk mempercepat kueri spatio-temporal pada kolom non-primary-key:
-- Hanya kueri rentang spasial
CREATE INDEX idx ON gtest (Z-ORDER(g));
-- Kueri rentang spasial dan waktu
CREATE INDEX idx ON gtest (Z-ORDER(g,t));Indeks sekunder dalam GanosBase SQL menghilangkan kebutuhan akan replika data redundan untuk mendukung kueri spatio-temporal.
Fitur LindormTable yang diwariskan
Karena GanosBase dibangun di atas LindormTable, tabel GanosBase SQL juga mendukung penyimpanan dingin, pemisahan data panas dan dingin, serta kolom dinamis. Lihat Panduan Pengembang untuk detail selengkapnya.
GanosBase GeoMesa
GanosBase GeoMesa adalah backend drop-in untuk aplikasi yang dibangun di atas GeoMesa atau GeoServer open source. GanosBase mewarisi seluruh fitur GeoMesa dan kompatibel dengan API GeoTools serta ECQL, sehingga Anda dapat memigrasikan aplikasi GeoMesa yang sudah ada ke backend terdistribusi yang dapat diskalakan.
GanosBase for streaming engines
GanosBase for streaming engines menambahkan kemampuan spatio-temporal ke Apache Flink melalui SQL Flink Standar. Antarmuka ini dirancang untuk memigrasikan pipeline streaming Flink atau Spark yang memproses data lokasi atau lintasan.
Kemampuan utama:
Semua fitur komputasi streaming standar Apache Flink
Pustaka besar fungsi spatio-temporal yang kompatibel dengan PostGIS
Fungsi perhitungan data lintasan
Pemfilteran pagar geografis real-time dan agregasi lintasan
Indeks in-memory dan kueri paralel untuk kinerja latensi rendah
Kasus penggunaan
Skenario berikut menunjukkan penerapan GanosBase SQL di berbagai industri, termasuk perjalanan, navigasi, penerbangan, Internet of Vehicles (IoV), dan logistik.GanosBaseGanosBaseGanosBase
Penyimpanan dan kueri lintasan
Operator armada mengkueri lintasan suatu objek dalam area tertentu selama 24 jam terakhir. Data lintasan historis dikompres dan diarsipkan untuk mengurangi biaya penyimpanan.
Agregasi grid geografis
Tim mobilitas kota menghitung jumlah kendaraan di berbagai distrik menggunakan agregasi grid H3 dan memvisualisasikan kerapatan dalam bentuk peta panas. Presisi agregasi ditentukan per kueri berdasarkan granularitas yang dibutuhkan.
Pemagaran geografis real-time
Platform logistik memicu peringatan saat kendaraan pengiriman menyimpang dari rute yang direncanakan. Aplikasi ride-hailing menentukan zona penetapan harga dengan memetakan lokasi penjemputan ke sel grid spasial.
Layanan berbasis lokasi
Aplikasi konsumen menampilkan restoran dalam jarak 5 kilometer dari lokasi pengguna saat ini.