Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Центр Интернета вещей Azure — это управляемая служба, размещенная в облаке, которая действует как центральный узел сообщений для двунаправленной связи между вашим приложением Интернета вещей и устройствами, которыми оно управляет. Azure Data Explorer предлагает непрерывную приемку из управляемых клиентом IoT-хабов, используя свои совместимые с центрами событий встроенные конечные точки сообщений от устройства к облаку.
Конвейер обработки данных Интернета вещей проходит через несколько этапов. Сначала необходимо создать Центр Интернета вещей и зарегистрировать устройство в нем. Затем вы создадите целевую таблицу в Azure Data Explorer, в которой данные в определенном формате передаются с помощью заданных свойств приема. Подключение IoT Hub должно знать события маршрутизации для подключения к таблице Azure Data Explorer. Данные внедряются с выбранными свойствами в соответствии с сопоставлением свойств системы событий. Этот процесс можно управлять с помощью портала Azure, программно с помощью C# или Python или с помощью шаблона Azure Resource Manager.
Общие сведения о приеме данных в обозревателе данных Azure см. в разделе Обзор приема данных Azure Data Explorer.
Формат данных
- Служба считывает данные из конечной точки Центров событий в виде объектов EventData .
- См. раздел Поддерживаемые форматы.
Примечание.
Центр Интернета вещей не поддерживает формат .raw.
- См. раздел Поддерживаемые сжатия.
Свойства приема
Свойства приема управляют процессом приема, указывая, куда направлять данные и как его обрабатывать. Вы можете указать свойства индексации для событий, используя EventData.Properties. Задайте следующие свойства:
| Свойство | Описание |
|---|---|
| База данных | Имя (с учетом регистра) целевой базы данных. Используйте это свойство, если вы хотите отправить данные в другую базу данных, отличную от базы данных, в которой вы создали подключение к данным (база данных по умолчанию). Чтобы направить данные в несколько баз данных, необходимо сначала настроить подключение в виде подключения к нескольким базам данных. Дополнительные сведения см. в разделе Маршрутизация событий. |
| Таблица | Имя (с учетом регистра) существующей целевой таблицы. Переопределяет установку Table на панели Data Connection. |
| Формат | Формат данных. Переопределяет установку Data format на панели Data Connection. |
| IngestionMappingReference | Имя существующего сопоставления приема для использования. Переопределяет набор Column mapping на панели Data Connection. |
| Кодировка | Кодировка данных, по умолчанию — UTF8. Может быть любой из поддерживаемых кодировок .NET. |
Примечание.
Только события, поставленные в очередь после создания подключения к данным, поступают для обработки.
Маршрутизация событий
При создании подключения к данным в кластере вы задаете маршрутизацию для отправки принимаемых данных. Маршрутизация по умолчанию отправляет данные в целевую таблицу, указанную в строке подключения, связанной с целевой базой данных. Маршрутизация по умолчанию для данных также называется статической маршрутизацией. Вы также можете указать альтернативную маршрутизацию для данных с помощью свойств данных событий.
Маршрутизация данных событий в альтернативную базу данных
По умолчанию маршрутизация данных в альтернативную базу данных отключена. Чтобы отправить данные в другую базу данных, сначала задайте подключение в качестве подключения с несколькими базами данных. Чтобы увидеть пример того, как это сделать в портале Azure, см. раздел «Включение маршрутизации для нескольких баз данных». Пользователь, группа, учётная запись службы или управляемое удостоверение, используемое для разрешения маршрутизации баз данных, должен иметь как минимум роль участника и права на запись в кластере.
Чтобы указать альтернативную базу данных, задайте свойство приема базы данных.
Предупреждение
Если вы указываете альтернативную базу данных, но не настраиваете подключение как соединение с несколькими базами данных, загрузка завершится ошибкой.
Включение маршрутизации с несколькими базами данных
Прежде чем задавать альтернативную целевую базу данных, необходимо разрешить маршрутизацию данных в несколько баз данных. Чтобы разрешить маршрутизацию данных в альтернативные базы данных, сделайте следующее:
На портале Azure перейдите к своему кластеру.
Выберите Базы данных>Подключения к данным.
Создание или изменение подключения к данным. В области подключения к данным в разделе "Параметры маршрутизации данных" включите параметр "Разрешить маршрутизацию данных в другую базу данных" (подключение к данным с несколькими базами данных).
Маршрутизация данных событий в альтернативную таблицу
Вы также можете указать свойства целевой таблицы для каждого события, используя свойства события. Подключение динамически направляет данные, указанные в 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. Дополнительные сведения см. в статье Устранение неполадок с маршрутизацией сообщений Центра Интернета вещей.
Отправка событий
См. пример проекта, который имитирует устройство и создает данные.