Подключение к данным Центра Интернета вещей

Центр Интернета вещей Azure — это управляемая служба, размещенная в облаке, которая действует как центральный узел сообщений для двунаправленной связи между вашим приложением Интернета вещей и устройствами, которыми оно управляет. Azure Data Explorer предлагает непрерывную приемку из управляемых клиентом IoT-хабов, используя свои совместимые с центрами событий встроенные конечные точки сообщений от устройства к облаку.

Конвейер обработки данных Интернета вещей проходит через несколько этапов. Сначала необходимо создать Центр Интернета вещей и зарегистрировать устройство в нем. Затем вы создадите целевую таблицу в Azure Data Explorer, в которой данные в определенном формате передаются с помощью заданных свойств приема. Подключение IoT Hub должно знать события маршрутизации для подключения к таблице Azure Data Explorer. Данные внедряются с выбранными свойствами в соответствии с сопоставлением свойств системы событий. Этот процесс можно управлять с помощью портала Azure, программно с помощью C# или Python или с помощью шаблона Azure Resource Manager.

Общие сведения о приеме данных в обозревателе данных Azure см. в разделе Обзор приема данных Azure Data Explorer.

Формат данных

Свойства приема

Свойства приема управляют процессом приема, указывая, куда направлять данные и как его обрабатывать. Вы можете указать свойства индексации для событий, используя EventData.Properties. Задайте следующие свойства:

Свойство Описание
База данных Имя (с учетом регистра) целевой базы данных. Используйте это свойство, если вы хотите отправить данные в другую базу данных, отличную от базы данных, в которой вы создали подключение к данным (база данных по умолчанию). Чтобы направить данные в несколько баз данных, необходимо сначала настроить подключение в виде подключения к нескольким базам данных. Дополнительные сведения см. в разделе Маршрутизация событий.
Таблица Имя (с учетом регистра) существующей целевой таблицы. Переопределяет установку Table на панели Data Connection.
Формат Формат данных. Переопределяет установку Data format на панели Data Connection.
IngestionMappingReference Имя существующего сопоставления приема для использования. Переопределяет набор Column mapping на панели Data Connection.
Кодировка Кодировка данных, по умолчанию — UTF8. Может быть любой из поддерживаемых кодировок .NET.

Примечание.

Только события, поставленные в очередь после создания подключения к данным, поступают для обработки.

Маршрутизация событий

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

Маршрутизация данных событий в альтернативную базу данных

По умолчанию маршрутизация данных в альтернативную базу данных отключена. Чтобы отправить данные в другую базу данных, сначала задайте подключение в качестве подключения с несколькими базами данных. Чтобы увидеть пример того, как это сделать в портале Azure, см. раздел «Включение маршрутизации для нескольких баз данных». Пользователь, группа, учётная запись службы или управляемое удостоверение, используемое для разрешения маршрутизации баз данных, должен иметь как минимум роль участника и права на запись в кластере.

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

Предупреждение

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

Включение маршрутизации с несколькими базами данных

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

  1. На портале Azure перейдите к своему кластеру.

  2. Выберите Базы данных>Подключения к данным.

  3. Создание или изменение подключения к данным. В области подключения к данным в разделе "Параметры маршрутизации данных" включите параметр "Разрешить маршрутизацию данных в другую базу данных" (подключение к данным с несколькими базами данных).

    Снимок экрана веб-интерфейса Azure Data Explorer, показывающий настройки маршрутизации данных, установленные на

Маршрутизация данных событий в альтернативную таблицу

Вы также можете указать свойства целевой таблицы для каждого события, используя свойства события. Подключение динамически направляет данные, указанные в EventData.Properties, переопределяя статические свойства для этого события. Чтобы указать альтернативную таблицу, установите свойство загрузки таблицы.

Примечание.

При выборе "Мои данные" содержат сведения о маршрутизации, необходимо предоставить необходимые сведения о маршрутизации в рамках свойств событий.

Сопоставление свойств системы событий

Используйте системные свойства для хранения свойств, которые служба Центра Интернета вещей задает при получении события. Подключение к Центру Интернета вещей Azure Data Explorer внедряет выбранные свойства в данные, поступающие в вашу таблицу.

Примечание.

Для csv сопоставления добавьте свойства в начале записи в порядке, указанном в следующей таблице. Для json сопоставления добавьте свойства в соответствии с именами свойств в следующей таблице.

Свойства системы

IoT Hub предоставляет следующие системные свойства для сообщений от устройства в облако:

Свойство Описание
message-ID Задаваемый пользователем идентификатор сообщения, используемый для шаблонов типа "запрос-ответ". Формат: строка, чувствительная к регистру (длиной до 128 символов), состоящая из буквенно-цифровых знаков в 7-битовом коде ASCII + {'-', ':', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '$', '''}.
iothub-enqueuedtime Дата и время получения сообщения, отправленного с устройства в облако, Центром Интернета вещей.
идентификатор пользователя Идентификатор, используемый для указания источника сообщений. Когда сообщения создаются в Центре Интернета вещей, это значение устанавливается в {iot hub name}.
iothub-connection-device-id Центр Интернета вещей устанавливает этот идентификатор в сообщениях, отправляемых с устройства в облако. Содержит идентификатор deviceId устройства, отправившего сообщение.
iothub-connection-module-id Центр Интернета вещей устанавливает этот идентификатор в сообщениях, отправляемых с устройства в облако. Содержит идентификатор moduleId устройства, с которого было отправлено сообщение.
iothub-connection-auth-generation-id Центр Интернета вещей устанавливает этот идентификатор в сообщениях, отправляемых с устройства в облако. Содержит connectionDeviceGenerationId (согласно Свойствам удостоверений устройств) устройства, с которого было отправлено сообщение.
iothub-connection-auth-method Центр Интернета вещей устанавливает этот метод проверки подлинности в сообщениях, отправляемых с устройства в облако. Это свойство содержит сведения о методе проверки подлинности, используемом для аутентификации устройства, отправляющего сообщение.
iothub-app-iothub-creation-time-utc Разрешает устройству отправлять время создания события при отправке данных в пакет.
iothub-creation-time-utc Разрешает устройству отправлять время создания события при отправке одного сообщения за раз.
dt-dataschema Центр Интернета вещей устанавливает это значение в сообщениях, отправляемых с устройства в облако. Оно содержит идентификатор модели устройства, указанный в подключении устройства.
dt-subject Имя компонента, отправляющего сообщения устройства в облако.

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

Примеры отображения схем

Пример сопоставления схемы таблицы

Если данные содержат три столбца (Timespan, Metric и Value) и включены свойства iothub-connection-device-id и sequence-number, создайте или измените схему таблицы с помощью следующей команды:

    .create-merge table TestTable (TimeStamp: datetime, Metric: string, Value: int, IotHubDeviceId:long, IotHubSequenceNumber:long)

Пример сопоставления CSV-файла

Выполните следующие команды, чтобы добавить данные в начало записи. Отметьте порядковые значения.

    .create table TestTable ingestion csv mapping "CsvMapping1"
    '['
    '   { "column" : "TimeStamp", "Properties":{"Ordinal":"2"}},'
    '   { "column" : "Metric", "Properties":{"Ordinal":"3"}},'
    '   { "column" : "Value", "Properties":{"Ordinal":"4"}},'
    '   { "column" : "IotHubDeviceId", "Properties":{"Ordinal":"0"}},'
    '   { "column" : "IotHubSequenceNumber", "Properties":{"Ordinal":"1"}}'
    ']'

Пример сопоставления JSON

Данные добавляются с помощью сопоставления свойств системы. Выполните следующие команды.

    .create table TestTable ingestion json mapping "JsonMapping1"
    '['
    '    { "column" : "TimeStamp", "Properties":{"Path":"$.timestamp"}},'
    '    { "column" : "Metric", "Properties":{"Path":"$.metric"}},'
    '    { "column" : "Value", "Properties":{"Path":"$.metric_value"}},'
    '    { "column" : "IotHubDeviceId", "Properties":{"Path":"$.iothub-connection-device-id"}},'
    '    { "column" : "IotHubSequenceNumber", "Properties":{"Path":"$.sequence-number"}}'
    ']'

Сопоставление пользовательских свойств событий

Система не поддерживает обогащение нагрузки событий IoT Hub с помощью свойств пользователя. Рассмотрите возможность внедрения свойств пользователя на более раннем этапе в тело события.

Подключение к Центру Интернета вещей

Примечание.

Для обеспечения максимальной производительности создавайте все ресурсы в том же регионе, что и кластер Azure Data Explorer.

Создание Центра Интернета вещей

Если у вас еще нет Центра Интернета вещей, создайте Центр Интернета вещей. Вы можете управлять подключением к Центру Интернета вещей с помощью портала Azure, программно с помощью C# или Python или с помощью шаблона Azure Resource Manager.

Примечание.

  • Невозможно изменить device-to-cloud partitions количество секций после его установки, поэтому при настройке количества секций следует учитывать долгосрочное масштабирование.
  • Каждый потребитель должен иметь уникальную группу потребителей. Создайте группу потребителей, предназначенную для подключения к Azure Data Explorer. Найдите свой ресурс на портале Azure и перейдите в Built-in endpoints, чтобы добавить новую группу потребителей.
  • Соединение данных использует Центр Интернета вещей Built-in endpoint. Если вы настроили другие параметры Message routing endpoint, сообщения перестают передаваться в Built-in endpoint, пока для этой конечной точки не будет создан маршрут. Чтобы обеспечить передачу сообщений во встроенную конечную точку при добавлении нового маршрута, настройте маршрут к конечной точке events. Дополнительные сведения см. в статье Устранение неполадок с маршрутизацией сообщений Центра Интернета вещей.

Отправка событий

См. пример проекта, который имитирует устройство и создает данные.

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