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

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

Конвейер приема данных Центра Интернета вещей проходит несколько этапов. Сначала вы создадите Центр Интернета вещей и регистрируете в нем устройство. Затем вы создадите целевую таблицу в Azure Data Explorer, в которой данные в определенном формате будут приняты с использованием заданных свойств приема. Подключению центра Интернета вещей необходимо сообщить о событиях маршрутизации для подключения к таблице 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, см. в разделе Включение маршрутизации с несколькими базами данных. Пользователь, группа, субъект-служба или управляемое удостоверение, используемые для поддержки маршрутизации базы данных, должны иметь по крайней мере роль участника и разрешения на запись в кластер.

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

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

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

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

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

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

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

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

    Снимок экрана: azure Data Explorer Web U I, где показан параметр

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

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

Примечание

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

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

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

Примечание

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

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

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

Свойство Описание
message-id Задаваемый пользователем идентификатор сообщения, используемый для шаблонов типа "запрос-ответ". Формат: Строка с учетом регистра (длиной до 128 символов), состоящая из букв и цифр в 7-битовом формате ASCII + {'-', ':', '.', '+', '%', '_', '#', '*', '?', '!', '(', ')', ',', '=', '@', ';', '$', '''}.
iothub-enqueuedtime Дата и время получения сообщения, отправленного с устройства в облако, Центром Интернета вещей.
user-id Идентификатор, используемый для указания источника сообщений. При создании сообщений Центр Интернета вещей этому значению {iot hub name}присваивается значение .
iothub-connection-device-id Центр Интернета вещей устанавливает этот идентификатор в сообщениях, отправляемых с устройства в облако. Содержит идентификатор deviceId устройства, отправившего сообщение.
iothub-connection-module-id Центр Интернета вещей устанавливает этот идентификатор в сообщениях, отправляемых с устройства в облако. Содержит идентификатор moduleId устройства, с которого было отправлено сообщение.
iothub-connection-auth-generation-id Центр Интернета вещей устанавливает этот идентификатор в сообщениях, отправляемых с устройства в облако. Содержит идентификатор generationId устройства, с которого было отправлено сообщение (согласно разделу Свойства удостоверений устройств).
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"}}'
    ']'

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

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

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

Примечание

Для обеспечения максимальной производительности создавайте все ресурсы в том же регионе, что и кластер 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. Дополнительные сведения см. в статье Устранение неполадок с маршрутизацией сообщений Центра Интернета вещей.

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

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

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