На конференции Ignite 2021 показали новые функции Cosmos DB

Новая Cosmos DB на Ignite 2021
Светлана Комарова

Светлана Комарова

Автор статьи. Системный администратор, Oracle DBA. Информационные технологии, интернет, телеком. Подробнее.

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


Оглавление статьи[Показать]


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

Одной из этих ключевых служб является Azure Cosmos DB, которую Microsoft называет своей базой данных «планетарного масштаба». Созданный для поддержки нескольких API-интерфейсов баз данных и более практичных моделей согласованности, это мощный инструмент, который может работать как база данных документов NoSQL, реляционное хранилище SQL или графовая БД. Недавние изменения также сделали этот продукт более доступным, предлагая бесплатный уровень для относительно простых приложений с низкой ресурсоемкостью и бессерверный вариант, который позволяет вам оплачивать ресурсы по мере их использования. Хотя бесплатный вариант ограничивает ваш географический охват, нет никакой разницы в возможностях между различными вариантами Cosmos DB, что позволяет вам переходить с уровня на уровень по мере изменения ваших данных и потребностей в масштабировании.

 

API MongoDB 4.0 для многодокументных транзакций

Microsoft продолжает развивать Cosmos DB для поддержки других аспектов своей платформы Azure, а также новых выпусков различных API-интерфейсов, используемых для доступа к основной службе. На выставке Ignite в марте 2021 года компания анонсировала о серии крупных обновлений Cosmos DB, улучшающих поддержку API Mongo DB. В то же время "Космос" использует внутренний канал изменений Cosmos DB, чтобы представить инструменты для аналитики в реальном времени с помощью Azure Synapse, и добавлять интегрированное непрерывное резервное копирование и повысить безопасность с помощью контроля доступа на основе ролей.

MongoDB остается популярной базой данных документов NoSQL, а Cosmos DB предлагает совместимый набор API, отслеживающих развитие MongoDB. В настоящее время он поддерживает MongoDB 3.2 и 3.6, что позволяет быстро переносить существующие приложения из локальных или автономных экземпляров MongoDB в Cosmos DB. Данные можно импортировать в Cosmos DB, а приложения могут использовать конечные точки Cosmos DB без значительных изменений. Cosmos DB реплицирует только проводной протокол MongoDB, поэтому вам нужно будет воссоздать все внутренние процедуры, поскольку механизм Cosmos DB не размещает экземпляры MongoDB.

MongoDB обновила свой API до версии 4.0 в 2018 году, добавив поддержку многодокументных транзакций. Microsoft обновила Cosmos DB для работы с API 4.0, добавив те же функции работы с несколькими документами. В более ранних версиях API основное внимание уделялось работе с одним документом JSON за раз, при этом каждая операция представляла собой одну атомарную транзакцию. Такой подход подходит для простых приложений, но на практике крупномасштабным приложениям необходимо обновлять или создавать несколько документов одновременно, что очень похоже на реляционную базу данных, работающую с несколькими таблицами.

Базы данных NoSQL работают быстро, и использование документов JSON, скажем, для хранения данных о продуктах или клиентах или размещения корзины покупок может ускорить работу приложений электронной коммерции. Любые пользовательские транзакции должны охватывать множество документов, обновлять записи о клиентах, уровни запасов и т. Д. Вы можете написать код для обертывания нескольких операций, но это создает узкое место для вашего приложения, ожидая завершения каждой транзакции, прежде чем двигаться дальше. Если вы используете Cosmos DB и выбираете этот путь к операциям с данными, возникает дополнительная проблема, поскольку каждая транзакция будет потреблять единицы ресурсов, увеличивая затраты в инстансах с оплатой по мере использования или уменьшая пула доступных единиц запроса для уже предоплаченых экземпляров (инстансов).

Поддерживая API MongoDB 4.0, разработчики Cosmos DB теперь могут доставлять эти записи и обновления за одну операцию, упрощая код, который вам нужно писать, без изменения базовой структуры вашей базы данных. Поскольку большинство разработчиков Cosmos DB хранят общие документы в одном сегменте, воздействие на работа с несколькими документами в одной транзакции нет или оно минимально. Вы должны быть осторожны при работе с шардами, но это ничем не отличается от любой операции с несколькими сегментами, где согласованность может быть проблемой. Хорошие методы проектирования Cosmos DB сводят любой риск к минимуму и должны помочь обеспечить надежные и быстрые операции с несколькими документами.

Будет интересно посмотреть, как Microsoft развивает свои API-интерфейсы MongoDB для Cosmos DB в будущем, поскольку в выпуске 4.2 добавлена поддержка распределенных транзакций между сегментами, что должно обеспечить поддержку многодокументных транзакций в очень больших базах данных.

 

Добавление индексов Cosmos DB в Azure Synapse

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

Лента изменений лежит в основе двух новых основных функций Cosmos DB, обеспечивающих работу как Synapse Link, так и его непрерывного резервного копирования. Поскольку Azure все больше внимания уделяет аналитике через свою платформу Synapse, добавление поддержки Cosmos DB является логичным шагом. Microsoft работает над тем, чтобы сделать Synapse способом предоставления аналитики в масштабе озера данных без необходимости использования сложных конвейеров ETL, замедляющих импорт. Вместо этого, предоставляя ссылки непосредственно на хранилища данных, он может помочь обеспечить аналитику в реальном времени, которая может отображаться на панелях мониторинга Power BI (в крупных проектах Cosmos может потребоваться использование новых экземпляров Power BI Premium G2 для обработки данных Azure Synapse).

Несмотря на то, что Cosmos DB использует API-интерфейсы для предоставления разных типов данных разным конечным точкам, он сохраняет одну и ту же модель внутренней базы данных документов. Такой подход позволяет Azure Synapse получать доступ к каналу изменений Cosmos DB для создания собственного внутреннего индекса. Ведение индекса в Synapse ускоряет запросы, гарантируя, что ваша аналитика получит доступ к последним данным, не требуя дорогостоящей и медленной репликации из Cosmos DB в озеро данных Synapse. Использование веб-канала изменений для создания индекса сводит к минимуму влияние на Cosmos DB, работая в фоновом режиме для экспорта веб-канала и поддержания его в виде столбцов в Synapse.

Использование Synapse, таким образом, логически разделяет ваши аналитические и операционные ресурсы. Разработчики могут продолжать работать с API Cosmos DB, как и всегда, в то время как бизнес-аналитики и специалисты по обработке данных могут использовать такие инструменты, как Synapse Studio и Azure Data Explorer, для создания и тестирования аналитических запросов перед их экспортом в инструменты визуализации. Никому не нужно отказываться от своих инструментов или изучать новые способы работы.

 

Использование канала изменений для непрерывного резервного копирования

Канал изменений (change feed) Cosmos DB является ключом к еще одной новой функции: непрерывному резервному копированию и восстановлению на определенный момент времени. Имея журнал каждого изменения в вашей базе данных, вы можете воссоздать базу данных в случае сбоя, восстанавливая ее до определенного состояния в нужное времени, если вы определили конкретную транзакцию как причину сбоя или если она содержит вредоносные данные. Другие новые функции безопасности, включая доступ на основе ролей на базе Azure Active Directory, призваны уменьшить несанкционированный доступ к данным. В то же время Microsoft поддерживает Cosmos DB в своих инструментах управления данными Azure Purview.

 

Итоги

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

Вас заинтересует / Intresting for you:

Oracle и SailGP объявили о рас...
Oracle и SailGP объявили о рас... 1872 просмотров Андрей Васенин Wed, 21 Apr 2021, 18:12:00
Эксперты обсудили передовые ме...
Эксперты обсудили передовые ме... 1389 просмотров Андрей Васенин Tue, 16 Mar 2021, 10:13:51
Сертификация Oracle Cloud Deve...
Сертификация Oracle Cloud Deve... 2039 просмотров Андрей Васенин Fri, 13 Mar 2020, 17:18:28
Главные препятствия на пути вн...
Главные препятствия на пути вн... 1619 просмотров Андрей Васенин Wed, 21 Apr 2021, 17:49:44
Войдите чтобы комментировать

1dz аватар
1dz ответил в теме #10663 1 год 7 мес. назад
А каковы перспективы базы данных Cosmos DB сейчас? Кто-то использует в серьезных проектах?