2012-01-22 6 views
157

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

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

ответ

146

Этот вопрос рассматривается соответствующим FAQ Q: How does Amazon DynamoDB differ from Amazon SimpleDB? Which should I use? (хэш-ссылка уже не работает, но использовать в странице Найти, чтобы найти вопрос в странице) до некоторой степени уже с самым компактным образом в конце пункта:

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

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

Связанная запись FAQ ссылается Вернер Фогеля Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications, а также, что является действительно сложным и, таким образом, настоятельно рекомендуется читать относительно История NoSQL на Amazon в целом и Динамо, в частности; он содержит гораздо больше информации, касающейся вашего вопроса, например,

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

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

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

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

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

20

Использование SimpleDB или DynamoDB, это зависит от вашего прецедента, я поделился некоторыми своими впечатлениями, используя SimpleDB in some cases instead of DynamoDB. В другом продукте я использовал как SimpleDB, так и DynamoDB для хранения разных данных.

+13

понравился пост - не мешало бы резюмировать здесь –

+0

понравился пост, а также. @Mason, что вы думаете о том, как SimpleDCB медленно исчезла из консоли продуктов AWS? Вы все еще используете SimpleDB или мигрировали? –

+1

@DavidRobbins SimpleDB, возможно, устарели AWS, но он все еще существует и отлично подходит для моих данных. Я еще не переносил свой код, но не планировал это делать. Но для новых продуктов я выбираю другие базы данных, такие как dynamodb или mysql. –

4

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

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

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

0

Проще говоря, оба хранилища данных - NoSql.

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

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

2

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

SimpleDb больше не «итерации». Это означает, что в будущем для упрощенного b не будет новых разработок. Он «поддерживается и поддерживается », но он не улучшится.

+0

Невозможно улучшить на отлично! – dividebyzero

0

Я считаю, что главное различие в Simple DB против Динамо DB являются

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

3 основных отличий:

  1. Индексация

    • SimpleDB создает индекс для поля «КАЖДЫЙ» в таблице.
    • DynamoDB перед созданием базы данных необходимо установить индексирование полей и не может быть изменено.
  2. Цена:

    • SimpleDB ценообразование основано на машинных часов и хранения емкость
    • DynamoDB взимают деньги мощностью чтения/записи записей в секунду.
  3. Масштабируемость:

    • SimpleDB требует ручного секционирования, если для хранения данных превышает 10 ГБ.
    • DynamoDB автоматически распределяет данные под капотом, что обеспечивает очень высокую масштабируемость.