Создание подключения к данным Центр Интернета вещей для Azure Data Explorer с помощью пакетов SDK
В этой статье показано, как принимать данные в Azure Data Explorer из Центра Интернета вещей, платформы потоковой передачи больших данных и службы приема данных Интернета вещей.
Сведения о создании подключения с помощью пакетов SDK Kusto см. в статье "Создание подключения к данным Центр Интернета вещей с помощью пакетов SDK".
Общие сведения о передаче данных в Azure Data Explorer из Центра Интернета вещей см. в разделе Подключение к Центру Интернета вещей.
Примечание.
Принимаются только события, поставленные в очередь после создания подключения к данным.
Примеры кода на основе предыдущих версий пакета SDK см. в архивной статье.
Необходимые компоненты
- Подписка Azure. Создайте бесплатную учетную запись Azure.
- Кластер и база данных Azure Data Explorer. Создайте кластер и базу данных.
- Целевая таблица. Создайте таблицу или используйте существующую таблицу.
- Сопоставление приема для таблицы.
- Центр Интернета вещей с данными для приема.
Создание подключения к данным Центр Интернета вещей
В этом разделе описано, как установить соединение между Центр Интернета вещей и таблицей Azure Data Explorer. Если подключение установлено, данные передаются из Центр Интернета вещей в целевую таблицу.
Установите пакет NuGet Microsoft.Azure.Management.Kusto.
Создайте субъект приложения Microsoft Entra для проверки подлинности. Вам потребуется идентификатор каталога (клиента), идентификатор приложения и секрет клиента.
Выполните следующий код.
var tenantId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Directory (tenant) ID var clientId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; //Application ID var clientSecret = "PlaceholderClientSecret"; //Client Secret var subscriptionId = "xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx"; var credentials = new ClientSecretCredential(tenantId, clientId, clientSecret); var resourceManagementClient = new ArmClient(credentials, subscriptionId); var resourceGroupName = "testrg"; //The cluster and database that are created as part of the Prerequisites var clusterName = "mykustocluster"; var databaseName = "mykustodatabase"; var subscription = await resourceManagementClient.GetDefaultSubscriptionAsync(); var resourceGroup = (await subscription.GetResourceGroupAsync(resourceGroupName)).Value; var cluster = (await resourceGroup.GetKustoClusterAsync(clusterName)).Value; var database = (await cluster.GetKustoDatabaseAsync(databaseName)).Value; var dataConnections = database.GetKustoDataConnections(); var iotHubConnectionName = "myiothubconnect"; //The IoT hub that is created as part of the Prerequisites var iotHubResourceId = new ResourceIdentifier("/subscriptions/<iotHubSubscriptionId>/resourceGroups/<iotHubResourceGroupName>/providers/Microsoft.Devices/IotHubs/<iotHubName>"); var sharedAccessPolicyName = "iothubforread"; var consumerGroup = "$Default"; var location = AzureLocation.CentralUS; //The table and column mapping are created as part of the Prerequisites var tableName = "StormEvents"; var mappingRuleName = "StormEvents_CSV_Mapping"; var dataFormat = KustoIotHubDataFormat.Csv; var databaseRouting = KustoDatabaseRouting.Multi; var iotHubConnectionData = new KustoIotHubDataConnection { IotHubResourceId = iotHubResourceId, ConsumerGroup = consumerGroup, SharedAccessPolicyName = sharedAccessPolicyName, Location = location, TableName = tableName, MappingRuleName = mappingRuleName, DataFormat = dataFormat, DatabaseRouting = databaseRouting }; await dataConnections.CreateOrUpdateAsync(WaitUntil.Completed, iotHubConnectionName, iotHubConnectionData);
Параметр Рекомендуемое значение Описание поля tenantId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Идентификатор клиента. Также известен как идентификатор каталога. subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Идентификатор подписки, используемой для создания ресурсов. clientId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx Идентификатор клиента приложения, которое имеет доступ к ресурсам в клиенте. clientSecret PlaceholderClientSecret Секрет клиента приложения, которое имеет доступ к ресурсам в клиенте. resourceGroupName testrg Имя группы ресурсов, содержащей ваш кластер. clusterName mykustocluster Имя вашего кластера. databaseName mykustodatabase Имя целевой базы данных в вашем кластере. iotHubConnectionName myiothubconnect Необходимое имя вашего подключения для передачи данных. tableName StormEvents Имя целевой таблицы в целевой базе данных. mappingRuleName StormEvents_CSV_Mapping Имя сопоставления столбцов, связанного с целевой таблицей. dataFormat csv Формат данных сообщения. iotHubResourceId Идентификатор ресурса Идентификатор ресурса вашего центра Интернета вещей, в котором хранятся данные для приема. sharedAccessPolicyName iothubforread Имя политики общего доступа, определяющей разрешения для устройств и служб на подключение к Центру Интернета вещей. consumerGroup $Default Группа потребителей вашего концентратора событий. расположение Центральная часть США Расположение ресурса подключения к данным. databaseRouting Multi или Single Маршрутизация базы данных для подключения. Если задано значение Single, подключение к данным направляется в одну базу данных в кластере, как указано в параметре databaseName . Если задать значение Multi, можно переопределить целевую базу данных по умолчанию с помощью свойства приема базы данных. Дополнительные сведения см. в разделе Маршрутизация событий.
Удаление подключения к данным Центр Интернета вещей
Чтобы удалить подключение Центр Интернета вещей, выполните следующую команду:
kustoManagementClient.DataConnections.Delete(resourceGroupName, clusterName, databaseName, dataConnectionName);