Выбор хранилища данных AWS - PullRequest
0 голосов
/ 17 мая 2018

Я работаю над проектом по созданию приложения.Приложение проверит входные данные по списку значений и выдаст ответ.Вы можете думать, будто я проверяю, есть ли у ученика членство в спортзале.

В моем случае размер списка значений может составлять тысячи и миллионы.Кроме того, я могу захотеть ежедневно обновлять список или даже удалять его и создавать новый из моего источника данных.

Каким будет лучшее хранилище данных AWS, которое я могу использовать в этом случае?Я думаю об использовании динамо БД.

Ответы [ 2 ]

0 голосов
/ 19 мая 2018

DynamoDB может подойти для вашего случая использования.Тем не менее, вы упомянули что-то, что заставляет меня усомниться в следующем:

В моем случае список значений размера может составлять тысячи и миллионы.Кроме того, я могу захотеть ежедневно обновлять список или даже удалять его и создавать новый из моего источника данных.

В отличие от традиционной SQL-подобной среды с RDS / MySQL / Aurora,в DynamoDB вы не можете выполнить один запрос для удаления или обновления всех или некоторых элементов.

Действительно, если у вас есть миллионы элементов, которые необходимо обновить или удалить, то DynamoDB может оказаться не лучшим выбором для вас.Это связано с тем, что в DynamoDB каждый элемент должен обновляться или удаляться по отдельности.

Кроме того, DynamoDB взимает с вас плату за «рабочий записи», и каждый рабочий записи может выполнять одно удаление / обновление в секунду.В результате, если у вас есть миллионы строк, которые нужно удалить или обновить, вам понадобится достаточное количество работников для этого.Это может быть дорого, особенно если эти изменения происходят «сразу» (по сравнению с распространением в течение дня).

Очевидно, что вы можете удалять и обновлять элементы в «Динамо».Вы можете использовать DynamoDB Streams для обработки новых элементов;Вы можете добавить время жизни, чтобы записи удалялись через 48 часов (минимум);Вы можете использовать автоматическое масштабирование, чтобы вырастить своих работников, чтобы справиться с предсказуемым увеличением.Или вы можете использовать SQS или другие методы, чтобы ставить в очередь и постепенно обновлять свои обновления.

Однако все они требуют тщательного проектирования (на мой взгляд, гораздо больше, чем традиционных RDS).Если у вас есть обновление / удаление тяжелого приложения, я рекомендую использовать реляционную базу данных.

0 голосов
/ 18 мая 2018

Если ваш вариант использования «Существует ли эта запись в этой таблице?» , тогда DynamoDB - отличный выбор, поскольку он очень быстро возвращает результат и отсутствует инфраструктура. управлять.

Вы также можете полностью отключиться от сервера, используя AWS API Gateway и AWS Lambda, поэтому все ваше приложение может работать без серверов и автоматически масштабироваться в зависимости от нагрузки.

Другие варианты:

  • A традиционная база данных SQL с использованием Amazon RDS , но это было бы излишним для заявленного варианта использования
  • Объекты хранятся в Amazon S3 и просто запрашивают, существует ли объект. (Вы можете думать об Amazon S3 как об очень большой базе данных NoSQL.)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...