Skicka data till Azure Data Explorer från en azure IoT Data Processor Preview-pipeline

Viktigt!

Förhandsversion av Azure IoT Operations – aktiverad av Azure Arc finns för närvarande i FÖRHANDSVERSION. Du bör inte använda den här förhandsgranskningsprogramvaran i produktionsmiljöer.

Juridiska villkor för Azure-funktioner i betaversion, förhandsversion eller som av någon annan anledning inte har gjorts allmänt tillgängliga ännu finns i kompletterande användningsvillkor för Microsoft Azure-förhandsversioner.

Använd Azure Data Explorer-målet för att skriva data till en tabell i Azure Data Explorer från en Azure IoT Data Processor Preview-pipeline. Målfasen batchar meddelanden innan de skickas till Azure Data Explorer.

Förutsättningar

För att konfigurera och använda en Azure Data Explorer-målpipelinefas behöver du:

Konfigurera Azure Data Explorer

Innan du kan skriva till Azure Data Explorer från en datapipeline måste du bevilja åtkomst till databasen från pipelinen. Du kan använda antingen tjänstens huvudnamn eller en hanterad identitet för att autentisera pipelinen till databasen. Fördelen med att använda en hanterad identitet är att du inte behöver hantera livscykeln för tjänstens huvudnamn. Den hanterade identiteten hanteras automatiskt av Azure och är kopplad till livscykeln för den resurs som den har tilldelats.

Så här skapar du ett huvudnamn för tjänsten med en klienthemlighet:

  1. Använd följande Azure CLI-kommando för att skapa ett huvudnamn för tjänsten.

    az ad sp create-for-rbac --name <YOUR_SP_NAME> 
    
  2. Utdata från det här kommandot innehåller en appId, displayName, passwordoch tenant. Anteckna de här värdena som ska användas när du konfigurerar åtkomsten till din molnresurs, till exempel Microsoft Fabric, skapar en hemlighet och konfigurerar ett pipelinemål:

    {
        "appId": "<app-id>",
        "displayName": "<name>",
        "password": "<client-secret>",
        "tenant": "<tenant-id>"
    }
    

Om du vill ge administratören åtkomst till din Azure Data Explorer-databas kör du följande kommando på fliken databasfråga:

.add database <DatabaseName> admins (<ApplicationId>) <Notes>

För att målfasen ska kunna ansluta till Azure Data Explorer behöver den åtkomst till en hemlighet som innehåller autentiseringsinformationen. Så här skapar du en hemlighet:

  1. Använd följande kommando för att lägga till en hemlighet i ditt Azure Key Vault som innehåller klienthemligheten som du antecknade när du skapade tjänstens huvudnamn:

    az keyvault secret set --vault-name <your-key-vault-name> --name AccessADXSecret --value <client-secret>
    
  2. Lägg till den hemliga referensen till ditt Kubernetes-kluster genom att följa stegen i Hantera hemligheter för distributionen av Azure IoT Operations Preview.

Batchbearbetning

Dataprocessor skriver till Azure Data Explorer i batchar. Medan du batchar data i dataprocessorn innan du skickar dem har Azure Data Explorer en egen standardprincip för inmatningsbatchbearbetning. Därför kanske du inte ser dina data i Azure Data Explorer omedelbart efter att dataprocessorn har skrivit dem till Azure Data Explorer-målet.

Om du vill visa data i Azure Data Explorer så snart pipelinen skickar dem kan du ange antalet inmatningsbatchprinciper till 1. Om du vill redigera inmatningsbatchprincipen kör du följande kommando på fliken databasfråga:

.alter database <your-database-name> policy ingestionbatching
```
{
    "MaximumBatchingTimeSpan" : "00:00:30",
    "MaximumNumberOfItems" : 1,
    "MaximumRawDataSizeMB": 1024
}
```

Konfigurera målfasen

JSON-konfigurationen för Azure Data Explorer-målsteget definierar information om fasen. Om du vill skapa fasen kan du antingen interagera med det formulärbaserade användargränssnittet eller ange JSON-konfigurationen på fliken Avancerat :

Fält Type Beskrivning Obligatoriskt Standardvärde Exempel
Visningsnamn String Ett namn som ska visas i användargränssnittet för dataprocessorn. Ja - Azure IoT MQ output
beskrivning String En användarvänlig beskrivning av vad fasen gör. Nej Write to topic default/topic1
Kluster-URL String URI :n (Det här värdet är inte URI för datainmatning). Ja -
Databas String Databasnamnet. Ja -
Register String Namnet på tabellen som ska skrivas till. Ja -
Batch Batch Så här batchar du data. Nej 60s 10s
Försök igen Försök igen Den återförsöksprincip som ska användas. Nej default fixed
Autentisering1 String Autentiseringsinformationen för att ansluta till Azure Data Explorer. Service principal eller Managed identity Tjänstens huvudnamn Ja -
Kolumnnamn > sträng Kolumnens namn. Ja temperature
Kolumnsökväg > Sökväg Platsen i varje post för de data där värdet för kolumnen ska läsas från. Nej .{{name}} .temperature

1Autentisering: För närvarande stöder målsteget tjänsthuvudnamnsbaserad autentisering eller hanterad identitet när den ansluter till Azure Data Explorer.

Om du vill konfigurera tjänsthuvudnamnsbaserad autentisering anger du följande värden. Du antecknade dessa värden när du skapade tjänstens huvudnamn och lade till den hemliga referensen i klustret.

Fält beskrivning Obligatoriskt
TenantId Klientorganisations-ID:t. Ja
ClientId App-ID:t som du antecknade när du skapade tjänstens huvudnamn som har åtkomst till databasen. Ja
Hemlig Den hemliga referens som du skapade i klustret. Ja

Exempelkonfiguration

I följande JSON-exempel visas en fullständig konfiguration av Azure Data Explorer-målsteget som skriver hela meddelandet till quickstart tabellen i databasen":

{
    "displayName": "Azure data explorer - 71c308",
    "type": "output/dataexplorer@v1",
    "viewOptions": {
        "position": {
            "x": 0,
            "y": 784
        }
    },
    "clusterUrl": "https://clusterurl.region.kusto.windows.net",
    "database": "databaseName",
    "table": "quickstart",
    "authentication": {
        "type": "servicePrincipal",
        "tenantId": "tenantId",
        "clientId": "clientId",
        "clientSecret": "secretReference"
    },
    "batch": {
        "time": "5s",
        "path": ".payload"
    },
    "columns": [
        {
            "name": "Timestamp",
            "path": ".Timestamp"
        },
        {
            "name": "AssetName",
            "path": ".assetName"
        },
        {
            "name": "Customer",
            "path": ".Customer"
        },
        {
            "name": "Batch",
            "path": ".Batch"
        },
        {
            "name": "CurrentTemperature",
            "path": ".CurrentTemperature"
        },
        {
            "name": "LastKnownTemperature",
            "path": ".LastKnownTemperature"
        },
        {
            "name": "Pressure",
            "path": ".Pressure"
        },
        {
            "name": "IsSpare",
            "path": ".IsSpare"
        }
    ],
    "retry": {
        "type": "fixed",
        "interval": "20s",
        "maxRetries": 4
    }
}

Konfigurationen definierar att:

  • Meddelanden batchas i 5 sekunder.
  • Använder batchsökvägen .payload för att hitta data för kolumnerna.

Exempel

I följande exempel visas ett exempel på ett indatameddelande till Azure Data Explorer-målsteget:

{
  "payload": {
    "Batch": 102,
    "CurrentTemperature": 7109,
    "Customer": "Contoso",
    "Equipment": "Boiler",
    "IsSpare": true,
    "LastKnownTemperature": 7109,
    "Location": "Seattle",
    "Pressure": 7109,
    "Timestamp": "2023-08-10T00:54:58.6572007Z",
    "assetName": "oven"
  },
  "qos": 0,
  "systemProperties": {
    "partitionId": 0,
    "partitionKey": "quickstart",
    "timestamp": "2023-11-06T23:42:51.004Z"
  },
  "topic": "quickstart"
}