Creare una connessione dati hub IoT per Azure Esplora dati con SDK
Questo articolo illustra come inserire dati in Azure Esplora dati da hub IoT, una piattaforma di streaming Di Big Data e un servizio di inserimento IoT.
Per informazioni su come creare la connessione usando gli SDK Kusto, vedere Creare una connessione dati hub IoT con gli SDK.
Per informazioni generali sull'inserimento in Azure Esplora dati da hub IoT, vedere Connettersi a hub IoT.
Nota
Vengono inseriti solo gli eventi accodati dopo aver creato la connessione dati.
Per esempi di codice basati sulle versioni precedenti dell'SDK, vedere l'articolo archiviato.
Prerequisiti
- Una sottoscrizione di Azure. Creare un account Azure gratuito.
- Un cluster e un database di Esplora dati di Azure. Creare un cluster e un database.
- Tabella di destinazione. Creare una tabella o usare una tabella esistente.
- Mapping di inserimento per la tabella.
- Un hub IoT con dati per l'inserimento.
Creare una connessione dati hub IoT
In questa sezione si stabilirà una connessione tra la hub IoT e la tabella di Azure Esplora dati. Purché questa connessione sia attivata, i dati vengono trasmessi dalla hub IoT alla tabella di destinazione.
Installare il pacchetto Microsoft.Azure.Management.Kusto NuGet.
Creare un'entità applicazione Microsoft Entra da usare per l'autenticazione. Sono necessari l'ID directory (tenant), l'ID applicazione e il segreto client.
Eseguire il codice seguente.
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);
Impostazione Valore consigliato Descrizione campo tenantId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx ID tenant. Noto anche come ID directory. subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx L'ID sottoscrizione usato per la creazione di risorse. clientId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx L'ID client dell'applicazione che può accedere alle risorse nel tenant. clientSecret PlaceholderClientSecret Il segreto client dell'applicazione che può accedere alle risorse nel tenant. resourceGroupName testrg Nome del gruppo di risorse contenente il cluster. clusterName mykustocluster Nome del cluster. databaseName mykustodatabase Nome del database di destinazione nel cluster. iotHubConnectionName myiothubconnect Nome desiderato della connessione dati. tableName StormEvents Nome della tabella di destinazione nel database di destinazione. mappingRuleName StormEvents_CSV_Mapping Nome del mapping delle colonne correlato alla tabella di destinazione. dataFormat csv Formato dei dati del messaggio. iotHubResourceId ID risorsa ID risorsa dell'hub IoT che contiene i dati per l'inserimento. sharedAccessPolicyName iothubforread Nome dei criteri di accesso condiviso che definisce le autorizzazioni per i dispositivi e i servizi da connettere a hub IoT. consumerGroup $Default Gruppo di consumer dell'hub eventi. posizione Stati Uniti centrali Posizione della risorsa di connessione dati. databaseRouting Multi o Single Routing del database per la connessione. Se si imposta il valore su Single, la connessione dati viene instradata a un singolo database nel cluster come specificato nell'impostazione databaseName . Se si imposta il valore su Multi, è possibile eseguire l'override del database di destinazione predefinito usando la proprietà inserimento database. Per altre informazioni, vedere Routing degli eventi.
Rimuovere una connessione dati hub IoT
Per rimuovere la connessione hub IoT, eseguire il comando seguente:
kustoManagementClient.DataConnections.Delete(resourceGroupName, clusterName, databaseName, dataConnectionName);