Размер шрифта:
Распространенные примеры использования Azure Cosmos DB
Play

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

В этой статье представлен обзор нескольких распространенных примеров использования Azure Cosmos DB. Рекомендации в данной статье служат отправной точкой для разработки приложений с использованием 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 для доступа к данным, таких как API Azure Cosmos DB для MongoDB, API SQL, 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, которые обеспечивают высокую пропускную способность с низкой задержкой. Принятые данные, которые необходимо обработать для анализа в реальном времени, можно передать в Azure Stream Analytics. Данные могут быть загружены в Azure Cosmos DB для специальных запросов. После загрузки в Azure Cosmos DB данные готовы к запросам. Кроме того, с новыми данными и изменениями в существующих данных можно ознакомиться в веб-канале изменений. Канал изменений — это постоянный журнал, предназначенный только для добавления. В нем в последовательном порядке сохраняются изменения в контейнерах Cosmos. Данные или изменения данных в Azure Cosmos DB можно использовать как эталонные при анализе в реальном времени. Кроме того, данные можно уточнять и обрабатывать, подключая данные Azure Cosmos DB к HDInsight для выполнения заданий Pig, Hive и Map/Reduce. Обработанные данные затем загружаются обратно в Azure Cosmos DB для создания отчетов.

Пример решения Интернета вещей, использующего Azure Cosmos DB, концентраторы событий и 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.

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

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

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

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

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

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

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

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

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

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

Personalization

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

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

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

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

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

📎📎📎📎📎📎📎📎📎📎