запрос DynamoDB для значений между X и Y - PullRequest
0 голосов
/ 21 марта 2020

У меня есть таблица DynamoDB, как показано на прикрепленном изображении, и я ищу способы запроса таблицы на основе полей lon и lat. Более конкретно, я ищу все результаты с Lon между X и Y и Lat между A и B.

Есть ли способ сделать это? Я создал индексы для Lon и Lat, но значения являются строками.

Большое спасибо за вашу помощь !!

DynamoDB table

1 Ответ

0 голосов
/ 28 марта 2020

вы можете придумать хорошую функцию ha sh (скажем, f) и иметь схему ниже для DynamodB

| pk          | sk               |  lat  | lon  | name 
| hashvalue1  | 48.80#2.35#Fac   | 48.80 | 2.35 | Fac du
| hashvalue1  | 48.83#2.36#Groupe| 48.83 | 2.36 | Groupe Hos

here f(48.80, 2.35) = hashvalue1
f(48.83, 2.36) = hashvalue1

И всякий раз, когда вам нужно запросить lat1 и lon1, вычислите f ( lat1, lon1) и запросить базу данных. Но проблема с этим решением заключается в хорошей функции хеширования, потому что в худшем случае вам, возможно, придется пересчитать ha sh каждого введенного значения в дБ, иначе это может стать горячей клавишей. этот подход хорошо документирован здесь и здесь .

Я бы предложил go с поиском elasti c, это даст вам гораздо больше гибкости. с точки зрения будущих вариантов использования.

...