Создание потоков данных в Azure IoT Operations

Data flow — это путь, который данные принимают из источника в место назначения с необязательными преобразованиями. Вы можете настроить поток данных, создав настраиваемый ресурс Data flow или используя веб-интерфейс рабочего процесса. Поток данных состоит из трех частей: источник, трансформация и назначение.

flowchart LR
  subgraph Source
  A[DataflowEndpoint]
  end
  subgraph BuiltInTransformation
  direction LR
  Datasets - -> Filter
  Filter - -> Map
  end
  subgraph Destination
  B[DataflowEndpoint]
  end
  Source - -> BuiltInTransformation
  BuiltInTransformation - -> Destination

Диаграмма потока данных, показывающая поток из источника к преобразованию затем назначения.

Чтобы определить источник и назначение, необходимо настроить конечные точки потока данных. Преобразование является необязательным и может включать такие операции, как обогащение данных, фильтрация данных и сопоставление данных с другим полем.

Внимание

Каждый поток данных должен иметь конечную точку по умолчанию локального брокера MQTT Azure IoT Operations как либо источник, либо назначение.

Вы можете использовать опыт работы с операциями в Azure IoT Operations для создания потока данных. Опыт работы с операциями предоставляет визуальный интерфейс для настройки потока данных. Вы также можете использовать Bicep для создания потока данных с помощью Bicep-файла или Kubernetes для создания потока данных с помощью YAML-файла.

Продолжайте чтение, чтобы узнать, как настроить источник, преобразование и назначение.

Предварительные условия

Потоки данных можно развернуть, как только у вас есть экземпляр Azure IoT Operations, используя профиль потока данных и конечную точку по умолчанию. Однако может потребоваться настроить профили потоков данных и конечные точки, чтобы кастомизировать поток данных.

профиль потока данных

Если для потоков данных не нужны разные параметры масштабирования, используйте профиль default data flow предоставленный Azure IoT Operations. Избегайте связывания слишком большого количества потоков данных с одним профилем потока данных. Если у вас большое количество потоков данных, распределите их по нескольким профилям потоков данных, чтобы снизить риск превышения размера конфигурации профиля потока данных, который составляет 70.

Сведения о том, как настроить новый профиль потока данных, см. в разделе Configure data flow profiles.

конечные точки потока данных

Для настройки источника и назначения потока данных необходимы конечные точки потока данных. Чтобы быстро начать, используйте конечную точку передачи данных по умолчанию для локального MQTT брокера. Вы также можете создавать другие типы конечных точек data flow, таких как Kafka, Центры событий, OpenTelemetry или Azure Data Lake Storage. Дополнительные сведения см. в разделе Настройка конечных точек потоков данных.

Начать

Когда у вас есть предварительные условия, можно начать создание потока данных.

  1. Чтобы создать поток данных в интерфейсе операций, выберите Поток данных>Создать поток данных.

  2. Выберите плейсхолдер с именем new-data-flow, чтобы задать свойства потока данных. Введите имя потока данных и выберите профиль потока данных для использования. По умолчанию выбран профиль потока данных. Дополнительные сведения о профилях data flow см. в разделе Configure data flow profile.

    Снимок экрана интерфейса операционного взаимодействия, где пользователь именует поток данных и выбирает профиль для него.

    Внимание

    При создании потока данных можно выбрать только профиль потока данных. После создания потока данных невозможно изменить профиль потока данных. Если вы хотите изменить профиль существующего потока данных, удалите исходный поток данных и создайте новый с новым профилем потока данных.

  3. Настройте исходную, преобразованную и конечную точки подключения для потока данных, выбрав элементы на схеме потока данных.

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

Изучите следующие разделы, чтобы узнать, как настроить типы операций потоков данных.

Источник

Настройте исходную конечную точку и источники данных (разделы) для потока данных. Вы можете использовать брокер MQTT по умолчанию, ресурс или пользовательскую конечную точку MQTT или Kafka в качестве источника.

Полные сведения о конфигурации, включая подстановочные знаки раздела MQTT, общие подписки, разделы Kafka и исходную схему, см. в разделе "Настройка источника потока данных".

Если в качестве источника не используется конечная точка по умолчанию, ее необходимо использовать в качестве назначения. Дополнительные сведения об использовании локальной конечной точки брокера MQTT см. в разделе "Потоки данных" должны использовать локальную конечную точку брокера MQTT.

Запрос сохраняемости диска

Сохраняемость диска сохраняет состояние обработки потока данных во время перезапуска. Дополнительные сведения о конфигурации см. в разделе "Настройка сохраняемости диска".

Преобразование

Операция преобразования заключается в преобразовании данных из источника перед отправкой его в место назначения. Преобразования являются необязательными. Если вам не нужно вносить изменения в данные, не включите операцию преобразования в конфигурацию data flow. Несколько преобразований связываются друг с другом на этапе выполнения, независимо от порядка их указания в конфигурации. Порядок этапов всегда:

  1. Обогащение: добавьте дополнительные данные в исходные данные с заданным набором данных и условием для сопоставления.
  2. Фильтр. Фильтрация данных на основе условия.
  3. Сопоставление, вычисление, переименование или добавление нового свойства: перемещение данных из одного поля в другое с необязательным преобразованием.

В этом разделе представлено введение в преобразования потоков данных. Дополнительные сведения см. в разделе "Сопоставление данных с помощью потоков данных" и "Обогащение данных" с помощью потоков данных.

В интерфейсе операций выберите Data flow>Add transform (необязательно).

Screenshot интерфейса операций, показывающий добавление этапа преобразования в поток данных.

Обогащение: добавление ссылочных данных

Чтобы обогатить данные, сначала добавьте ссылочный набор данных в хранилище Azure IoT Operations state. Набор данных добавляет дополнительные данные в исходные данные на основе условия. Условие указывается в качестве поля в исходных данных, которые соответствуют полю в наборе данных.

Примеры данных можно загрузить в хранилище состояний с помощью state store CLI. Имена ключей в хранилище состояний соответствуют набору данных в конфигурации data flow.

В настоящее время этап обогащения не поддерживается в интерфейсе операций.

Если набор данных содержит запись с asset полем, аналогично:

{
  "asset": "thermostat1",
  "location": "room1",
  "manufacturer": "Contoso"
}

Данные из источника, в котором поле deviceId соответствует thermostat1, имеют поля location и manufacturer, доступные на этапах фильтрации и отображения.

Дополнительные сведения о синтаксисе условия см. в разделе "Обогащение данных с помощью потоков данных"

Фильтр: фильтрация данных на основе условия

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

Полные сведения о конфигурации и примеры см. в разделе "Фильтрация данных" в потоке данных.

Карта: перемещение данных из одного поля в другое

Чтобы сопоставить данные с другим полем, при необходимости преобразовать их, используйте операцию map. Укажите преобразование в виде формулы, которая использует поля в исходных данных.

В интерфейсе операций можно сопоставить данные с помощью преобразований Compute, переименования и нового свойства.

Вычислить

Используйте преобразование вычислений для применения формулы к исходным данным. Эта операция применяет формулу к исходным данным и сохраняет результат в поле.

  1. В разделе «Преобразование» (необязательно) выберите «Вычисления»>«Добавить».

    Снимок экрана: использование операционного опыта для добавления вычислительного преобразования.

  2. Введите необходимые параметры.

    Настройка Описание
    Выбор формулы Выберите существующую формулу из раскрывающегося списка или выберите "Пользователь" , чтобы ввести формулу вручную.
    Выходные данные Укажите имя для отображения результата.
    Формула Введите формулу, применяемую к исходным данным.
    Описание Укажите описание преобразования.
    Последнее известное значение При необходимости используйте последнее известное значение, если текущее значение недоступно.

    Введите или измените формулу в поле "Формула ". Формула может использовать поля в исходных данных. Введите @ или нажмите клавиши CTRL + ПРОБЕЛ, чтобы выбрать точки данных из выпадающего списка. Для встроенных формул выберите <dataflow> плейсхолдер, чтобы просмотреть список доступных точек информации.

    Введите свойства метаданных MQTT с помощью формата @$metadata.user_properties.<property> или @$metadata.topic. Введите заголовки $metadata с помощью формата @$metadata.<header>. Синтаксис $metadata необходим только для свойств MQTT, входящих в заголовок сообщения. Для получения дополнительной информации см. справочную информацию о полях.

    Формула может использовать поля в исходных данных. Например, можно использовать temperature поле в исходных данных для преобразования температуры в Цельсию и хранения его в temperatureCelsius поле вывода.

  3. Выберите Применить.

Переименовать

Используйте преобразование "Переименовать ", чтобы переименовать точку данных. Эта операция переименовывает точку данных в исходных данных в новое имя. Используйте новое имя на последующих этапах потока данных.

  1. В разделе "Преобразование( необязательно)" выберите "Переименовать>добавить".

    Снимок экрана: использование операций для переименования точки данных.

  2. Введите необходимые параметры.

    Настройка Описание
    Точка данных Выберите точку данных из раскрывающегося списка или введите заголовок $metadata.
    Новое имя точки данных Введите новое имя точки данных.
    Описание Укажите описание преобразования.

    Введите свойства метаданных MQTT с помощью формата @$metadata.user_properties.<property> или @$metadata.topic. Введите заголовки $metadata с помощью формата @$metadata.<header>. Синтаксис $metadata необходим только для свойств MQTT, входящих в заголовок сообщения. Для получения дополнительной информации см. справочную информацию о полях.

  3. Выберите Применить.

Новое свойство

Используйте преобразование нового свойства , чтобы добавить новое свойство в исходные данные. Эта операция добавляет новое свойство в исходные данные. Используйте новое свойство на последующих этапах потока данных.

  1. В разделе "Преобразование" (необязательно) выберите "Добавить новое свойство>".

    Снимок экрана: использование опыта работы с операциями для добавления нового свойства.

  2. Введите необходимые параметры.

    Настройка Описание
    Ключ свойства Введите ключ для нового свойства.
    Значение свойства Введите значение нового свойства.
    Описание Укажите описание нового свойства.
  3. Выберите Применить.

Дополнительные сведения см. в разделе "Сопоставление данных" с помощью потоков данных.

Удалить

По умолчанию схема вывода включает все точки данных. Удалите любую точку данных из назначения с помощью преобразования Remove .

  1. В разделе "Преобразование( необязательно)" нажмите кнопку "Удалить".

  2. Выберите точку данных, чтобы удалить из выходной схемы.

    Снимок экрана: использование опыта в управлении операциями для удаления точки данных веса из схемы вывода.

  3. Выберите Применить.

Дополнительные сведения см. в разделе "Сопоставление данных" с помощью потоков данных.

Сериализация данных в соответствии со схемой

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

Назначение

Настройте целевую конечную точку и назначение данных (раздел, контейнер или таблицу) для потока данных. В качестве назначения можно использовать любой поддерживаемый тип конечной точки, включая MQTT, Kafka, Azure Data Lake Storage, Microsoft Fabric, Azure Data Explorer и локальное хранилище.

Полные сведения о конфигурации, включая таблицу назначения данных, разделы динамического назначения и сериализацию выходных данных, см. в разделе "Настройка назначения потока данных".

Чтобы отправить данные в место назначения, отличное от локального брокера MQTT, создайте конечную точку потока данных. Дополнительные сведения см. в разделе Настройка конечных точек потока данных.

Внимание

Конечные точки Storage требуют схему для сериализации. Чтобы использовать поток данных с Microsoft Fabric OneLake, Azure Data Lake Storage, Azure Data Explorer или локального хранилища, необходимо указать ссылку на схему.

Пример

В следующем примере показана конфигурация потока данных, которая использует конечную точку MQTT для источника и назначения. Источник фильтрует данные из раздела MQTT azure-iot-operations/data/thermostat. Преобразование переводит температуру в Фаренгейт и фильтрует данные, где произведение температуры на влажность меньше 100000. Назначение отправляет данные в топик MQTT factory.

Скриншот с примером потока данных в операциях с исходным узлом, преобразованиями и целевым узлом.

Дополнительные примеры конфигураций data flow см. в статье Azure REST API — Data flow и quickstart Bicep.

Убедитесь, что поток данных работает

Чтобы убедиться, что поток данных работает, ознакомьтесь с учебным пособием Мост двунаправленного MQTT для Azure Event Grid.

Экспорт конфигурации потока данных

Чтобы экспортировать конфигурацию потока данных, используйте консоль управления или экспортируйте настраиваемый ресурс потока данных.

Выберите поток данных, который вы хотите экспортировать, а затем выберите Export на панели инструментов.

Скриншот интерфейса пользовательского опыта операций, показывающий опцию экспорта для настроенного потока данных.

Правильная конфигурация потока данных

Чтобы убедиться, что поток данных работает как ожидается, проверьте следующие условия:

  • Конечная точка потока данных MQTT по умолчанию должна использоваться как источник или назначение.
  • Профиль потока данных существует и упоминается в конфигурации потока данных.
  • Источник — это конечная точка MQTT, конечная точка Kafka или ресурс. Конечные точки типа хранилища нельзя использовать как источник.
  • При использовании Event Grid в качестве источника, установите количество экземпляров профиля потоков данных равным 1, так как MQTT-брокер Event Grid не поддерживает общие подписки.
  • При использовании Центров событий в качестве источника каждый концентратор событий в пространстве имен является отдельным разделом Kafka, и необходимо указать каждый из них в качестве источника данных.
  • Если преобразование используется, оно настроено с правильным синтаксисом, включая надлежащее экранирование специальных символов.
  • При использовании конечных точек типа storage в качестве назначения указывается schema.
  • При использовании динамических топиков для конечных точек MQTT убедитесь, что переменные топика ссылаются на действительные сегменты.

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