Распространенные варианты использования 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, которые обеспечивают высокую пропускную способность с низкой задержкой. Принятые данные, которые необходимо обработать для анализа в реальном времени, можно передать в 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.
Кроме того, данные, хранящиеся в 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 часто используется с веб-приложениями и мобильными приложениями. Она хорошо подходит для моделирования социального взаимодействия, интеграции со службами сторонних поставщиков, а также для создания разнообразных персонализированных возможностей. Пакеты 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".
Personalization
В настоящее время современные приложения используют сложные представления и функции. Как правило, они динамически адаптируются к предпочтениям или настроению пользователя и потребностям фирменной символики. Таким образом приложения должны иметь возможность эффективно извлекать персональные настройки, чтобы быстро отображать элементы и функции пользовательского интерфейса.
ФОРМАТ JSON, поддерживаемый Azure Cosmos DB, является эффективным форматом для представления данных макета пользовательского интерфейса, так как он не только упрощенный, но и может быть легко интерпретирован JavaScript. Azure Cosmos DB предлагает настраиваемые уровни согласованности, которые позволяют быстро считывать с низкой задержкой записи. Поэтому хранение данных макета пользовательского интерфейса, включая персонализированные параметры в виде документов JSON в Azure Cosmos DB, является эффективным средством для получения этих данных по сети.
Следующие шаги
Чтобы приступить к работе с Azure Cosmos DB, следуйте нашим кратким инструкциям, которые показано, как создать учетную запись и приступить к работе с Azure Cosmos DB.
Если вы хотите узнать больше о клиентах, использующих Azure Cosmos DB, см. эту страниц.