Amazon SimpleDB против Amazon DynamoDB


204

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

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

Ответы:


179

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

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

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

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

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

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

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

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

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


27

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


27
пост понравился - не мешало бы обобщить его здесь
nik.shornikov

пост тоже понравился. @ Мейсон, что ты думаешь о том, как SimpleDCB медленно исчезал из консоли продукта AWS? Вы все еще используете SimpleDB или мигрировали?
Дэвид Роббинс

1
@DavidRobbins SimpleDB, возможно, был объявлен устаревшим AWS, но он все еще там и идеально подходит для моих модальных данных. Я еще не перенес свой код и не планирую этого делать. Но для новых продуктов я выбираю другие базы данных, такие как DynamoDB или MySQL.
Мейсон Чжан

Связанный сайт был помечен Sophos как вредоносное ПО. Будьте осторожны.
Ян Гилхэм

1
@IanGilham спасибо за напоминание. Я снова проверяю отчет о сканировании ( virustotal.com/en/url/… ): 1/68 помечает сайт как вредоносное. Так что это может быть что-то не так с Sophos. Кстати, этот сайт на самом деле управляется google blogspot.
Мейсон Чжан

18

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

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


2
Не могу улучшить на идеальном!
Divybyzero

10

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

  1. индексирование

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

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

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

5

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

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

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


0

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

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

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


0

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

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

0

Это два основных различия, о которых вы должны знать

1: SimpleDB has a strict storage limitation of 10 GB. However, DynamoDB has no storage limitations for the data. It is highly scalable in terms of both storage and computation.

2:SimpleDB can handle max up to 25 Write Operations/Second. No such limit in DynamoDB.

0

Это два основных различия, о которых вы должны знать.

С DynamoDB Вы можете создавать приложения с практически неограниченной пропускной способностью и хранилищем. Это не относится к SimpleDB.

  • 1: СТРОГО ОГРАНИЧЕНИЕ ХРАНЕНИЯ 10 ГБ

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

  • 2: МАКС. ДО 25 ЗАПИСЕЙ / ВТОРОЙ

SimpleDB может обрабатывать до 25 операций записи в секунду . В DynamoDB такого ограничения нет.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.