Home » Новые способы переноса данных MongoDB и приложений в Azure Cosmos DB

Новые способы переноса данных MongoDB и приложений в Azure Cosmos DB

Изображение: deagreez/Adobe Stock

Cosmos DB, получившая название «база данных планетарного масштаба» от Microsoft, является одной из основных служб Azure, поддерживающей как собственные приложения, так и ваши. Разработанная для разработки распределенных приложений, Cosmos DB предлагает ряд моделей согласованности и, что более интересно, ряд различных личностей, которые позволяют вам использовать ее как любую из набора знакомых баз данных.

К ним относятся API-интерфейс, совместимый с PostgreSQL, графовая база данных, такая как Neo4j, и собственная модель базы данных документов, а также поддержка знакомой распределенной базы данных Apache Cassandra. Одна из самых популярных личностей — это набор API-интерфейсов, которые призваны предложить большинство функций популярной базы данных MongoDB NoSQL. Последний вариант интересен тем, что позволяет быстро взять существующие локальные современные приложения и быстро перенести их в облако, готовые к изменению архитектуры в глобальном масштабе.

Перейти к:

Общие сведения о стоимости выставления счетов за единицы запросов в Cosmos DB

Есть одна проблема, которая часто сбивает с толку разработчиков, использующих более традиционную среду разработки: Cosmos DB использует концепцию единиц запросов для обработки счетов в дополнение к стандартной стоимости хранения Azure.

RU — это способ описания и взимания платы за то, как база данных, такая как Cosmos DB, использует ресурсы Azure. Он объединяет вычисления, ввод-вывод и память, используя ресурсы для чтения 1 КБ одного элемента в качестве основы того, что лучше всего можно рассматривать как собственную внутреннюю валюту Cosmos DB.

При однократном чтении одного элемента, измеряемом как 1 ЕЗ, все остальные операции оплачиваются аналогичным образом, объединяя их действия и использование ресурсов как значение в ЕЗ. Вы покупаете наборы RU, которые затем тратите на операции с базой данных, подобно покупке токенов для такой игры, как Roblox. RU можно использовать для управления операциями с установленным числом в секунду, доступным для ваших операций, или использовать для оплаты бессерверных операций. Вы также можете использовать RU, чтобы позволить вашей базе данных масштабироваться по мере необходимости, хотя это означает, что особенно загруженное приложение может внезапно стать очень дорогим для запуска.

Read more:  Сенатору Менендесу предъявлены новые обвинения во взяточничестве после того, как дома нашли золото и наличные деньги

Модель RU, хотя и логична для облачной службы, затрудняет прогнозирование стоимости запуска Cosmos DB, если вы привыкли к традиционным моделям расчета стоимости. Хотя можно создать инструменты для прогнозирования затрат, вы должны учитывать больше, чем просто операции, используемые вашей базой данных, поскольку тип выбранной вами модели согласованности будет влиять на доступную пропускную способность.

Знакомство с виртуальными ядрами Cosmos DB

Теперь Microsoft предлагает альтернативу модели RU для разработчиков, переносящих свои приложения на базе MongoDB в Cosmos DB. Вместо того чтобы платить за ЕЗ и хранилище, теперь вы можете сосредоточиться на более привычном сочетании экземпляров приложений и назначенных дисков. Это дает вам доступ к модели, которая намного ближе к управляемой облачной службе MongoDB Atlas, обеспечивая более предсказуемую миграцию из локальной среды или других облаков.

Этот новый выпуск базы данных Microsoft NoSQL, доступный как Azure Cosmos DB для MongoDB vCore, является полноценной частью вашей инфраструктуры Azure, которая обеспечивает автоматическое сегментирование и интеграцию с интерфейсом командной строки Azure и другими инструментами управления.

Microsoft описывает это как способ «модернизировать MongoDB с помощью знакомой архитектуры». Цель состоит в том, чтобы предоставить как можно более близкий набор совместимых API, сохраняя при этом масштабируемость. Например, Microsoft сообщила нам,

«Azure Cosmos DB для MongoDB vCore позволяет выполнять более сложные запросы к базе данных, такие как полнотекстовый поиск, который используется в облачных чат-ботах».

Перенос приложений из MongoDB в Cosmos DB

Если у вас есть код, использующий язык запросов MongoDB для работы с вашими данными, он должен работать, как и раньше, с основным требованием — изменить любые конечные точки на соответствующий адрес Azure.

Read more:  Новые жалобы побудили NHTSA провести расследование по отзыву Ford Mach-E 2022 года.

Однако не все команды доступны в Cosmos DB, поскольку базовые функции не сопоставляются между двумя базами данных. Стоит обратить внимание на список поддерживаемых команд, особенно если вы полагаетесь на инструменты управления сеансом MongoDB, поскольку многие из них в настоящее время недоступны в Cosmos DB. Вам также придется переключить любую аутентификацию на собственные инструменты Azure.

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

Цены основаны на стандартной виртуальной инфраструктуре Azure с использованием систем высокой или низкой доступности. Если вам не нужна система высокой доступности, вы можете сэкономить до 50 % на цене высокой доступности. Базовое хранилище для системы vCore Cosmos DB составляет 128 ГБ, чего должно хватить для многих распространенных рабочих нагрузок. Вы можете начать с двух виртуальных ЦП и 8 ГБ ОЗУ и масштабировать до 32 с 128 ГБ ОЗУ.

Хотя большинство приложений будут работать с небольшими изменениями, например версия RU, версия vCore поддержки MongoDB Cosmos DB имеет некоторые отличия от официальных API. Мы спросили Microsoft, есть ли планы по расширению охвата в будущих выпусках, помимо перехода на vCore вместо serverless.

«В большинстве сценариев это делает две технологии полностью совместимыми. Судя по отзывам клиентов, одной из самых серьезных проблем, связанных с совместимостью между MongoDB и Azure Cosmos DB, была необходимость перепроектировать и изменить их базы данных MongoDB, чтобы они соответствовали архитектуре Azure Cosmos DB. В этом выпуске эта проблема устранена, поскольку две базы данных теперь имеют практически одинаковую «форму». Кроме того, у нас есть сильная совместимость функций между ними, и мы будем продолжать развертывать новые функции по мере того, как они выходят из предварительного просмотра и становятся общедоступными», — ответил представитель.

Read more:  Член палаты представителей Эрл Блюменауэр решает не добиваться переизбрания

Эта новая опция MongoDB должна упростить перенос рабочей нагрузки MongoDB, которую вы уже написали, в Cosmos DB и тем самым освободить себя от необходимости запускать собственную инфраструктуру MongoDB — или позволить вам консолидировать использование Cosmos DB в качестве облачной базы данных, перенося базы данных из других облачных провайдеров в Azure, где вы можете использовать все другие ресурсы и службы Azure, которые не предлагают более мелкие провайдеры, такие как MongoDB.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.