Amazon SimpleDB vs Amazon DynamoDB


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

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

7 173

7 ответов:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3 ключевых отличия:

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

    • SimpleDB создает индекс для" каждого " поля в таблице.
    • DynamoDB вы должны установить поля индексирования перед созданием базы данных, и не может быть изменен.
  2. цены:

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

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

в простых терминах оба хранилища данных являются NoSql.

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

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

Я считаю, что основное различие в простой БД против Динамо БД являются

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