Apakah DynamoDB mendukung kueri geospasial?
Tidak secara native. DynamoDB tidak memiliki tipe data geospasial dan tidak ada operator jarak atau bounding-box. Kueri geospasial adalah pola pemodelan sebagai gantinya: simpan geohash atau ID sel S2 di key sehingga titik-titik yang berdekatan tersusun bersama, kueri sel-sel yang menutupi area pencarian Anda, lalu perhalus berdasarkan jarak persis di aplikasi Anda.
Pola geohash
Sebuah geohash (atau ID sel S2, seperti yang digunakan Geo Library for DynamoDB dari AWS) meng-encode latitude/longitude menjadi string atau number yang prefiks-nya mengidentifikasi sel grid — dan yang terpenting, titik-titik berdekatan berbagi prefiks. Disimpan sebagai partition atau sort key, itu mengubah "titik di dekat saya" menjadi kueri rentang-key biasa:
- Box query — hitung sel-sel yang menutupi sebuah persegi panjang,
Querysetiap sel, gabungkan hasilnya. - Radius query — sama, atas sel-sel yang menutupi sebuah lingkaran, lalu filter berdasarkan jarak persis di sisi klien.
Resolusi penting: pilih ukuran sel di mana sebagian besar pencarian hanya menyentuh sel target dan tetangganya.
Library dan tooling
AWS menerbitkan Geo Library for Amazon DynamoDB (Java) yang mendemonstrasikan pola berbasis S2, dan port komunitas tersedia untuk bahasa lain (seperti dynamodb-geo untuk Node.js). Periksa status pemeliharaan sebelum mengadopsi salah satunya — polanya sendiri cukup sederhana untuk diimplementasikan langsung.
Kapan menggunakan mesin pencari sebagai gantinya
Untuk predikat geo yang kaya (poligon, pengurutan berdasarkan jarak, menggabungkan geo dengan teks lengkap), replikasi tabel ke indeks yang dibangun khusus — integrasi zero-ETL OpenSearch yang sama yang menangani pencarian teks lengkap juga memberi Anda mesin pencari dengan kueri geospasial native. DynamoDB vs Elasticsearch menimbang pemisahan basis-data-plus-indeks itu secara penuh.
Pelajari lebih lanjut
Pola ini pada dasarnya adalah trik sort key — panduan strategi sort key membahas perangkatnya, expression builder menghasilkan kondisi begins_with/BETWEEN yang digunakan kueri sel, dan DynoTable memungkinkan Anda memeriksa key ter-encode pada Item nyata Anda.
Referensi
- Geo Library for Amazon DynamoDB – Part 1: Table Structure — AWS Mobile Blog
- Implementing geohashing at scale in serverless web applications — AWS Compute Blog
- Supported data types and naming rules in Amazon DynamoDB — Amazon DynamoDB Developer Guide
Terakhir diverifikasi 2026-07-13 terhadap dokumentasi resmi AWS yang ditautkan di atas.