Condividi tramite


Inviare dati a Microsoft Fabric da una pipeline del responsabile del trattamento dei dati

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 Fabric Lakehouse per scrivere dati in una lakehouse in Microsoft Fabric da una pipeline di anteprima del processore di dati IoT di Azure. La fase di destinazione scrive i file parquet in una lakehouse che consente di visualizzare i dati nelle tabelle delta. La fase di destinazione raggruppa i messaggi prima di inviarli a Microsoft Fabric.

Prerequisiti

Per configurare e usare una fase della pipeline di destinazione di Microsoft Fabric, è necessario:

Configurare Microsoft Fabric

Prima di poter scrivere in Microsoft Fabric da una pipeline di dati, è necessario concedere l'accesso alla lakehouse dalla pipeline. È possibile usare un'entità servizio o un'identità gestita per autenticare la pipeline. 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.

Prima di configurare l'accesso dell'entità servizio o dell'identità gestita a un lakehouse, abilitare l'autenticazione dell'entità servizio.

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 aggiungere l'entità servizio all'area di lavoro di Microsoft Fabric:

  1. Prendere nota dell'ID dell'area di lavoro e dell'ID lakehouse. È possibile trovare questi valori nell'URL usato per accedere al lakehouse:

    https://msit.powerbi.com/groups/<your workspace ID>/lakehouses/<your lakehouse ID>?experience=data-engineering

  2. Nell'area di lavoro selezionare Gestisci accesso:

    Screenshot che mostra come trovare il collegamento Gestisci accesso.

  3. Selezionare Aggiungi persone o gruppi:

    Screenshot che mostra come aggiungere un utente.

  4. Cercare l'entità servizio in base al nome. Iniziare a digitare per visualizzare un elenco di entità servizio corrispondenti. Selezionare l'entità servizio creata in precedenza:

    Screenshot che mostra come aggiungere un'entità servizio.

  5. Concedere all'amministratore dell'entità servizio l'accesso all'area di lavoro.

Configurare il segreto

Affinché la fase di destinazione si connetta a Microsoft Fabric, 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 AccessFabricSecret --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.

Configurare la fase di destinazione

La configurazione JSON della fase di destinazione Fabric Lakehouse 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
WorkspaceId String ID dell'area di lavoro lakehouse. -
LakehouseId String ID lakehouse Lakehouse. -
Tabella String Nome della tabella in cui scrivere. -
Percorsofile 1 Modello Percorso del file in cui scrivere il file parquet. No {{{instanceId}}}/{{{pipelineId}}}/{{{partitionId}}}/{{{YYYY}}}/{{{MM}}}/{{{DD}}}/{{{HH}}}/{{{mm}}}/{{{fileNumber}}}
Batch2 Batch Come eseguire il batch dei dati. No 60s 10s
Autenticazione4 String Dettagli di autenticazione per connettersi ad Azure Esplora dati. Service principal oppure Managed identity Entità servizio -
Riprova Riprova Criterio di ripetizione dei tentativi da usare. No default fixed
Nome colonne > string Nome della colonna. temperature
Colonne > di tipo3 stringa enumerazione Tipo di dati contenuti nella colonna, utilizzando uno dei tipi primitivi Delta. integer
Percorso colonne > Percorso Posizione all'interno di ogni record dei dati da cui leggere il valore della colonna. No .{{name}} .temperature

1Percorso file: per scrivere file in Microsoft Fabric, è necessario un percorso di file. È possibile usare i modelli per configurare i percorsi dei file. I percorsi di file devono contenere i componenti seguenti in qualsiasi ordine:

  • instanceId
  • pipelineId
  • partitionId
  • YYYY
  • MM
  • DD
  • HH
  • mm
  • fileNumber

I nomi dei file sono valori integer incrementali, come indicato da fileNumber. Assicurarsi di includere un'estensione di file se si vuole che il sistema riconosca il tipo di file.

2Invio in batch: l'invio in batch è obbligatorio quando si scrivono dati in Microsoft Fabric. La fase di destinazione raggruppa i messaggi in un intervallo di tempo configurabile.

Se non si configura un intervallo di invio in batch, la fase usa 60 secondi come impostazione predefinita.

3Tipo: il responsabile del trattamento dei dati scrive in Microsoft Fabric usando il formato differenziale. Il responsabile del trattamento dei dati supporta tutti i tipi di dati primitivi differenziali ad eccezione di decimal e timestamp without time zone.

Per garantire che tutte le date e le ore siano rappresentate correttamente in Microsoft Fabric, assicurarsi che il valore della proprietà sia una stringa RFC 3339 valida e che il tipo di dati sia date o timestamp.

1Autenticazione: attualmente, la fase di destinazione supporta l'autenticazione basata su entità servizio o l'identità gestita quando si connette a Microsoft Fabric.

Autenticazione basata su entità servizio

Per configurare l'autenticazione basata sull'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 Microsoft Fabric lakehouse che scrive l'intero messaggio nella quickstart tabella nel database':

{
    "displayName": "Fabric Lakehouse - 520f54",
    "type": "output/fabric@v1",
    "viewOptions": {
        "position": {
            "x": 0,
            "y": 784
        }
    },
    "workspace": "workspaceId",
    "lakehouse": "lakehouseId",
    "table": "quickstart",
    "columns": [
        {
            "name": "Timestamp",
            "type": "timestamp",
            "path": ".Timestamp"
        },
        {
            "name": "AssetName",
            "type": "string",
            "path": ".assetname"
        },
        {
            "name": "Customer",
            "type": "string",
            "path": ".Customer"
        },
        {
            "name": "Batch",
            "type": "integer",
            "path": ".Batch"
        },
        {
            "name": "CurrentTemperature",
            "type": "float",
            "path": ".CurrentTemperature"
        },
        {
            "name": "LastKnownTemperature",
            "type": "float",
            "path": ".LastKnownTemperature"
        },
        {
            "name": "Pressure",
            "type": "float",
            "path": ".Pressure"
        },
        {
            "name": "IsSpare",
            "type": "boolean",
            "path": ".IsSpare"
        }
    ],
    "authentication": {
        "type": "servicePrincipal",
        "tenantId": "tenantId",
        "clientId": "clientId",
        "clientSecret": "secretReference"
    },
    "batch": {
        "time": "5s",
        "path": ".payload"
    },
    "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 Microsoft Fabric lakehouse:

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