it-swarm.com.ru

Amazon SimpleDB против Amazon DynamoDB

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

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

187
Bilgin Ibryam

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

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

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

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

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

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

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

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

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

166
Steffen Opel

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

23
Mason Zhang

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

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

11
saille

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

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

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

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

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

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

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

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

5
kalyanmysore

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

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

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

0
Gayan Hewa

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

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