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