Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln visar hur du använder parametrar i dina Data Factory-pipelines i Fabric så att du kan skapa flexibla, återanvändbara arbetsflöden.
Använda parametrar, uttryck och funktioner i Data Factory-pipelines
I det här avsnittet går vi igenom grunderna för att skapa parametriserade pipelines i Data Factory för Fabric med hjälp av tydliga exempel längs vägen. Parametrar och dynamiska uttryck sparar tid och gör att du kan skapa flexibla lösningar för extrahering, transformering, inläsning (ETL) eller extrahering, inläsning, transformering (ELT). De minskar hård kodning och gör att du kan återanvända objekt och processer, vilket gör pipelines enklare att underhålla och gör att du kan skicka nya funktioner snabbare.
Parameter- och uttrycksbegrepp
Du kan använda parametrar för att skicka externa värden till dina pipelines. När du har angett en parameter förblir dess värde detsamma under hela körningen. Med parametrar kan du återanvända samma pipeline med olika värden varje gång. Du kan använda parametrar på egen hand eller inuti uttryck, med värden som antingen är fasta eller beräknade när pipelinen körs.
Uttryck kan gå var som helst i ett strängvärde och returnera alltid ett annat strängvärde. Om du till exempel använder @passwordbehandlar pipelinen lösenord som en parameter. Om värdet är ett uttryck tar du bort @ för att hämta det faktiska innehållet. Om du vill använda en sträng som börjar med @kan du undvika den genom att skriva @@. I följande exempel visas hur detta fungerar i praktiken.
| Parametervärde | Result |
|---|---|
| "parameters" | Ordet "parameters" returneras. |
| "parameters[1]" | Tecknen "parameters[1]" sänds tillbaka. |
| "@@" | En sträng med 1 tecken som innehåller @returneras. |
| " @" | En sträng med två tecken som innehåller @returneras. |
Uttryck kan också visas inuti strängar via stränginterpolation, där du omsluter uttryck i @{ ... }. Följande sträng innehåller till exempel parametervärden och literala strängvärden:
"Förnamn: @{pipeline().parameters.firstName} Efternamn: @{pipeline().parameters.lastName}"
Stränginterpolation returnerar alltid en sträng. Om du till exempel definierar myNumber som 42 och myString som foo:
| Parametervärde | Result |
|---|---|
| "@pipeline().parameters.myString" | Returnerar foo som en sträng. |
| "@{pipeline().parameters.myString}" | Returnerar foo som en sträng. |
| "@pipeline().parameters.myNumber" | Returnerar 42 som ett tal. |
| "@{pipeline().parameters.myNumber}" | Returnerar 42 som en sträng. |
| "Svaret är: @{pipeline().parameters.myNumber}" | Returnerar strängen Answer is: 42. |
| "@concat('Svaret är: ', string(pipeline().parameters.myNumber))" | Returnerar strängen Answer is: 42 |
| "Svaret är: @@{pipeline().parameters.myNumber}" | Returnerar strängen Answer is: @{pipeline().parameters.myNumber}. |
Exempel på parameteruttryck
Skapa och använda parametrar
Om du vill skapa parametrar väljer du bakgrunden för pipelineredigerarens arbetsyta och väljer sedan fliken Parametrar i egenskapsfönstret längst ned. Välj + Ny för att lägga till en parameter i pipelinen och ge den ett namn, en datatyp och ett standardvärde:
Du kan sedan använda parametern var som helst där din pipeline stöder dynamiskt innehåll. I det här exemplet anger parametern dynamiskt namnet på ett lakehouse-datalager på fliken Källa på egenskapssidorna för kopieringsaktiviteten.
Fönstret Lägg till dynamiskt innehåll öppnas. Använd det för att ange alla typer av dynamiskt innehåll, inklusive parametrar, systemvariabler, funktioner eller pipelinevariabler. I det här exemplet väljer du den parameter som du definierade tidigare och fönstret för dynamiskt innehåll fylls automatiskt i med rätt uttryck för att referera till den.
Parametrisera anslutningar
Om du vill parametrisera anslutningar i pipelines använder du den globalt unika identifieraren (GUID) för anslutningen som du vill ersätta dynamiskt.
- Innan du ändrar anslutningen dynamiskt i pipelinen hämtar du GUID för den anslutning som du vill ange.
- Gå till Inställningar>Hantera anslutningar och gatewayer.
- Leta upp anslutningsnamnet och välj ellipsen (...) bredvid den.
- Välj Inställningar och kopiera anslutnings-ID:t.
- Klistra in GUID i en strängparameter och referera till parametern i ditt dynamiska uttryck.
Exempel på komplext uttryck
Följande uttryck refererar till ett djupt underfält med aktivitetsutdata. Om du vill referera till en pipelineparameter som utvärderas till ett underfält använder du [] syntaxen i stället för punktoperatorn (.) som med subfield1 och subfield2.
@activity('*activityName*').output.*subfield1*.*subfield2*[pipeline().parameters.*subfield3*].*subfield4*
Redigerare för dynamiskt innehåll
Redigeraren för dynamiskt innehåll gömmer automatiskt tecken i innehållet när du är klar med redigeringen. Följande innehåll i innehållsredigeraren är till exempel en stränginterpolation med en uttrycksfunktion:
@{toUpper('myData')}
Redigeraren för dynamiskt innehåll konverterar det tidigare innehållet till följande uttryck:
MYDATA
Använda funktioner och variabler i uttryck
Du kan anropa funktioner och använda variabler i uttryck. Följande avsnitt innehåller information om de funktioner som kan användas i ett uttryck.
Pipelineomfångsvariabler
Du kan referera till dessa systemvariabler var som helst i pipeline-JSON.
| Variabelnamn | Description |
|---|---|
| @pipeline().DataFactory | Namnet på arbetsytan där pipelinekörningen körs |
| @pipeline().Pipeline | Namn på pipelinen |
| @pipeline().RunId | ID för den specifika pipelinekörningen |
| @pipeline().TriggerId | ID för utlösaren som anropade pipelinen |
| @pipeline().TriggerName | Namnet på utlösaren som anropade pipelinen |
| @pipeline().TriggerTime | Tidpunkten för den utlösarkörning som anropade pipelinen. Det här värdet är den tidpunkt då utlösaren faktiskt kördes för att starta pipelinekörningen, och denna tidpunkt kan skilja sig något från utlösarens schemalagda tidpunkt. |
| @pipeline().GroupId | ID för den grupp som pipelinekörningen tillhör. I Microsoft Fabric är en grupp en samling relaterade resurser som du hanterar tillsammans. Grupper organiserar och styr åtkomsten till resurser, vilket gör det enklare att hantera behörigheter och övervaka aktiviteter i flera pipelines. |
| @pipeline()?.UtlöstAvPipelineNamn | Namnet på pipelinen som utlöser pipelinekörningen. Gäller när aktiviteten Kör pipeline utlöser en pipelinekörning. Utvärderas till Null i andra fall. Observera frågetecknet efter @pipeline(). |
| @pipeline()?. TriggeredByPipelineRunId | Kör-ID för pipelinen som triggar pipelinekörningen. Gäller när aktiviteten Kör pipeline utlöser pipelinekörningen. Utvärderas till Null i andra fall. Observera frågetecknet efter @pipeline(). |
Note
Utlösarrelaterade systemvariabler för datum/tid (i både pipeline- och utlösarkontext) returnerar datum/tid i UTC (Coordinated Universal Time) i ISO 8601-format, till exempel 2017-06-01T22:20:00.4061448Z.
Strängfunktioner
Om du vill arbeta med strängar använder du dessa strängfunktioner och även vissa samlingsfunktioner. Strängfunktioner fungerar endast på strängar.
| Strängfunktion | Task |
|---|---|
| concat | Kombinera två eller flera strängar och returnera den kombinerade strängen. |
| endsWith | Kontrollera om en sträng slutar med den angivna delsträngen. |
| guid | Generera en globalt unik identifierare (GUID) som en sträng. |
| indexOf | Returnera startpositionen för en delsträng. |
| lastIndexOf | Returnera startpositionen för den sista förekomsten av en delsträng. |
| replace | Ersätt en delsträng med den angivna strängen och returnera den uppdaterade strängen. |
| split | Returnera en matris som innehåller delsträngar, avgränsade med kommatecken, från en större sträng baserat på ett angivet avgränsartecken i den ursprungliga strängen. |
| startsWith | Kontrollera om en sträng börjar med en specifik delsträng. |
| substring | Returnera tecken från en sträng med början från den angivna positionen. |
| toLower | Returnera en sträng i gemener. |
| toUpper | Returnera en sträng i versaler. |
| trim | Ta bort inledande och avslutande blanksteg från en sträng och returnera den uppdaterade strängen. |
Samlingsfunktioner
Om du vill arbeta med samlingar som matriser, strängar och ordlistor använder du dessa samlingsfunktioner.
| Samlingsfunktion | Task |
|---|---|
| contains | Kontrollera om en samling har ett specifikt objekt. |
| empty | Kontrollera om en samling är tom. |
| first | Returnera det första objektet från en samling. |
| intersection | Returnera en samling som bara har vanliga objekt i de angivna samlingarna. |
| join | Returnera en sträng som har alla objekten från en matris, avgränsade med det angivna tecknet. |
| last | Returnera det sista objektet från en samling. |
| length | Returnera antalet objekt i en sträng eller matris. |
| skip | Ta bort objekt från framsidan av en samling och returnera alla andra objekt. |
| take | Returnera objekt från framsidan av en samling. |
| union | Returnera en samling som innehåller alla objekt från de angivna samlingarna. |
Logiska funktioner
Använd dessa funktioner inuti villkor för att utvärdera alla typer av logik.
| Logisk jämförelsefunktion | Task |
|---|---|
| and | Kontrollera om alla uttryck är sanna. |
| equals | Kontrollera om båda värdena är likvärdiga. |
| greater | Kontrollera om det första värdet är större än det andra värdet. |
| greaterOrEquals | Kontrollera om det första värdet är större än eller lika med det andra värdet. |
| if | Kontrollera om ett uttryck är sant eller falskt. Baserat på resultatet returnerar du ett angivet värde. |
| less | Kontrollera om det första värdet är mindre än det andra värdet. |
| lessOrEquals | Kontrollera om det första värdet är mindre än eller lika med det andra värdet. |
| not | Kontrollera om ett uttryck är falskt. |
| or | Kontrollera om minst ett uttryck är sant. |
Konverteringsfunktioner
Använd dessa funktioner för att konvertera mellan var och en av de inbyggda typerna på språket:
- string
- integer
- float
- boolean
- arrays
- dictionaries
| Konverteringsfunktion | Task |
|---|---|
| array | Returnera en matris från en enda angiven indata. För flera indata, se createArray. |
| base64 | Returnera den base64-kodade versionen för en sträng. |
| base64ToBinary | Returnera den binära versionen för en base64-kodad sträng. |
| base64ToString | Returnera strängversionen för en base64-kodad sträng. |
| binary | Returnera den binära versionen för ett indatavärde. |
| bool | Returnera den booleska versionen för ett indatavärde. |
| coalesce | Returnera det första värdet som inte är null från en eller flera parametrar. |
| createArray | Returnera en matris från flera indata. |
| dataUri | Returnera data-URI:n för ett indatavärde. |
| dataUriToBinary | Returnera den binära versionen för en data-URI. |
| dataUriToString | Returnera strängversionen för en data-URI. |
| decodeBase64 | Returnera strängversionen för en base64-kodad sträng. |
| decodeDataUri | Returnera den binära versionen för en data-URI. |
| decodeUriComponent | Returnera en sträng som ersätter escape-tecken med avkodade versioner. |
| encodeUriComponent | Returnera en sträng som ersätter URL-osäkra tecken med escape-tecken. |
| float | Returnera ett flyttalsnummer för ett indatavärde. |
| int | Returnera heltalsversionen av en sträng. |
| json | Returnera JSON-värdet eller objektet (JavaScript Object Notation) för en sträng eller XML. |
| string | Returnera strängversionen för ett indatavärde. |
| uriComponent | Returnera den URI-kodade versionen för ett indatavärde genom att ersätta URL-osäkra tecken med escape-tecken. |
| uriComponentToBinary | Returnera den binära versionen för en URI-kodad sträng. |
| uriComponentToString | Returnera strängversionen för en URI-kodad sträng. |
| xml | Returnera XML-versionen för en sträng. |
| xpath | Kontrollera XML för noder eller värden som matchar ett XPath-uttryck (XML Path Language) och returnera matchande noder eller värden. |
Matematiska funktioner
Använd dessa funktioner med båda typerna av tal: heltal och flyttal.
| Matematisk funktion | Task |
|---|---|
| add | Returnera resultatet från att lägga till två tal. |
| div | Returnera resultatet från att dela upp två tal. |
| max | Returnera det högsta värdet från en uppsättning tal eller en matris. |
| min | Returnera det lägsta värdet från en uppsättning tal eller en matris. |
| mod | Returnera resten från att dividera två tal. |
| mul | Returnera produkten från att multiplicera två tal. |
| rand | Returnera ett slumpmässigt heltal från ett angivet intervall. |
| range | Returnera en heltalsmatris som startar från ett angivet heltal. |
| sub | Returnera resultatet från att subtrahera det andra talet från det första talet. |
Datumfunktioner
| Datum- eller tidsfunktion | Task |
|---|---|
| addDays | Lägg till ett antal dagar i en tidsstämpel. |
| addHours | Lägg till ett antal timmar i en tidsstämpel. |
| addMinutes | Lägg till ett antal minuter i en tidsstämpel. |
| addSeconds | Lägg till ett antal sekunder i en tidsstämpel. |
| addToTime | Lägg till ett antal tidsenheter i en tidsstämpel. Se även getFutureTime. |
| convertFromUtc | Konvertera en tidsstämpel från koordinerad universell tid (UTC) till måltidszon. |
| convertTimeZone | Konvertera en tidsstämpel från källa tidszon till mål tidszon. |
| convertToUtc | Konvertera en tidsstämpel från källtidszonen till Coordinated Universal Time (UTC). |
| dayOfMonth | Returnera dagen i månaden från en tidsstämpel. |
| dayOfWeek | Återge veckodagskomponenten från en tidsstämpel. |
| dayOfYear | Returnera årskomponentens dag från en tidsstämpel. |
| formatDateTime | Returnera tidsstämpeln som en sträng i valfritt format. |
| getFutureTime | Returnera den nuvarande tidstämpeln plus de specificerade tidsenheterna. Se även addToTime. |
| getPastTime | Returnera den aktuella tidsstämpeln minus de angivna tidsenheterna. Se även subtraheraFrånTid. |
| startOfDay | Returnera dagens start för en tidsstämpel. |
| startOfHour | Returnera timmens start för en tidsstämpel. |
| startOfMonth | Returnera ett värde som representerar början av månaden för en tidsstämpel. |
| subtractFromTime | Subtrahera ett antal tidsenheter från en tidsstämpel. Se även getPastTime. |
| ticks | Returnera egenskapsvärdet ticks för en specificerad tidsstämpel. |
| utcNow | Returnera den aktuella tidsstämpeln som en sträng. |