Поделиться через


Распространенные варианты использования Azure Cosmos DB

Область применения: Nosql Mongodb Кассандра Гремлин Таблица

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

Ознакомившись с данной статьей, вы сможете ответить на следующие вопросы.

  • Каковы распространенные примеры использования Azure Cosmos DB?
  • Каковы преимущества использования Azure Cosmos DB с приложениями для розничной торговли?
  • Каковы преимущества использования Azure Cosmos DB в качестве хранилища данных для систем Интернета вещей?
  • Каковы преимущества использования Azure Cosmos DB с веб-приложениями и мобильными приложениями?

Введение

Azure Cosmos DB — это решение Azure для быстрой базы данных NoSQL с открытыми API для использования в любом масштабе. Она позволяет эластично (и независимо) масштабировать пропускную способность и ресурсы хранилища в любых географических регионах. Azure Cosmos DB — это первая глобально распределенная служба базы данных на современном рынке, предлагающая исчерпывающие соглашения об уровне обслуживания, включающие пропускную способность, задержку, доступность и согласованность.

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

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

  • Azure Cosmos DB изначально секционирует данные для обеспечения высокой доступности и масштабируемости. Azure Cosmos DB гарантирует доступность, пропускную способность, низкую задержку и согласованность в течение 99,99 % времени для всех учетных записей в пределах одного и нескольких регионов с нестрогой согласованностью и доступность для чтения на уровне 99,999 % для всех учетных записей базы данных в пределах нескольких регионов.
  • Azure Cosmos DB имеет хранилище на базе SSD с низкой задержкой и временем ответа, измеряемым в миллисекундах.
  • Поддержка в Azure Cosmos DB уровней согласованности, таких как согласованность с ограниченным устареванием, уровень сеанса, согласованность префиксов и согласованность в конечном счете, обеспечивает полную гибкость и привлекательное соотношение затрат и производительности. Azure Cosmos DB — единственная служба базы данных, обеспечивающая такую гибкость уровней согласованности.
  • Azure Cosmos DB имеет гибкую и понятную модель ценообразования, в которой место для хранения и пропускная способность измеряются независимо.
  • Модель зарезервированной пропускной способности Azure Cosmos DB позволяет вести учет по количеству операций чтения и записи, а не по ресурсам ЦП, памяти и операций ввода-вывода базового оборудования.
  • Структура Azure Cosmos DB допускает масштабирование для огромного числа запросов, измеряемых триллионами в день.

Эти особенности особенно полезны при работе с веб-приложениями, мобильными приложениями, играми и приложениями IoT, которым требуется малое время отклика и возможность обрабатывать большие объемы операций чтения и записи.

Интернет вещей и телематика

Варианты использования Интернета вещей (IoT) часто характеризуются одинаковым способом приема, обработки и хранения данных. Сначала этим системам требуется принять большие объемы данных от датчиков с различными языковыми стандартами. Затем они обрабатывают и анализируют потоковые данные для получения полезных сведений в реальном времени. После чего данные архивируются в "холодное" хранилище для пакетного анализа. Microsoft Azure предлагает мощные службы, которые можно использовать для решений на основе Интернета вещей, в том числе Azure Cosmos DB, Центры событий Azure, Azure Stream Analytics, Центр уведомлений Azure, Машинное обучение Azure, Azure HDInsight и Power BI.

Эталонная архитектура Интернета вещей Azure Cosmos DB.

Пакеты данных могут принимать Центры событий Azure, которые обеспечивают высокую пропускную способность с низкой задержкой. Принятые данные, которые необходимо обработать для анализа в реальном времени, можно передать в Azure Stream Analytics. Данные можно загрузить в Azure Cosmos DB для нерегламентированного запроса. После загрузки в Azure Cosmos DB данные готовы к запросам. Кроме того, с новыми данными и изменениями в существующих данных можно ознакомиться в веб-канале изменений. Канал изменений — это постоянный журнал, добавляющий только журнал, который сохраняет изменения в контейнерах Azure Cosmos DB в последовательном порядке. Данные или изменения данных в Azure Cosmos DB можно использовать как эталонные при анализе в реальном времени. Кроме того, данные можно уточнять и обрабатывать, подключая данные Azure Cosmos DB к HDInsight для выполнения заданий Pig, Hive и Map/Reduce. Обработанные данные затем загружаются обратно в Azure Cosmos DB для создания отчетов.

Пример решения Интернета вещей с помощью Azure Cosmos DB, Центров событий и Apache Storm см. в репозитории hdinsight-storm-examples на сайте GitHub.

Дополнительные сведения о предложениях Azure для Интернета вещей см. в видеоролике Create the Internet of Your Things (Создайте Интернет своих вещей).

Розничная торговля и маркетинг

Служба Azure Cosmos DB широко используется на платформах Майкрософт для электронной коммерции, которые работают под управлением Магазина Windows и XBox Live. Она также используется в розничной отрасли для хранения данных каталогов и поиска событий в конвейерах обработки заказов.

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

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

Эталонная архитектура каталога розничной торговли Azure Cosmos DB.

Azure Cosmos DB часто используется для источников событий, чтобы архитектуры, основанные на событиях, могли использовать функциональные возможности своего веб-канала изменений. Благодаря веб-каналу изменений нисходящие микрослужбы могут выполнять пошаговое считывание операций вставки и обновления (например, событий заказов) в Azure Cosmos DB. Эту функцию можно использовать для предоставления постоянного хранилища событий в качестве брокера сообщений для событий изменения состояния и рабочего процесса обработки заказа диска между многими микрослужбами (которые можно реализовать как бессерверные Функции Azure).

Кроме того, данные, хранящиеся в Azure Cosmos DB, можно интегрировать с HDInsight, чтобы анализировать большие данные с помощью заданий Apache Spark. Дополнительные сведения о соединителе Spark для Azure Cosmos DB см. в статье Запуск задания Spark с помощью Azure Cosmos DB и HDInsight.

Игры

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

Azure Cosmos DB используется играми, такими как The Walking Dead: No Man's Land by Next Games, и Halo 5: Guardians by 343 Industries. Azure Cosmos DB обеспечивает для разработчиков игр следующие преимущества.

  • Эта служба позволяет гибко масштабировать производительность. Это позволяет играм обновлять профили и статистику для как малого, так и большого числа одновременных игроков с помощью одного вызова API.
  • Azure Cosmos DB поддерживает операции чтения и записи, занимающие считаные миллисекунды, что помогает избежать любых задержек во время игры.
  • Автоматическое индексирование Azure Cosmos DB обеспечивает фильтрацию по нескольким разным свойствам в режиме реального времени. Например, можно найти игроков по внутренним идентификаторам или идентификаторам GameCenter, Facebook, Google либо выполнить запрос, учитывающий членство игрока в гильдии. Это возможно без создания сложной инфраструктуры сегментирования или индексирования.
  • Социальные функции, включая внутриигровой обмен сообщениями, членство в гильдии, пройденные испытания, списки лидеров по набранным баллам и профили в социальных сетях, проще реализовать благодаря гибкой схеме.
  • Azure Cosmos DB, как управляемая платформа как услуга (PaaS), требует минимальной настройки и управления для обеспечения быстрой доработки и ускорения выхода на рынок.

Эталонная архитектура игр Azure Cosmos DB.

Веб-приложения и мобильные приложения

Служба Azure Cosmos DB часто используется с веб-приложениями и мобильными приложениями. Она хорошо подходит для моделирования социального взаимодействия, интеграции со службами сторонних поставщиков, а также для создания разнообразных персонализированных возможностей. Пакеты SDK Azure Cosmos DB можно использовать для создания богатых приложений iOS и Android с помощью многоплатформенного пользовательского интерфейса приложений .NET (.NET MAUI).

Приложения социальных сетей

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

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

Многие социальные приложения работают в глобальном масштабе и могут сталкиваться с непредсказуемыми закономерностями использования. Гибкие возможности масштабирования хранилища данных очень важны при масштабировании уровня приложения в соответствии с потребностями. Вы можете масштабировать, добавив дополнительные секции данных в учетную запись Azure Cosmos DB. Кроме того, можно также создать дополнительные учетные записи Azure Cosmos DB в нескольких регионах. Сведения о доступности региона службы Azure Cosmos DB см. в разделе "Регионы Azure".

Схема, демонстрирующая эталонную архитектуру веб-приложения Azure Cosmos DB.

Персонализация

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

ФОРМАТ JSON, поддерживаемый Azure Cosmos DB, является эффективным форматом для представления данных макета пользовательского интерфейса, так как он не только упрощенный, но и может быть легко интерпретирован JavaScript. Azure Cosmos DB предлагает настраиваемые уровни согласованности, которые позволяют быстро считывать с низкой задержкой записи. Поэтому хранение данных макета пользовательского интерфейса, включая персонализированные параметры в виде документов JSON в Azure Cosmos DB, является эффективным средством для получения этих данных по сети.

Эталонная архитектура веб-приложения Azure Cosmos DB.

Следующий шаг