Подтвердить что ты не робот

Является SimpleDB похожим на MongoDB? Являются ли они базами данных типа/значения?

Является ли SimpleDB похожим на MongoDB?

4b9b3361

Ответ 1

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

SimpleDB

  • Служба Amazon размещена, поддерживается и масштабируется Amazon. Вам выставлен счет за то, что вы используете каждый месяц за пределами бесплатного уровня.
  • Все данные реплицируются в фоновом режиме в нескольких центрах обработки данных.
  • Все реплики могут обслуживать прямые запросы
  • После сбоя сети или сервера любой из узлов синхронизации будет автоматически повторно синхронизироваться.
  • Репликация фона приводит к возможной согласованности, но более высокой (теоретической) доступности.
  • Все данные сохраняются как пары строк/строк, каждая из которых связана с ItemName
  • Каждый элемент ограничен половиной мегабайта (каждое имя или значение может быть только 1024 байта, каждый элемент содержит 256 пар имя/значение), и каждый домен может содержать 10 ГБ
  • Эти ограничения делают его подходящим для наборов данных, которые можно разбить на мелкие кусочки.
  • SimpleDB оптимизирован для многих небольших запросов, выполняемых параллельно
  • Пределы пропускной способности для каждого домена данных
  • Горизонтальная масштабируемость достигается путем распространения ваших данных по большему количеству доменов.
  • Все значения атрибутов индексируются автоматически, составные индексы не существуют (но могут быть смоделированы)
  • Запросы выполняются с использованием языка запросов (Select Stripped down) SQL Select-like

MongoDB

  • Продукт с открытым исходным кодом, который вы устанавливаете и поддерживаете на своих серверах.
  • Данные могут быть реплицированы в режиме ведущий-ведомый
  • Только ведущий может обслуживать запросы живой записи, ведомые могут обслуживать запросы (за исключением нерекомендовать режим с ограниченным мастер-мастером)
  • После сбоя сети или сервера или когда реплика отстает слишком далеко, всегда потребуется вмешательство оператора.
  • Единственный мастер сильно согласован.
  • Все данные хранятся в виде сериализованных документов JSON, что позволяет использовать большой набор типов данных
  • Каждый документ ограничен 4 МБ, более крупные документы могут быть сохранены с использованием специальной системы документирования документов.
  • Наиболее подходит для небольших и средних данных и небольших двоичных объектов.
  • Пределы пропускной способности продиктованы MongoDB и вашим оборудованием
  • Вертикальная масштабируемость через больший сервер, потенциал для будущей горизонтальной масштабируемости в вашем собственном кластере серверов с помощью модуля шейпинга, который в настоящее время находится в разработке.
  • Идентификатор документа индексируется автоматически. Индексы могут быть созданы и удалены по мере необходимости. Индексы могут быть для одного ключа или соединения.
  • Запросы выполняются с использованием языка запросов стиля JSON.

Ответ 2

попробуйте проверить эту ссылку MongoDB vs. SimpleDB это сетка сравнения. Я надеюсь, что это будет полезно для вас.

Ответ 3

SimpleDB описывается как:

Модель данных проста:

  • Большие коллекции предметов, организованных в области.
  • Элементы немного хеша таблицы, содержащие атрибуты ключа, пары значений.
  • Атрибуты могут быть искали различные лексикографические запросы.

MongoDB бит проще:

База данных управляет коллекциями JSON-подобные документы, которые хранятся в двоичном формате, называемом BSON.

Ответ 4

У меня есть приличное знание mongodb и только начал работать с SimpleDB. Поэтому в первую очередь оба они не являются хранилищем ключевого значения. Mongodb и SimpleDB являются основанной на документе базой данных nosql, которые не содержат схемы. Это означает, что вам не нужно создавать схему для таблицы, прежде чем вводить в нее данные (в основном это означает, что вы можете хранить там все, что захотите).

В основном здесь сходство заканчивается. Я буду использовать S для SimpleDB и M для Mongo.

  • M написано на С++, S написано в Erlang (не самый быстрый язык)
  • M является открытым исходным кодом, установленным повсеместно, S является собственностью, может работать только на Amazon AWS. Вы также должны заплатить за целую кучу сотрудников за S
  • S имеет целую группу странные ограничения. M ограничения являются более разумными. Наиболее странные ограничения:
    • Максимальный размер домена (таблица) - 10 ГБ.
    • длина значения атрибута (размер поля) - 1024 байта.
    • максимальное количество элементов в ответе Select - 2500
    • максимальный размер ответа для выбора (максимальное количество данных S может вернуть вас) - 1Mb
  • S поддерживает только несколько языков (java, php, python, ruby,.net), M поддерживает путь больше
  • обе поддерживают REST
  • S имеет синтаксис запроса, очень похожий на SQL (но менее мощный). С помощью M вам нужно изучить новый синтаксис, который выглядит как json (также прямо изучать основы).
  • с M вам нужно узнать, как вы архитектируете свою базу данных. Поскольку многие люди думают, что схематичность означает, что вы можете выбросить какой-либо барахло в базу данных и извлечь ее с легкостью, они могут быть удивлены тем, что Junk in, Junk out maxim работает. Я предполагаю, что то же самое в S, но не может утверждать это с уверенностью.
  • оба не допускают регистр без учета регистра. В M вы можете каким-то образом использовать regex (уродливый/без индекса) преодолеть это ограничение без введения дополнительной логики поля ввода/приложения.
  • в S-сортировке можно выполнить только в одном поле
  • из-за 5s timelimit count in S может вести себя странно. Если прошло 5 секунд и запрос еще не закончен, вы получите частичное число и токен, который позволит продолжить запрос. Логика приложения отвечает за сбор всех этих данных подведением итогов.
  • все это строка UTF-8, что заставляет боль в попке работать с не строковыми значениями (например, числа, даты ) в поддержке типа S. M путь более богатый.
  • у обоих нет транзакций и соединений
  • M поддерживает сжатие, что действительно полезно для nosql-хранилищ, где одно и то же имя поля снова сохраняется снова.
  • S поддерживает только один индекс, M имеет один, составной, многокварковый, геопространственный и т.д..
  • поддержка и репликация поддержки

Одна из самых важных вещей, которую вы должны учитывать, это то, что SimpleDB имеет очень рудиментарный язык запросов. Даже базовые вещи, такие как group by, sum average, distinct, а также обработка данных не поддерживаются, поэтому функциональность на самом деле не намного богаче, чем Redis/Memcached. С другой стороны, Mongo поддерживает богатый язык запросов.