it-swarm.com.ru

Каковы плюсы и минусы DynamoDB по сравнению с другими базами данных NoSQL?

Мы используем дополнение базы данных MongoDB на Heroku для нашего продукта SaaS. Теперь, когда Amazon запустил DynamoDB, сервис облачных баз данных, мне стало интересно, как это изменит ландшафт предложений NoSQL?

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

40
rafidude

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

Кроме того, поскольку он создан и управляется Amazon, вы можете предположить, что они разработали его так, чтобы он очень хорошо работал со своей инфраструктурой, поэтому можно предположить, что производительность будет на высшем уровне. В дополнение к тому, что они специально созданы для их инфраструктуры, они решили использовать SSD в качестве хранилища, поэтому с самого начала пропускная способность диска будет значительно выше, чем в других хранилищах данных на AWS с поддержкой жесткого диска.

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

10
Bryan Migliorisi

Я думаю, что ключевым отличием является то, что MongoDB - это программное обеспечение, которое вы можете установить где угодно (в том числе в AWS или в другой облачной службе или внутри компании), где DynamoDB - это SaaS, доступный исключительно в качестве хост-сервиса от Amazon (AWS). ). Если вы хотите сохранить возможность размещения своего приложения внутри компании, DynamoDB не подходит. Если хостинг за пределами AWS не рассматривается, то DynamoDB должен быть вашим выбором по умолчанию, если только не рассматриваются особые функции.

5
gh02038

В следующей ссылке есть таблица, в которой обобщены атрибуты DynamoDB и Cassandra:

http://www.datastax.com/dev/blog/Amazon-dynamodb

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

ОБНОВЛЕНИЕ 1 (06/04/2013)

18.04.2013 Amazon объявила о поддержке локальных вторичных индексов, что сделало DynamoDB великолепным:

http://aws.Amazon.com/about-aws/whats-new/2013/04/18/Amazon-dynamodb-announces-local-secondary-indexes/

5
barbolo

Использование MongoDB через надстройку для Heroku эффективно превращает MongoDB в продукт SaaS.

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

Это очень сложно сделать. Каждый провайдер будет иметь разные уровни обслуживания в разных ценовых категориях, и можно рассматривать вариант запуска его на своем собственном оборудовании локально для целей разработки, как желанный вариант.

5
Tyler Brock

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

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

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

Как и большинство решений БД, на самом деле все сводится к проекту путем принятия решения о том, что лучше для вас.

Я с нетерпением жду дополнительной информации о продукте, хотя сейчас он находится в бета-версии, и я бы не стал прыгать с корабля, чтобы принять последнюю и лучшую версию только для того, чтобы стать тестером :)

3
Petrogad

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

3
Kai G

Amazon DynamoDB выглядит довольно неплохим решением для NoSQL. Это быстро и довольно просто в использовании. Кроме наличия учетной записи AWS, на самом деле не требуется никакой настройки или обслуживания. Набор функций и API в настоящее время довольно мал по сравнению с MongoDB/CouchDB/Cassandra, но я, вероятно, ожидаю, что он будет расти со временем, когда будет получена обратная связь от сообщества разработчиков. Прямо сейчас все официальные пакеты AWS SDK включают в себя клиент DynamoDB.

1
Jeremy Lindblom

Pros

  1. Lightning Fast (использует твердотельные накопители внутри)
  2. Действительно (действительно) надежно. (вероятность ошибок при записи ниже)
  3. Бесшовное масштабирование (нет необходимости делать ручной шардинг)
  4. Работает как веб-сервисы (без сервера, без настройки, без установки)
  5. Легко интегрируется с другими функциями AWS (может хранить всю таблицу в S3 или использовать EMR и т.д.)
  6. Репликация управляется изнутри, поэтому вероятность случайной потери данных незначительна.

Cons

  1. Очень (очень) ограниченные запросы.
  2. Сканирование - это больно (помню, однажды сканирование через Java длилось 6 часов)
  3. предварительно заданная пропускная способность, что означает резкое увеличение сверх установленной пропускной способности.
  4. пропускная способность разделена, так как таблица обрабатывается внутренне. (что означает, что если у вас была пропускная способность 1000 и ее разделение на две части, и если вы читаете только самые последние данные (из одной части), то ваша пропускная способность чтения составляет только 500)
  5. Нет присоединений, ограниченная индексация разрешена (в основном 2).
  6. Нет просмотров, триггеров, сценариев или хранимых процедур.

Это действительно хорошая альтернатива хранилищу сессий в масштабируемом приложении. Другим хорошим использованием будет регистрация/аудит в обширной системе. НЕ предпочтительна для многофункциональных приложений с частыми улучшениями или изменениями. 

0
Rahul Kumar