Condividi tramite


Inviare dati ad Azure Esplora dati da una pipeline di anteprima del processore di dati IoT di Azure

Importante

Anteprima delle operazioni di Azure IoT: abilitata da Azure Arc è attualmente disponibile in ANTEPRIMA. Non è consigliabile usare questo software di anteprima negli ambienti di produzione.

Vedere le condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure per termini legali aggiuntivi che si applicano a funzionalità di Azure in versione beta, in anteprima o in altro modo non ancora disponibili a livello generale.

Usare la destinazione di Azure Esplora dati per scrivere dati in una tabella in Azure Esplora dati da una pipeline di anteprima del processore di dati IoT di Azure. La fase di destinazione raggruppa i messaggi prima di inviarli ad Azure Esplora dati.

Prerequisiti

Per configurare e usare una fase della pipeline di destinazione di Azure Esplora dati, è necessario:

  • Istanza distribuita del responsabile del trattamento dei dati.
  • Un cluster di Azure Esplora dati.
  • Un database nel cluster Esplora dati di Azure.

Configurare Azure Esplora dati

Prima di poter scrivere in Azure Esplora dati da una pipeline di dati, è necessario concedere l'accesso al database dalla pipeline. È possibile usare un'entità servizio o un'identità gestita per autenticare la pipeline nel database. Il vantaggio dell'uso di un'identità gestita è che non è necessario gestire il ciclo di vita dell'entità servizio. L'identità gestita viene gestita automaticamente da Azure ed è associata al ciclo di vita della risorsa a cui viene assegnata.

Per creare un'entità servizio con un segreto client:

  1. Usare il comando seguente dell'interfaccia della riga di comando di Azure per creare un'entità servizio.

    az ad sp create-for-rbac --name <YOUR_SP_NAME> 
    
  2. L'output di questo comando include un appIdoggetto , displayName, passworde tenant. Prendere nota di questi valori da usare quando si configura l'accesso alla risorsa cloud, ad esempio Microsoft Fabric, creare un segreto e configurare una destinazione della pipeline:

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

Per concedere all'amministratore l'accesso al database di Azure Esplora dati, eseguire il comando seguente nella scheda query del database:

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

Per la fase di destinazione per connettersi ad Azure Esplora dati, deve accedere a un segreto che contiene i dettagli di autenticazione. Per creare un segreto:

  1. Usare il comando seguente per aggiungere un segreto all'insieme di credenziali delle chiavi di Azure contenente il segreto client annotato quando è stata creata l'entità servizio:

    az keyvault secret set --vault-name <your-key-vault-name> --name AccessADXSecret --value <client-secret>
    
  2. Aggiungere il riferimento al segreto al cluster Kubernetes seguendo la procedura descritta in Gestire i segreti per la distribuzione di Azure IoT Operations Preview.

Batch

Il responsabile del trattamento dei dati scrive in Azure Esplora dati in batch. Mentre si esegue il batch dei dati nel responsabile del trattamento dei dati prima di inviarli, Azure Esplora dati ha i propri criteri di invio batch di inserimento predefiniti. Di conseguenza, è possibile che i dati non vengano visualizzati in Azure Esplora dati immediatamente dopo che il responsabile del trattamento dei dati lo scrive nella destinazione di Azure Esplora dati.

Per visualizzare i dati in Azure Esplora dati non appena la pipeline li invia, è possibile impostare il conteggio dei criteri di inserimento in batch su 1. Per modificare i criteri di inserimento in batch, eseguire il comando seguente nella scheda query del database:

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

Configurare la fase di destinazione

La configurazione JSON della fase di destinazione di Azure Esplora dati definisce i dettagli della fase. Per creare la fase, è possibile interagire con l'interfaccia utente basata su form o specificare la configurazione JSON nella scheda Avanzate :

Campo Tipo Descrizione Richiesto Valore predefinito Esempio
Nome visualizzato String Nome da visualizzare nell'interfaccia utente del responsabile del trattamento dei dati. - Azure IoT MQ output
Descrizione Stringa Descrizione descrittiva delle operazioni della fase. No Write to topic default/topic1
URL cluster String URI (questo valore non è l'URI di inserimento dati). -
Database String Nome del database. -
Tabella String Nome della tabella in cui scrivere. -
Batch Batch Come eseguire il batch dei dati. No 60s 10s
Riprova Riprova Criterio di ripetizione dei tentativi da usare. No default fixed
Autenticazione1 String Dettagli di autenticazione per connettersi ad Azure Esplora dati. Service principal oppure Managed identity Entità servizio -
Nome colonne > string Nome della colonna. temperature
Percorso colonne > Percorso Posizione all'interno di ogni record dei dati da cui deve essere letto il valore della colonna. No .{{name}} .temperature

1Autenticazione: attualmente, la fase di destinazione supporta l'autenticazione basata su entità servizio o l'identità gestita quando si connette ad Azure Esplora dati.

Per configurare l'autenticazione basata su entità servizio, specificare i valori seguenti. Dopo aver creato l'entità servizio, è stato preso nota di questi valori e è stato aggiunto il riferimento al segreto al cluster.

Campo Descrizione Richiesto
TenantId ID tenant.
ClientId ID app annotato quando è stata creata l'entità servizio che ha accesso al database.
Segreto Riferimento al segreto creato nel cluster.

Configurazione di esempio

L'esempio JSON seguente mostra una configurazione completa della fase di destinazione di Azure Esplora dati che scrive l'intero messaggio nella quickstart tabella nel database':

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

La configurazione definisce che:

  • I messaggi vengono inseriti in batch per 5 secondi.
  • Usa il percorso .payload batch per individuare i dati per le colonne.

Esempio

L'esempio seguente mostra un messaggio di input di esempio nella fase di destinazione di Azure Esplora dati:

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