Amazon SimpleDB против Amazon DynamoDB

У меня есть некоторое базовое понимание того, что Amazon SimpleDB есть, но согласно Amazon DynamoDB, похоже, почти то же самое: NoSQL Key-value store.

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

Ответ 1

Об этом говорится в соответствующих FAQ Q: Как отличается Amazon DynamoDB от Amazon SimpleDB? Что я должен использовать? (хеш-ссылка больше не работает, но используется внутри страницы Найти, чтобы найти вопрос на странице) в некоторой степени уже, с самым компактным резюме в конце абзаца:

В то время как SimpleDB имеет ограничения масштабирования, он может быть хорошо подходит для меньшие рабочие нагрузки, требующие гибкости запросов. Amazon SimpleDB автоматически индексирует все атрибуты элемента и, таким образом, поддерживает запрос гибкость за счет производительности и масштаба.

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

Связанные ссылки на часто задаваемые вопросы Werner Vogel Amazon DynamoDB - быстродействующая и масштабируемая служба баз данных NoSQL, разработанная для приложений для масштабирования в Интернете, которая действительно является сложной и, рекомендуется прочитать о истории NoSQL на Амазонке в целом и в Динамо в частности; он содержит гораздо больше информации, касающейся вашего вопроса, например,

Стало очевидно, что разработчики [даже инженеры Amazon] настоятельно предпочли простоту мелкозернистый контроль, поскольку они проголосовали "за ноги" и приняли облачные решения AWS, такие как Amazon S3 и Amazon SimpleDB, Динамо. [дополнение мое]

Очевидно, DynamoDB был представлен для решения этой проблемы и, таким образом, может быть квалифицирован как преемник SimpleDB, а не просто "изменить" существующее предложение NoSQL:

Мы пришли к выводу, что идеальное решение объединяет лучшие части оригинальный дизайн Dynamo (инкрементная масштабируемость, предсказуемая высокая производительность) с лучшими частями SimpleDB (простота администрирования облачной службы, согласованности и табличной модели данных, которая более богатый, чем чистый хранилище ключей).

Резюме Werner предлагает DynamoDB быть подходящим для приложений любого размера, соответственно:

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

Ответ 2

используйте SimpleDB или DynamoDB, это зависит от вашего прецедента, я поделился некоторыми своими опытом с помощью SimpleDB в некоторых случаях вместо DynamoDB. В другом продукте я использовал как SimpleDB, так и DynamoDB для хранения разных данных.

Ответ 3

Одно из отличий, которые когда-то были (как указывает @Mason Zhang в своей статье выше) в индексировании. DynamoDB использовался для того, чтобы ограничить вас созданием индексов во время создания таблицы. Однако сейчас (с начала 2014 года) существует концепция глобального вторичного индекса (GSI). GSI может быть создан на столе в любое время. Поддерживается Upto 5. Таким образом, индексирование больше не является проблемой блокировки для многих случаев использования.

Вы также должны знать, что SimpleDB имеет ограничения по размеру и производительности. (10 ГБ и скажем, 25 запросов/сек)

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

Ответ 4

В настоящее время SimpleDB, похоже, не получает никакой любви от Amazon - его трудно найти, где его можно разместить в консоли AWS. Похоже, что SimpleDB больше не повторяется - используйте DynamoDB в качестве вашего первого выбора для базы данных документов на AWS.

SimpleDb больше не "итерации". Это означает, что нет новая разработка в будущем для simpledb. Он "поддерживается и поддерживается", но это не улучшится.

Ответ 5

Простыми словами оба хранилища данных - NoSql.

Разница заключается в масштабируемости (и нескольких других аспектах, но масштабирование имеет наибольшее значение, на мой взгляд). SimpleDB очень похож на MongoDB, но имеет значение ограничений, когда дело доходит до масштабирования.

Но DynamoDB позволяет вам предоставлять небольшие и масштабировать столько, сколько требуется для обеспечения необходимой пропускной способности. И уменьшите масштаб, если это не требуется. (т.е. во время рекламных кампаний, сценарии регистрации знаменитостей и т.д., например, будут иметь временные всплески требований к оборудованию)

Ответ 6

Я считаю, что большая разница в Simple DB и Dynamo DB составляет

  • Предсказуемая производительность с точки зрения задержки и возможность обработки больших объемов без ущерба для задержки и пропускной способности. DynamoDB достигает этого, используя ключ раздела
  • Чтение, оптимизация записи, которая может быть настроена
  • Лучшая возможная модель согласованности, поскольку использование последовательного алгоритма хэширования