Parametrar för Data Factory i Microsoft Fabric

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:

Skärmbild som visar parameterredigeraren på egenskapssidorna för en pipeline.

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.

Skärmbild som visar fliken Källa på en kopieringsaktivitets egenskapssidor och markerar alternativet Lägg till dynamiskt innehåll.

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.

Skärmbild som visar fönstret Lägg till dynamiskt innehåll med en pipelineparameter markerad.

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.

  1. Innan du ändrar anslutningen dynamiskt i pipelinen hämtar du GUID för den anslutning som du vill ange.
  2. Gå till Inställningar>Hantera anslutningar och gatewayer.
  3. Leta upp anslutningsnamnet och välj ellipsen (...) bredvid den.
  4. Välj Inställningar och kopiera anslutnings-ID:t.
  5. 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.