Delen via


Gegevens verzenden naar Azure Data Explorer vanuit een gegevensprocessorpijplijn

Belangrijk

Azure IoT Operations Preview: ingeschakeld door Azure Arc is momenteel in PREVIEW. Gebruik deze preview-software niet in productieomgevingen.

U moet een nieuwe Installatie van Azure IoT Operations implementeren wanneer er een algemeen beschikbare release beschikbaar wordt gesteld. U kunt geen preview-installatie upgraden.

Raadpleeg de Aanvullende voorwaarden voor Microsoft Azure-previews voor juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn.

Gebruik de Azure Data Explorer-bestemming om gegevens te schrijven naar een tabel in Azure Data Explorer vanuit een pijplijn voor een gegevensverwerker. In de doelfase worden berichten in batches geplaatst voordat ze naar Azure Data Explorer worden verzonden.

Vereisten

Als u een doelpijplijnfase van Azure Data Explorer wilt configureren en gebruiken, hebt u het volgende nodig:

Azure Data Explorer instellen

Voordat u vanuit een gegevenspijplijn naar Azure Data Explorer kunt schrijven, moet u toegang verlenen tot de database vanuit de pijplijn. U kunt een service-principal of een beheerde identiteit gebruiken om de pijplijn te verifiëren bij de database. Het voordeel van het gebruik van een beheerde identiteit is dat u de levenscyclus van de service-principal niet hoeft te beheren. De beheerde identiteit wordt automatisch beheerd door Azure en is gekoppeld aan de levenscyclus van de resource waaraan deze is toegewezen.

Een service-principal maken met een clientgeheim:

  1. Gebruik de volgende Azure CLI-opdracht om een service-principal te maken.

    az ad sp create-for-rbac --name <YOUR_SP_NAME> 
    
  2. De uitvoer van deze opdracht bevat een appId, displayName, passworden tenant. Noteer deze waarden die u wilt gebruiken wanneer u de toegang tot uw cloudresource configureert, zoals Microsoft Fabric, een geheim maakt en een pijplijnbestemming configureert:

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

Als u beheerderstoegang wilt verlenen tot uw Azure Data Explorer-database, voert u de volgende opdracht uit op het tabblad Databasequery:

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

Voordat de doelfase verbinding kan maken met Azure Data Explorer, moet deze toegang hebben tot een geheim dat de verificatiegegevens bevat. Een geheim maken:

  1. Gebruik de volgende opdracht om een geheim toe te voegen aan uw Azure Key Vault die het clientgeheim bevat dat u hebt genoteerd toen u de service-principal maakte:

    az keyvault secret set --vault-name <your-key-vault-name> --name AccessADXSecret --value <client-secret>
    
  2. Voeg de geheime verwijzing toe aan uw Kubernetes-cluster door de stappen in Geheimen beheren voor uw Azure IoT Operations Preview-implementatie te volgen.

Batching

De gegevensprocessor schrijft in batches naar Azure Data Explorer. Terwijl u gegevens in de gegevensverwerker batcheert voordat u deze verzendt, heeft Azure Data Explorer een eigen standaardbeleid voor opnamebatches. Daarom ziet u uw gegevens mogelijk niet direct in Azure Data Explorer nadat de gegevensverwerker deze naar de Azure Data Explorer-bestemming heeft geschreven.

Als u gegevens in Azure Data Explorer wilt weergeven zodra de pijplijn deze verzendt, kunt u het aantal 1opnamebatches instellen op . Als u het batchverwerkingsbeleid voor opname wilt bewerken, voert u de volgende opdracht uit op het tabblad Databasequery:

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

De doelfase configureren

De JSON-configuratie van de doelfase van Azure Data Explorer definieert de details van de fase. Als u de fase wilt ontwerpen, kunt u communiceren met de gebruikersinterface op basis van formulieren of de JSON-configuratie opgeven op het tabblad Geavanceerd :

Veld Type Beschrijving Vereist Standaardinstelling Opmerking
Weergavenaam String Een naam die moet worden weergegeven in de gebruikersinterface van de gegevensverwerker. Ja - MQTT broker output
Beschrijving String Een gebruiksvriendelijke beschrijving van wat de fase doet. Nee Write to topic default/topic1
Cluster-URL String De URI (deze waarde is niet de gegevensopname-URI). Ja -
Database String De naam van de database. Ja -
Tabel String De naam van de tabel waarnaar moet worden geschreven. Ja -
Batch Batch Gegevens batcheren. Nee 60s 10s
Opnieuw proberen Opnieuw proberen Het beleid voor opnieuw proberen dat moet worden gebruikt. Nee default fixed
Verificatie1 String De verificatiegegevens om verbinding te maken met Azure Data Explorer. Service principal of Managed identity Service-principal Ja -
Kolomnaam > tekenreeks De naam van de kolom. Ja temperature
Pad naar kolommen > Pad De locatie binnen elke record van de gegevens waaruit de waarde van de kolom moet worden gelezen. Nee .{{name}} .temperature

1Verificatie: Momenteel ondersteunt de doelfase verificatie op basis van service-principal of beheerde identiteit wanneer deze verbinding maakt met Azure Data Explorer.

Als u verificatie op basis van een service-principal wilt configureren, geeft u de volgende waarden op. U hebt deze waarden genoteerd toen u de service-principal maakte en de geheime verwijzing naar uw cluster hebt toegevoegd.

Veld Beschrijving Vereist
TenantId De tenant-id. Ja
ClientId De app-id die u hebt genoteerd toen u de service-principal hebt gemaakt die toegang heeft tot de database. Ja
Geheim De geheime verwijzing die u in uw cluster hebt gemaakt. Ja

Voorbeeldconfiguratie

In het volgende JSON-voorbeeld ziet u een volledige azure Data Explorer-doelfaseconfiguratie waarmee het hele bericht naar de quickstart tabel in de database wordt geschreven':

{
    "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
    }
}

De configuratie definieert dat:

  • Berichten worden vijf seconden in batches geplaatst.
  • Gebruikt het batchpad .payload om de gegevens voor de kolommen te zoeken.

Opmerking

In het volgende voorbeeld ziet u een voorbeeld van een invoerbericht voor de doelfase van Azure Data Explorer:

{
  "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"
}