DynamoDB и ElasticSearch - подходы к оформлению таблиц - PullRequest
0 голосов
/ 27 мая 2019

Я сейчас думаю о своей базе данных DynamoDB.Цель состоит в том, чтобы добиться максимальной скорости с действительно большим количеством данных.Для меня DynamoDB кажется хорошим вариантом.Кроме того, мне необходимо подключить таблицу к ElasticSearch, потому что мне нужны геопункты-запросы (например, показать мне все сообщения, которые находятся в определенной области).Будет ли для вас целесообразен следующий подход в отношении лучших практик DynamoDB?Возможно, что ключ сортировки, например, «posts», является горячей точкой, но если я делаю запрос только с ElasticSearch, проблем не должно быть - верно?Какое будет лучшее решение?

Мои таблицы выглядят так:

Поэтому мои мысли таковы:

  • Чтобы запросить всех пользователей, просто выберите каждую строку сsort_key 'user'
  • Чтобы получить сообщение с создателем, запросите post_id и sort_key 'post'

В реляционной базе данных две таблицы будут выглядеть следующим образом:enter image description here

Ответы [ 2 ]

1 голос
/ 28 мая 2019

Я не думаю, что динамо-БД - хороший вариант для этого.Ограничение для DynamoDB указано ниже.

  • Вы не можете получить более 1 МБ данных на вызов API
  • Поиск с использованием подстановочного знака снизит производительность
  • Агрегация станет кошмаром, так как вы планируете собирать огромные данные
1 голос
/ 28 мая 2019

Вы можете сделать что-то вроде использования перегруженных атрибутов (используя одни и те же столбцы для разных вещей) enter image description here

Затем выполните запрос с user_id и post_id = 0 для информации о пользователе и post_id = others для сообщений

...