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:
- En distribuerad instans av dataprocessorn.
- En Microsoft Fabric-prenumeration. Eller registrera dig för en kostnadsfri utvärderingsversion av Microsoft Fabric (förhandsversion).
- Ett sjöhus i Microsoft Fabric.
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:
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>
Utdata från det här kommandot innehåller en
appId
,displayName
,password
ochtenant
. 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:
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
På din arbetsyta väljer du Hantera åtkomst:
Välj Lägg till personer eller grupper:
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:
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:
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>
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"
}