Amazon SimpleDB против Amazon DynamoDB - PullRequest
187 голосов
/ 22 января 2012

Я немного понимаю, что такое Amazon SimpleDB , но, согласно описанию Amazon DynamoDB , оно выглядит почти таким же: хранилище ключей NoSQL сервис.

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

Ответы [ 7 ]

166 голосов
/ 22 января 2012

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

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

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

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

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

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

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

Werner's Резюме предполагает, что DynamoDB теперь хорошо подходит для приложений любого размера:

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

23 голосов
/ 08 августа 2013

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

11 голосов
/ 09 февраля 2017

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

SimpleDb больше не «итерируется». Это означает, что нет Новое развитие в будущем для Simpledb. Это "поддерживается и поддерживается ", но лучше не станет.

5 голосов
/ 17 февраля 2018

3 ключевых различия:

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

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

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

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

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

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

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

0 голосов
/ 12 февраля 2017

Я полагаю, что основное отличие в Simple DB от Dynamo DB -

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

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

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

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

...