Sdílet prostřednictvím


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

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.

  1. Nainstalujte balíček NuGet Microsoft.Azure.Management.Kusto.

  2. 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.

  3. 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);