Vytvoření datového připojení ioT Hubu pro Azure Data Explorer pomocí sad SDK
Tento článek ukazuje, jak ingestovat data do Azure Data Exploreru ze služby IoT Hub, platformy pro streamování velkých objemů dat a služby pro příjem dat IoT.
Informace o vytvoření připojení pomocí sad SDK Kusto najdete v tématu Vytvoření datového připojení služby IoT Hub pomocí sad SDK.
Obecné informace o ingestování do Azure Data Exploreru ze služby IoT Hub najdete v tématu Připojení ke službě IoT Hub.
Poznámka:
Po vytvoření datového připojení se ingestují pouze události, které se zařadí do fronty.
Ukázky kódu založené na předchozích verzích sady SDK najdete v archivovaného článku.
Požadavky
- Předplatné Azure. Vytvořte bezplatný účet Azure.
- Cluster a databáze Azure Data Exploreru. Vytvořte cluster a databázi.
- Cílová tabulka. Vytvořte tabulku nebo použijte existující tabulku.
- Mapování příjmu dat pro tabulku.
- IoT Hub s daty pro příjem dat.
Vytvoření datového připojení ioT Hubu
V této části vytvoříte propojení mezi IoT Hubem a tabulkou Azure Data Exploreru. Pokud je toto připojení na místě, data se přenášejí z IoT Hubu do cílové tabulky.
Nainstalujte balíček NuGet Microsoft.Azure.Management.Kusto.
Vytvořte objekt zabezpečení aplikace Microsoft Entra, který se použije k ověřování. Budete potřebovat ID adresáře (tenanta), ID aplikace a tajný klíč klienta.
Spusťte následující kód.
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);
Nastavení Navrhovaná hodnota Popis pole tenantId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx ID vašeho tenanta Označuje se také jako ID adresáře. subscriptionId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx ID předplatného, které používáte k vytvoření prostředku. clientId xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxx ID klienta aplikace, která má přístup k prostředkům ve vašem tenantovi. clientSecret PlaceholderClientSecret Tajný klíč klienta aplikace, která má přístup k prostředkům ve vašem tenantovi. resourceGroupName testrg Název skupiny prostředků obsahující váš cluster. clusterName mykustocluster Název clusteru. databaseName mykustodatabase Název cílové databáze v clusteru iotHubConnectionName myiothubconnect Požadovaný název datového připojení. tableName StormEvents Název cílové tabulky v cílové databázi. mappingRuleName StormEvents_CSV_Mapping Název mapování sloupců související s cílovou tabulkou. dataFormat csv Formát dat zprávy. iotHubResourceId ID prostředku ID prostředku vašeho centra IoT, které obsahuje data pro příjem dat. sharedAccessPolicyName iothubforread Název zásady sdíleného přístupu, která definuje oprávnění pro zařízení a služby pro připojení ke službě IoT Hub. consumerGroup $Default Skupina příjemců vašeho centra událostí. location USA – střed Umístění prostředku datového připojení databaseRouting Více nebo jednoúčelový Směrování databáze pro připojení. Pokud nastavíte hodnotu Single, datové připojení se směruje do izolované databáze v clusteru, jak je uvedeno v nastavení databaseName . Pokud nastavíte hodnotu na Více, můžete výchozí cílovou databázi přepsat pomocí vlastnosti Příjem dat databáze. Další informace naleznete v tématu Směrování událostí.
Odebrání datového připojení ioT Hubu
Pokud chcete odebrat připojení ioT Hubu, spusťte následující příkaz:
kustoManagementClient.DataConnections.Delete(resourceGroupName, clusterName, databaseName, dataConnectionName);