Распространенные примеры использования 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

Кроме того, данные, хранящиеся в 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 с помощью популярной платформы Xamarin.

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

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

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

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

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

Personalization

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

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

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

Дальнейшие действия

  • Чтобы приступить к работе с Azure Cosmos DB, следуйте нашим кратким руководствам, в которых показано, как создать учетную запись и приступить к работе с Azure Cosmos DB.

  • Если вы хотите узнать больше о клиентах, использующих Azure Cosmos DB, см. эту страниц.