DynamoDB coğrafi konum sorgularını destekliyor mu?

Yerel olarak değil. DynamoDB'nin coğrafi konum veri türü ve mesafe ya da sınırlayıcı kutu operatörleri yoktur. Coğrafi sorgular bunun yerine bir modelleme desenidir: yakındaki noktalar birlikte sıralansın diye anahtara bir geohash ya da S2 hücre kimliği saklayın, arama alanınızı kapsayan hücreleri sorgulayın, sonra uygulamanızda tam mesafeye göre daraltın.

Geohash deseni

Bir geohash (ya da AWS'nin DynamoDB için Geo Library'sinde kullanıldığı gibi bir S2 hücre kimliği), enlem/boylamı önekinin bir ızgara hücresini belirlediği bir string ya da sayıya kodlar — ve en önemlisi, yakındaki noktalar önek paylaşır. Bir bölüm ya da sıralama anahtarı olarak saklandığında, bu "yakınımdaki noktalar"ı sıradan anahtar aralığı sorgularına çevirir:

  • Kutu sorgusu — bir dikdörtgeni kapsayan hücreleri hesaplayın, her hücreyi Query edin, sonuçları birleştirin.
  • Yarıçap sorgusu — aynısı, bir daireyi kapsayan hücreler üzerinde, sonra istemci tarafında tam mesafeye göre filtreleyin.

Çözünürlük önemlidir: aramaların çoğunun yalnızca hedef hücreye ve komşularına dokunduğu bir hücre boyutu seçin.

Kesinlik sorgu sayısını nasıl değiştirir

Eiffel Kulesi'ni ele alalım, 48.8584, 2.2945. Geohash'i u09tunquc. 640 m ötede, 48.8619, 2.2876 konumundaki Trocadéro ise u09tup1c0. u09tu önekini paylaşıyorlar, dolayısıyla 5. kesinlikte aynı hücrede oturuyorlar. 6. kesinlikte oturmuyorlar. Birbirini görebileceğiniz iki simge yapı, farklı hücrelerde — bir hücre sorgusunun neden her zaman kendi hücrenizin yanı sıra sekiz komşuyu da kapsaması gerektiğinin nedeni bu.

Her karakter kutuyu daraltır. Bu enlemde:

KesinlikHücre boyutu5 km yarıçapın dokunduğu hücreler
425,7 × 19,6 km1 ila 4
53,2 × 4,9 km10 ila 12
60,81 × 0,61 km185 ila 193

Her satır bir aralıktır, çünkü sayı yalnızca dairenin ne kadar büyük olduğuna değil, ızgaraya göre nereye düştüğüne de bağlıdır. Hücreler ayrıca ekvatora doğru genişler, çünkü orada bir boylam derecesi daha çok yer kaplar. Aynı 5. kesinlik hücresi ekvatorda 4,9 km, Paris'te 3,2 km enindedir.

Tasarım kararı o üçüncü sütundur. 6. kesinlik, tek bir "5 km içindeki restoranlar"ı kabaca 190 Query çağrısına çevirir. 4. kesinlik ise onu, istemci tarafında eleyeceğiniz 500 km²'lik bir kutudaki her şeyi geri veren bir ya da iki çağrı yapar.

Canınızı yakan para değildir. Her biri nihai tutarlı olarak 4 KB'ın altında dönen o 190 sorgu 95 okuma birimi eder — us-east-1 talep üzerine tarifesinde arama başına yaklaşık $0.000012 ya da bir milyon arama için $11.88. Asıl maliyet gidiş dönüşlerdir. Onları eşzamanlı yapın ve yayılmayı sınırlayın; yoksa arama uç noktanızın p99'u en yavaş çıkan hücre sorgusu olur.

Kütüphaneler ve araçlar

AWS, S2 tabanlı deseni gösteren Geo Library for Amazon DynamoDB'yi (Java) yayımladı ve başka diller için topluluk uyarlamaları var (Node.js için dynamodb-geo gibi). Birini benimsemeden önce bakım durumunu denetleyin — desenin kendisi doğrudan gerçekleştirilecek kadar basittir.

Bunun yerine ne zaman bir arama motoru kullanmalı

Zengin coğrafi koşullar (çokgenler, mesafeye göre sıralama, coğrafyayı tam metinle birleştirme) için tabloyu amaca özel bir indekse çoğaltın — tam metin aramayı da karşılayan aynı sıfır-ETL OpenSearch entegrasyonu size yerel coğrafi konum sorguları olan bir arama motoru da verir.

Daha derine inin

Desen özünde bir sıralama anahtarı hilesidir — sıralama anahtarı stratejileri kılavuzu araç kutusunu anlatır, expression builder hücre sorgularının kullandığı begins_with/BETWEEN koşullarını üretir ve DynoTable kodlanmış anahtarları gerçek öğelerinizde incelemenizi sağlar.

Kaynaklar

En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı.

Geohash'ler, hücre boyutları ve kapsama sayıları 2026-07-28 tarihinde, 48.8584 enleminde standart bir base32 geohash kodlayıcısıyla hesaplandı. u09tunquc'yi herhangi bir geohash aracıyla denetleyin. Arama başına maliyet, eşitlediğimiz fiyatlandırma tablosundaki us-east-1 talep üzerine okuma tarifesini kullanır (AWS fiyatlandırma API'si yayını 2026-07-22).

Console olmadan DynamoDB ile çalış

DynamoDB’nin çalıştıramadığı gerçek SQL’i çalıştıran hızlı bir DynamoDB masaüstü istemcisi — JOINs, GROUP BY, toplamalar — görsel düzenleme ve kendi Bedrock anahtarların üzerinde bir yapay zekâ aracısıyla.

30 günlük ücretsiz deneme, kredi kartı yok — ardından süre sınırı olmayan Ücretsiz plan.