Apakah DynamoDB mendukung query geospasial?

Tidak secara native. DynamoDB tak punya tipe data geospasial dan tak punya operator jarak atau bounding box. Query geospasial justru berupa pola pemodelan: simpan sebuah geohash atau ID sel S2 di dalam key supaya titik-titik yang berdekatan terurut berdampingan, query sel-sel yang menutupi area pencarian Anda, lalu perhalus dengan jarak eksak di aplikasi Anda.

Pola geohash

Sebuah geohash (atau ID sel S2, seperti yang dipakai Geo Library for DynamoDB milik AWS) mengodekan lintang/bujur menjadi sebuah string atau angka yang prefiks-nya menandai satu sel grid — dan yang terpenting, titik-titik berdekatan berbagi prefiks. Disimpan sebagai partition key atau sort key, itu mengubah "titik di dekat saya" menjadi query rentang key biasa:

  • Query kotak — hitung sel-sel yang menutupi sebuah persegi panjang, Query tiap sel, gabungkan hasilnya.
  • Query radius — sama, atas sel-sel yang menutupi sebuah lingkaran, lalu filter dengan jarak eksak di sisi klien.

Resolusinya penting: pilih ukuran sel yang membuat sebagian besar pencarian hanya menyentuh sel targetnya dan tetangganya.

Bagaimana presisi mengubah jumlah query

Ambil Menara Eiffel, 48.8584, 2.2945. Geohash-nya adalah u09tunquc. Trocadéro, 640 m jauhnya di 48.8619, 2.2876, adalah u09tup1c0. Keduanya berbagi u09tu, jadi pada presisi 5 keduanya duduk di sel yang sama. Pada presisi 6 tidak. Dua landmark yang bisa saling terlihat, berada di sel yang berbeda, dan itulah sebabnya sebuah query sel selalu harus menyertakan delapan tetangganya selain sel Anda sendiri.

Setiap karakter mempersempit kotaknya. Pada lintang ini:

PresisiUkuran selSel yang disentuh radius 5 km
425,7 × 19,6 km1 sampai 4
53,2 × 4,9 km10 sampai 12
60,81 × 0,61 km185 sampai 193

Tiap baris berupa rentang karena jumlahnya bergantung pada di mana lingkarannya jatuh terhadap grid, bukan hanya pada seberapa besar lingkarannya. Sel juga melebar ke arah khatulistiwa, tempat satu derajat bujur mencakup lebih banyak daratan. Sel presisi 5 yang sama berukuran 4,9 km di khatulistiwa dan 3,2 km di Paris.

Kolom ketiga itulah keputusan desainnya. Presisi 6 mengubah satu "restoran dalam radius 5 km" menjadi kira-kira 190 panggilan Query. Presisi 4 membuatnya satu atau dua panggilan yang menyerahkan segala isi kotak 500 km² untuk Anda buang di sisi klien.

Yang menggigit bukan uangnya. 190 query itu, masing-masing mengembalikan di bawah 4 KB secara eventually consistent, berjumlah 95 unit baca, sekitar $0,000012 per pencarian pada tarif on-demand us-east-1, atau $11,88 untuk sejuta pencarian. Perjalanan bolak-baliknya yang jadi biaya sebenarnya. Kirimkan secara bersamaan dan batasi fan-out-nya, atau p99 endpoint pencarian Anda adalah query sel mana pun yang kebetulan paling lambat.

Library dan perkakas

AWS menerbitkan Geo Library for Amazon DynamoDB (Java) yang memperagakan pola berbasis S2 itu, dan port komunitas tersedia untuk bahasa lain (misalnya dynamodb-geo untuk Node.js). Periksa status pemeliharaannya sebelum mengadopsi salah satunya — polanya sendiri cukup sederhana untuk diimplementasikan langsung.

Kapan sebaiknya memakai mesin pencari

Untuk predikat geo yang kaya (poligon, pengurutan berdasarkan jarak, menggabungkan geo dengan full-text), replikasikan tabelnya ke sebuah index khusus — integrasi zero-ETL OpenSearch yang sama yang menangani pencarian full-text juga memberi Anda mesin pencari dengan query geospasial native.

Pelajari lebih lanjut

Polanya pada dasarnya trik sort key — panduan strategi sort key membahas perkakasnya, expression builder menghasilkan kondisi begins_with/BETWEEN yang dipakai query sel, dan DynoTable memungkinkan Anda memeriksa key terkode pada item Anda yang sebenarnya.

Referensi

Terakhir diverifikasi 2026-07-13 terhadap dokumentasi resmi AWS yang ditautkan di atas.

Geohash, dimensi sel, dan jumlah cakupan dihitung 2026-07-28 dengan encoder geohash base32 standar pada lintang 48.8584. Periksa u09tunquc dengan alat geohash mana pun. Biaya per pencariannya memakai tarif baca on-demand us-east-1 di tabel harga tersinkron kami (publikasi AWS pricing API 2026-07-22).

Bekerja dengan DynamoDB tanpa Console

Klien desktop DynamoDB yang cepat dan menjalankan SQL sungguhan yang tidak bisa dijalankan DynamoDB — JOINs, GROUP BY, agregasi — dengan editing visual dan agen AI pada kunci Bedrock milik Anda sendiri.

Uji coba gratis 30 hari, tanpa kartu kredit — lalu paket Free tanpa batas waktu.