Таблица Azure против MongoDB в Azure - PullRequest
64 голосов
/ 03 ноября 2011

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

Ответы [ 7 ]

72 голосов
/ 03 ноября 2011

Table Storage - это базовая функция хранилища Windows Azure, предназначенная для масштабирования ( 100 ТБ 200 ТБ 500 ТБ на учетную запись), долговечной (с тройной репликацией в центре обработки данных, с возможностью георепликации для другой центр обработки данных) и без схемы (каждая строка может содержать любые свойства, которые вы хотите). Ряд расположен по ключу раздела + ключу строки, обеспечивая очень быстрый поиск. Весь доступ к хранилищу таблиц осуществляется через четко определенный REST API, который можно использовать на любом языке (с 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.

35 голосов
/ 16 февраля 2012

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

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

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

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

9 голосов
/ 07 апреля 2015

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

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

См .: http://www.mongodb.com/partners/cloud/microsoft или https://azure.microsoft.com/en-us/blog/announcing-new-mongodb-instances-on-microsoft-azure/

См. (включая цены): https://azure.microsoft.com/en-us/marketplace/partners/mongolab/mongolab/

5 голосов
/ 28 марта 2014

Мой первый выбор - 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-limits/


Второй выбор - многие облачные провайдеры, в том числе 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

2 голосов
/ 14 апреля 2016

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

1 голос
/ 04 ноября 2015

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

0 голосов
/ 06 февраля 2017

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...