Skicka data till Microsoft Fabric från en databehandlingspipeline

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 Fabric Lakehouse-målet för att skriva data till en lakehouse i Microsoft Fabric från en Azure IoT Data Processor Preview-pipeline. Målsteget skriver parquet-filer till ett lakehouse som gör att du kan visa data i deltatabeller. Målfasen batchar meddelanden innan de skickas till Microsoft Fabric.

Förutsättningar

För att konfigurera och använda ett Microsoft Fabric-målpipelinesteg behöver du:

Konfigurera Microsoft Fabric

Innan du kan skriva till Microsoft Fabric från en datapipeline måste du bevilja åtkomst till lakehouse från pipelinen. Du kan använda antingen tjänstens huvudnamn eller en hanterad identitet för att autentisera pipelinen. 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.

Innan du konfigurerar antingen tjänstens huvudnamn eller hanterade identitetsåtkomst till ett lakehouse aktiverar du autentisering med tjänstens huvudnamn.

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

Så här lägger du till tjänstens huvudnamn på din Microsoft Fabric-arbetsyta:

  1. Anteckna ditt arbetsyte-ID och lakehouse-ID. Du hittar dessa värden i url:en som du använder för att komma åt ditt lakehouse:

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

  2. På din arbetsyta väljer du Hantera åtkomst:

    Skärmbild som visar hur du hittar länken Hantera åtkomst.

  3. Välj Lägg till personer eller grupper:

    Skärmbild som visar hur du lägger till en användare.

  4. Sök efter tjänstens huvudnamn efter namn. Börja skriva för att se en lista över matchande tjänsthuvudnamn. Välj tjänstens huvudnamn som du skapade tidigare:

    Skärmbild som visar hur du lägger till ett huvudnamn för tjänsten.

  5. Ge administratören för tjänstens huvudnamn åtkomst till arbetsytan.

Konfigurera din hemlighet

För att målfasen ska kunna ansluta till Microsoft Fabric 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 AccessFabricSecret --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.

Konfigurera målfasen

JSON-konfigurationen för Fabric Lakehouse-målsteget definierar detaljerna i 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
WorkspaceId String Arbetsyte-ID:t för lakehouse. Ja -
LakehouseId String Lakehouse Lakehouse-ID:t. Ja -
Register String Namnet på tabellen som ska skrivas till. Ja -
Filsökväg1 Mall Filsökvägen för var parquet-filen ska skrivas till. Nej {{{instanceId}}}/{{{pipelineId}}}/{{{partitionId}}}/{{{YYYY}}}/{{{MM}}}/{{{DD}}}/{{{HH}}}/{{{mm}}}/{{{fileNumber}}}
Batch2 Batch Så här batchar du data. Nej 60s 10s
Autentisering4 String Autentiseringsinformationen för att ansluta till Azure Data Explorer. Service principal eller Managed identity Tjänstens huvudnamn Ja -
Försök igen Försök igen Den återförsöksprincip som ska användas. Nej default fixed
Kolumnnamn > sträng Kolumnens namn. Ja temperature
Kolumntyp >3 stränguppräkning Typen av data som lagras i kolumnen med någon av de primitiva deltatyperna. Ja integer
Kolumnsökväg > Sökväg Platsen i varje post för data där du kan läsa värdet för kolumnen. Nej .{{name}} .temperature

1Filsökväg: Om du vill skriva filer till Microsoft Fabric behöver du en filsökväg. Du kan använda mallar för att konfigurera filsökvägar. Filsökvägar måste innehålla följande komponenter i valfri ordning:

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

Filnamnen är inkrementella heltalsvärden som anges av fileNumber. Se till att inkludera ett filnamnstillägg om du vill att systemet ska känna igen filtypen.

2Batchbearbetning: Batchbearbetning är obligatoriskt när du skriver data till Microsoft Fabric. Målsteget batchar meddelanden över ett konfigurerbart tidsintervall.

Om du inte konfigurerar ett batchintervall använder fasen 60 sekunder som standard.

3Typ: Dataprocessorn skriver till Microsoft Fabric med hjälp av deltaformatet. Dataprocessorn stöder alla delta primitiva datatyper förutom decimal och timestamp without time zone.

Kontrollera att alla datum och tider representeras korrekt i Microsoft Fabric genom att kontrollera att värdet för egenskapen är en giltig RFC 3339-sträng och att datatypen är antingen date eller timestamp.

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

Tjänsthuvudnamnsbaserad autentisering

Ange följande värden för att konfigurera tjänsthuvudnamnsbaserad autentisering. 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 microsoft fabric lakehouse-målfaskonfiguration som skriver hela meddelandet till quickstart tabellen i databasen":

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

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 Microsoft Fabric Lakehouse-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"
}