Azure Cosmos DB в рабочих нагрузках Интернета вещей

Azure Cosmos DB
Azure Databricks
Функции Azure
Центр Интернета вещей Azure
Power BI

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

Глобальное распределение прозрачно масштабируется и реплика tes данных в регионах Azure. Вы можете масштабировать пропускную способность и хранилище по всему миру и платить только за необходимую сумму. Мгновенное масштабирование эластичных баз данных обеспечивает разнообразные и непредсказуемые рабочие нагрузки Интернета вещей, не жертвуя приемом или производительностью запросов.

Azure Cosmos DB идеально подходит для рабочих нагрузок Интернета вещей, так как он может:

  • Прием данных телеметрии устройства с высоким уровнем частоты и возврат индексированных запросов с низкой задержкой и высокой доступностью.
  • Хранение формата JSON от разных поставщиков устройств, что обеспечивает гибкость в схеме полезных данных.
  • Используя конечные точки API, совместимые с проводным протоколом для Cassandra, MongoDB, SQL, Gremlin и т. д., а также базы данных таблиц и встроенную поддержку файлов Jupyter Notebook.

Потенциальные варианты использования

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

Архитектура

Схема, показывающая роль Azure Cosmos DB в архитектуре решения Интернета вещей Azure.Скачайте файл Visio для этой архитектуры.

Поток данных

  1. Датчики Интернета вещей и устройства Edge отправляют события в виде потоков сообщений через Центр Интернета вещей Azure в слой анализа и преобразования. Центр Интернета вещей может хранить потоки данных в секциях в течение указанной длительности.

  2. Azure Databricks с структурированной потоковой передачей Apache Spark выбирает сообщения из Центр Интернета вещей в режиме реального времени, обрабатывает данные на основе бизнес-логики и отправляет данные в хранилище. Структурированная потоковая передача может предоставлять аналитику в режиме реального времени, например вычисление скользящих средних или минимальных и максимальных значений с течением времени.

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

    Уровень хранилища также состоит из следующих элементов:

    • Хранилище BLOB-объектов Azure. Центр Интернета вещей маршрутизация сообщений сохраняет необработанные сообщения устройства в хранилище BLOB-объектов, предоставляя недорогое долгосрочное хранилище холодных данных.
    • База данных SQL Azure для хранения транзакционных и реляционных данных, таких как данные выставления счетов и роли пользователей.
    • Хранилище данных Azure Synapse Analytics, заполненное Фабрика данных Azure, которое объединяет данные из Azure Cosmos DB и Базы данных SQL Azure.
  4. Microsoft Power BI анализирует хранилище данных.

  5. Уровень презентации использует данные из уровня хранилища для создания веб-приложений, мобильных устройств и API.

  6. При появлении нового или обновленного сообщения устройства канал изменений Azure Cosmos DB активирует функцию Функции Azure.

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

Компоненты

Эта рабочая нагрузка использует следующие компоненты Azure:

Azure Cosmos DB

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

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

  • Время жизни (TTL). Azure Cosmos DB может автоматически удалять элементы из контейнера через определенный период времени. Эта возможность позволяет Azure Cosmos DB выступать в качестве горячего хранилища данных для последних данных с долгосрочными данными, хранящимися в холодном хранилище BLOB-объектов Azure.

  • Канал изменений. Функция канала изменений выводит отсортированный список измененных документов в том порядке, в котором они были изменены. Каждое новое событие в канале изменений контейнера Azure Cosmos DB автоматически активирует небольшую реактивную Функции Azure функцию. В зависимости от содержимого документа JSON функция может подключаться к API службы Центр Интернета вещей Azure и выполнять действие на устройстве.

  • Единицы запросов (ЕЗ). ЕЗ — это вычислительные единицы, которые измеряют пропускную способность Azure Cosmos DB. Вы можете использовать ЕЗ для динамического масштабирования Azure Cosmos DB вверх и вниз, сохраняя доступность и оптимизируя затраты и производительность.

  • Секционирование. Ключ секции определяет, как Azure Cosmos DB направляет данные в секциях. Идентификатор устройства Интернета вещей — это обычный ключ секции для приложений Интернета вещей.

Другие компоненты Azure

Решение также использует следующие компоненты Azure:

  • Azure IoT Edge запускает приложения на границе, например модели машинного обучения.

  • Центр Интернета вещей Azure выступает в качестве облачного шлюза, приема телеметрии устройства в масштабе. Центр Интернета вещей поддерживает обмен данными с устройствами, позволяя отправлять действия из облака в IoT Edge на устройство.

  • Azure Databricks с структурированной потоковой передачей Spark — это масштабируемая система отказоустойчивой потоковой обработки, которая изначально поддерживает пакетные и потоковые рабочие нагрузки. Azure Databricks — это уровень преобразования и аналитики, который подключается к конечной точке, совместимой с концентратором событий Центр Интернета вещей, с помощью библиотеки Maven, совместимой с azure-eventhubs-spark_2.11:2.3.6 Maven.

  • Хранилище BLOB-объектов Azure обеспечивает масштабируемое, недорогое, долгосрочное хранилище холодных данных для неструктурированных данных.

  • База данных SQL Azure — это реляционная база данных для транзакционных и других данных, отличных от Интернета вещей.

  • Azure Synapse Analytics — это хранилище данных и платформа отчетов для хранения корпоративных данных и аналитики больших данных. Synapse Analytics содержит агрегированные данные из База данных SQL Azure и Azure Cosmos DB.

    Azure Synapse Link для Azure Cosmos DB обеспечивает аналитику практически в режиме реального времени в операционных данных Azure Cosmos DB без какого-либо влияния на производительность или затраты на рабочие нагрузки транзакций. Synapse Link использует два ядра аналитики в рабочей области Azure Synapse: бессерверные и пулы Spark.

  • Power BI — это набор средств бизнес-аналитики для анализа данных и обмена данными. Power BI может запрашивать семантические модели, хранящиеся в Azure Analysis Services, или напрямую запрашивать Synapse Analytics.

  • служба приложение Azure создает веб-приложения и мобильные приложения. Приложение API Azure позволяет сторонним приложениям использовать API на основе данных из уровня обслуживания.

  • Функции Azure — это бессерверная платформа вычислений, которая может работать в масштабе облака и интегрировать службы с помощью триггеров и привязок. Функции Azure может переводить форматы сообщений Интернета вещей или запускать действия при подключении к каналу изменений Azure Cosmos DB.

Альтернативные варианты

  • Вместо Azure Databricks уровень преобразования и аналитики может использовать HDInsight Storm, HDInsight Spark или Azure Stream Analytics для выполнения потоковой аналитики и использования Функции Azure для преобразования полезных данных сообщения.

  • Уровень хранилища служб может использовать Обозреватель данных Azure для хранения сообщений Интернета вещей. Эта служба также имеет широкие возможности аналитики.

Рекомендации

Azure Cosmos DB имеет ограничение на 20 ГБ для одной логической секции. Для большинства решений Интернета вещей этот размер достаточно. Если нет, вы можете:

  • Задайте для ключа секции искусственное поле и назначьте поле составным значением, например идентификатор устройства и текущий месяц и год. Эта стратегия обеспечивает высокую ценность карта inality для хорошего проектирования секций. Дополнительные сведения см. в разделе "Выбор ключа секции".

  • На основе жизненного цикла данных можно переместить старые данные Azure Cosmos DB в холодное хранилище, например Хранилище BLOB-объектов Azure. Вы можете использовать сочетание канала изменений для реплика хранения данных в холодное хранилище и TTL для автоматического удаления данных из контейнера после определенного периода времени.

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