it-swarm.com.ru

Таблица Azure против MongoDB в Azure

Я хочу использовать базу данных NoSQL в Windows Azure, и объем данных будет очень большим. Может ли хранилище таблиц Azure или база данных MongoDB, работающая с использованием рабочей роли, предложить лучшую производительность и масштабируемость? Кто-нибудь использовал MongoDB в Azure, используя рабочую роль? Поделитесь своими мыслями об использовании MongoDB в Azure через хранилище таблиц Azure.

64
Shiju

Хранилище таблиц - это основная функция хранилища Windows Azure, предназначенная для масштабирования (100TB200 TB 500 ТБ на учетную запись), надежный (с тройной репликацией в центре обработки данных, опционально привязанный к другому центру обработки данных) и без схемы (каждая строка может содержать любые свойства, которые вы хотите). Ряд расположен по ключу раздела + ключу строки, обеспечивая очень быстрый поиск. Весь доступ к хранилищу таблиц осуществляется через четко определенный API-интерфейс REST, который можно использовать на любом языке (с помощью SDK, построенных на основе API-интерфейсов REST, уже существующих для .NET, PHP, Java). , Python & Ruby).

MongoDB - это документно-ориентированная база данных. Чтобы запустить его в Azure, вам необходимо установить MongoDB на веб/рабочие роли или виртуальную машину, указать ее на облачный диск (таким образом, предоставляя букву диска) или подключенный диск (для виртуальных машин Windows/Linux), при необходимости включить ведение журнала. (что я бы порекомендовал), и при необходимости определите внешнюю конечную точку для вашего использования (или получите доступ к ней через виртуальную сеть). Кстати, облачный диск/подключенный диск фактически хранится в BLOB-объекте Azure, что обеспечивает такую ​​же надежность и георепликацию, что и таблицы Azure.

Сравнивая их, помните, что Table Storage - это Storage-as-a-Service: вы просто получаете доступ к известной конечной точке REST. С MongoDB вы несете ответственность за поддержание базы данных (например, всякий раз, когда MongoDB Inc (ранее 10gen) выпускает новую версию MongoDB, вам необходимо соответствующим образом обновить свой сервер).

Что касается альфа-версии MongoDB Inc, на которую указывает jtoberon: Если вы внимательно посмотрите на нее, вы увидите несколько ключевых вещей:

  • Настройка предназначена для автономного экземпляра mongodb, без наборов реплик или осколков. Что касается наборов реплик, вы по-прежнему получаете несколько преимуществ, используя автономную версию, благодаря тому, как работает хранилище BLOB-объектов.
  • Чтобы обеспечить высокую доступность, вы можете запустить несколько экземпляров. В этом случае только один экземпляр обслуживает базу данных, а один является "горячим резервом", который запускает процесс mongod, как только происходит сбой другого экземпляра (для перезагрузки обслуживания, сбоя оборудования и т.д.).

Хотя оболочка Windows Azure от 10gen по-прежнему считается альфа-версией, mongod.exe - нет. Вы можете запустить mongod exe точно так же, как любой другой Windows exe. Это всего лишь код управления запуском, и это демонстрирует реализация alpa.

РЕДАКТИРОВАТЬ 2011-12-8: Это больше не в альфа-состоянии. Вы можете загрузить последний проект MongoDB + Windows Azure здесь , который обеспечивает поддержку набора реплик.

Для производительности, я думаю, вам нужно сделать несколько тестов. Сказав это, рассмотрите следующее:

  • Получая доступ к Table Storage или MongoDB, скажем, из веб-роли, вы все равно обращаетесь к системе хранения Windows Azure.
  • MongoDB использует много памяти для собственного кэша. По этой причине многие крупномасштабные системы MongoDB развертываются на больших размерах экземпляров. Для доступа к табличному хранилищу у вас не будет такого же размера памяти.

РЕДАКТИРОВАТЬ 7 апреля 2015 г. Если вы хотите использовать базу данных на основе документов в качестве услуги, Azure теперь предлагает DocumentDB.

72
David Makogon

Я использовал оба.

Таблицы Azure: очень просто, быстро, очень сложно писать даже простые запросы.

Mongo: работает хорошо, много возможностей для запросов, требуется несколько экземпляров для надежности.

Короче говоря, если ваши запросы действительно просты (key-> value), вы должны выполнить сравнение затрат (в основном количество транзакций по сравнению с хранилищем и стоимостью размещения Mongo в Azure). Я предпочел бы пойти на хранение таблицы для этого. Если вам нужны более сложные запросы и вы не хотите переходить на SQL Azure, вероятно, Mongo - ваш лучший выбор.

35
pierrecouzy

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

Обратите внимание, что теперь MongoDB предлагается как полностью управляемый сервис в Azure. (официально в бете по состоянию на апрель 15 года)

См .: http://www.mongodb.com/partners/cloud/Microsoft или https://Azure.Microsoft.com/en-us/blog/announcing-new-mongodb -instances-на-Microsoft-лазури /

Смотрите (включая цены): https://Azure.Microsoft.com/en-us/marketplace/partners/mongolab/mongolab/

9
kalyanmysore

Мой первый выбор - AzureTables, потому что модель SAAS и низкая стоимость и SLA 99,99%
http://alexandrebrisebois.wordpress.com/2013/07/09/what-if-20000-windows-Azure-storage-transactions-per-second-isnt-enough/


некоторые ограничения .. http://msdn.Microsoft.com/en-us/library/windowsazure/jj553018.aspx


http://www.windowsazure.com/en-us/pricing/calculator/?scenario=data-management

или AzureSQL для малого бизнеса

DocumentDB http://Azure.Microsoft.com/en-us/documentation/services/documentdb/http://Azure.Microsoft.com/en-us/documentation/articles/ documentdb-пределы /


Второй выбор - многие облачные провайдеры, в том числе Amazon предлагают S3

или таблицы Google https://developers.google.com/bigquery/pricing


NTH выбор управлять ШОУ все сам не спит MongoDB хорошо я посмотрю снова первые два SAAS


Мой выбор, если я использую "CLOUD", я пойду на модель SAAS, насколько это возможно, "RENT-IT" ...

Вопрос в том, что нужно моему приложению - это AzureTables, DocumentDB или AzureSQL.
Документация по DocumentDB http://Azure.Microsoft.com/en-us/documentation/services/documentdb/

Как работает ценообразование Azure http://Azure.Microsoft.com/en-us/pricing/details/documentdb/

это весело http://www.documentdb.com/sql/demo

5
Valentin Petkov

На Build 2016 было объявлено, что DocumentDB будет поддерживать все драйверы MongoDB. Это решает некоторые проблемы с инструментами в DocDB, а также облегчает миграцию приложений Mongo.

2
Phil

Приведенные выше ответы все хороши, но реальный ответ зависит от ваших требований. Вам необходимо понять, какой объем данных вы обрабатываете, какие типы операций вы хотите выполнить с данными, а затем выбрать решение, которое соответствует вашим потребностям.

1
Jason Hogg - MSFT

Следует помнить, что хранилище таблиц Azure не поддерживает сложные типы данных . Оно поддерживает каждое свойство в сущности как строку, число, логическое значение или дату. и т. д. Нельзя хранить объект под ключ, что я считаю обязательным для NoSql DB. https://docs.Microsoft.com/en-us/rest/api/storageservices/fileservices/understanding-the-table-service-data-model выделите Типы недвижимости

0
Saisurya Kattamuri