Первый взгляд: Azure Cosmos DB

Опубликовано: 5 Марта, 2023
Первый взгляд: Azure Cosmos DB

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

Небольшой эксперимент

Эта статья содержит анимированные GIF-файлы для предварительного просмотра различных функций Cosmos DB. Пожалуйста, оставьте комментарий и дайте мне знать, нравится ли вам анимация или она просто вызывает у вас головную боль. Я с нетерпением жду ваших отзывов!

Что такое Космос БД?

Cosmos DB — это глобально распределенная мультимодельная база данных Microsoft. Он разработан с учетом производительности, предлагая невероятно высокую скорость передачи данных и возможность масштабирования до нескольких регионов. Конечно, Cosmos DB предоставляет ваши стандартные таблицы в стиле SQL и методы извлечения данных, но под капотом гораздо больше. Например, вы также можете создавать контент, графики и базы данных MongoDB.

[tg_youtube video_id="aAy635iBB50"]

Поставщики облачных услуг должны предлагать решения для баз данных, которые легко создавать, управлять и масштабировать, поэтому Microsoft знает, что Cosmos DB важна для будущего Azure. Microsoft предлагает лучшие в отрасли гарантии уровня обслуживания. На момент написания этой статьи вот лишь некоторые из них*:

  • Доступность: соглашение об уровне обслуживания в течение 99,99 % времени безотказной работы для каждой операции с данными и плоскостью управления.
  • Пропускная способность: 99,99% запросов выполняются успешно
  • Задержка: 99,99% из задержек <10 мс на 99-м процентиле
  • Непротиворечивость: 100 % запросов на чтение будут соответствовать гарантии согласованности для запрошенного вами уровня согласованности.

*Приведенные выше цифры взяты с веб-сайта Microsoft Azure Cosmos.

Терминология

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

Вот несколько терминов, которые я выучил по ходу дела, и надеюсь, они помогут вам освоиться:

  • Учетная запись базы данных = database: в документации Cosmos DB вы увидите инструкции по созданию , но не найдете упоминаний об этом на портале Azure. Когда Microsoft говорит вам создать , они имеют в виду .
  • Сущность = строка таблицы: поскольку база данных может быть столбчатой, графической или документной, Microsoft называет эти элементы сущностями. Я стал сравнивать объект со строкой данных в таблице, даже если это может быть документ или какой-либо другой набор данных.
  • Расположение/регионы = расположение физических центров обработки данных: у Microsoft есть центры обработки данных, расположенные по всему миру. Вы можете выбрать регион для хранения базы данных, например . Хотя поначалу это может быть очевидным, я указываю на это, потому что вы можете реплицировать его в несколько регионов постфактум (подробнее об этом позже).

Есть еще много всего, что нужно узнать, но это важные пункты, о которых вы должны знать, когда только начинаете.

Создание учетной записи базы данных

Вы можете создать базу данных с помощью портала Azure, через интерфейс командной строки, с помощью PowerShell или программно. Когда вы создаете учетную запись базы данных, вам нужно будет присвоить ей уникальный идентификатор (имя базы данных), выбрать API (тип базы данных), выбрать свою подписку, создать или выбрать группу ресурсов, а затем выбрать расположение.

Учебники по быстрому старту

Полезной функцией Cosmos DB является возможность создавать образцы данных и загружать облегченный проект Visual Studio, который помогает подключаться к базе данных и выполнять операции CRUD (создание, чтение, обновление, удаление). После того, как вы загрузите файл, вы найдете ссылки на учебные пособия, которые помогут вам использовать проект.

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

Масштабирование репликации

Microsoft рекламирует Cosmos DB как . Давняя мечта многих ИТ-специалистов. Cosmos DB позволяет выбрать базу данных и реплицировать ее в дополнительные регионы несколькими щелчками мыши. Хотя вам нужно будет подумать, как именно вы определяете свое приложение, Microsoft хочет максимально упростить масштабирование вашего приложения.

Допустим, ваша база данных находится в западном регионе США, но ваше приложение внезапно запускается в Бразилии, и после просмотра журналов производительности вы заметили, что приложение слишком долго загружает данные в этом регионе. Все, что вам нужно сделать, это зайти на портал Azure, открыть базу данных, щелкнуть карту и добавить регион . Azure возьмет на себя всю работу по репликации вашей базы данных, чтобы вы могли сосредоточиться на добавлении функций и не беспокоиться [так много] о распределенном характере вашей базы данных.

Хранимые процедуры, триггеры и функции

Очень часто ваше приложение не будет выполнять определенную бизнес-логику. Для этого есть множество причин, поскольку бизнес-логика уникальна только для небольшого подмножества вариантов использования или требует слишком большого сетевого трафика.

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

На момент написания этой статьи Cosmos DB находится в производстве, но Data Explorer все еще находится в стадии предварительной версии (это означает, что он все еще содержит большие ошибки). Тем не менее, он позволяет добавлять триггеры, функции и хранимые процедуры. Для этого перейдите к учетной записи базы данных Azure, выберите таблицу (или коллекцию), а затем добавьте триггер, функцию или хранимую процедуру.

В Azure Cosmos DB есть много других новых или улучшенных функций, и я ожидаю, что в ближайшие месяцы их станет больше. Если вы разработчик, работающий с таблицами, то я настоятельно рекомендую вам изучить Table API. Вы можете найти ссылку здесь.