Parametrar för Data Factory i Microsoft Fabric
Det här dokumentet beskriver hur du använder parametrar i dina pipelines för Data Factory i Fabric.
Så här använder du parametrar, uttryck och funktioner i pipelines för Data Factory i Infrastrukturresurser
I det här dokumentet fokuserar vi på att lära oss grundläggande begrepp med olika exempel för att utforska möjligheten att skapa parametriserade datapipelines i Data Factory i Fabric. Parameterisering och dynamiska uttryck kan spara mycket tid och möjliggöra en mycket mer flexibel lösning för extrahering, transformering, belastning (ETL) eller extrahering, belastning, transformering (ELT), vilket avsevärt minskar kostnaden för lösningsunderhåll och påskyndar implementeringen av nya funktioner i befintliga pipelines. Dessa vinster beror på att parameterisering minimerar mängden hård kodning och ökar antalet återanvändbara objekt och processer i en lösning.
Parameter- och uttrycksbegrepp
Du kan använda parametrar för att skicka externa värden till pipelines. När parametern har skickats till resursen kan den inte ändras. Genom att parametrisera resurser kan du återanvända dem med olika värden varje gång. Parametrar kan användas individuellt eller som en del av uttryck. Parametervärden i definitionen kan vara literala eller uttryck som utvärderas vid körning.
Uttryck kan visas var som helst i ett strängvärde och alltid generera ett annat strängvärde. Här är lösenordet en pipelineparameter i uttrycket. Om ett parametervärde är ett uttryck extraheras uttryckets brödtext genom att at-sign (@). Om en literalsträng behövs som börjar med @måste den vara undantagen med hjälp av @@. I följande exempel visas hur uttryck utvärderas.
Parametervärde | Resultat |
---|---|
"parametrar" | Tecknen "parameters" returneras. |
"parameters[1]" | Tecknen "parameters[1]" returneras. |
"@@" | 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 med hjälp av en funktion som kallas stränginterpolation där uttryck omsluts 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}"
Med stränginterpolation är resultatet alltid en sträng. Om du till exempel har definierat myNumber
som 42
och myString
som foo
:
Parametervärde | Resultat |
---|---|
"@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('Answer is: ', 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å hur du använder parametrar i uttryck
Skapa och använda parametrar
Om du vill skapa parametrar väljer du bakgrunden för pipelineredigerarens arbetsyta och sedan fliken Parametrar i egenskapsfönstret längst ned. Välj knappen + Ny för att lägga till en ny parameter i pipelinen, ge den ett namn, en datatyp och ett standardvärde:
Du kan sedan använda parametern var som helst i pipelinen där dynamiskt innehåll stöds. I det här exemplet används parametern för att dynamiskt ange namnet på ett Lakehouse-datalager på fliken Källa på en kopieringsaktivitets egenskapssidor.
Fönstret Lägg till dynamiskt innehåll visas så att du kan ange alla typer av dynamiskt innehåll, inklusive parametrar, systemvariabler, funktioner eller pipelinevariabler. I det här exemplet väljs den tidigare definierade parametern och fönstret dynamiskt innehåll fylls automatiskt i med rätt uttryck för att referera till parametern.
Exempel på komplext uttryck
Exemplet nedan visar ett komplext exempel som 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 [] syntax i stället för punktoperator (.) (som vid underfält1 och underfält2)
@activity('*activityName*').output.*subfield1*.*subfield2*[pipeline().parameters.*subfield3*].*subfield4*
Redigerare för dynamiskt innehåll
Redigeraren för dynamiskt innehåll undflyr automatiskt tecken i ditt innehåll 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 innehållet ovan 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
Dessa systemvariabler kan refereras var som helst i pipeline-JSON.
Variabelnamn | beskrivning |
---|---|
@pipeline().DataFactory | Namnet på data eller Synapse-arbetsytan som pipelinekörningen körs i |
@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 är den tidpunkt då utlösaren faktiskt utlöstes för att anropa pipelinekörningen, och den kan skilja sig något från utlösarens schemalagda tid. |
@pipeline().GroupId | ID för den grupp som pipelinekörningen tillhör. |
@pipeline()?. TriggeredByPipelineName | Namnet på pipelinen som utlöser pipelinekörningen. Gäller när pipelinekörningen utlöses av en ExecutePipeline-aktivitet. Utvärdera till Null när det används under andra omständigheter. Anteckna frågetecknet efter @pipeline() |
@pipeline()?. TriggeredByPipelineRunId | Kör ID för pipelinen som utlöser pipelinekörningen. Gäller när pipelinekörningen utlöses av en ExecutePipeline-aktivitet. Utvärdera till Null när det används under andra omständigheter. Anteckna frågetecknet efter @pipeline() |
Kommentar
Utlösarrelaterade systemvariabler för datum/tid (i både pipeline- och utlösaromfång) returnerar UTC-datum i ISO 8601-format, till exempel 2017-06-01T22:20:00.4061448Z
.
Strängfunktioner
Om du vill arbeta med strängar kan du använda dessa strängfunktioner och även vissa samlingsfunktioner. Strängfunktioner fungerar endast på strängar.
Strängfunktion | Uppgift |
---|---|
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. |
ersätt | Ersätt en delsträng med den angivna strängen och returnera den uppdaterade strängen. |
dela | 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. |
Delsträng | 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. |
Trimma | Ta bort inledande och avslutande blanksteg från en sträng och returnera den uppdaterade strängen. |
Insamlingsfunktioner
Om du vill arbeta med samlingar, vanligtvis matriser, strängar och ibland ordlistor, kan du använda dessa samlingsfunktioner.
Samlingsfunktion | Uppgift |
---|---|
Innehåller | Kontrollera om en samling har ett specifikt objekt. |
empty | Kontrollera om en samling är tom. |
Första | Returnera det första objektet från en samling. |
Korsningen | Returnera en samling som bara har de vanliga objekten i de angivna samlingarna. |
join | Returnera en sträng som innehåller alla objekt från en matris, avgränsad med det angivna tecknet. |
Senaste | Returnera det sista objektet från en samling. |
length | Returnera antalet objekt i en sträng eller matris. |
Hoppa över | Ta bort objekt från framsidan av en samling och returnera alla andra objekt. |
Ta | Returnera objekt från framsidan av en samling. |
Unionen | Returnera en samling som innehåller alla objekt från de angivna samlingarna. |
Logiska funktioner
Dessa funktioner är användbara inuti villkor, de kan användas för att utvärdera alla typer av logik.
Logisk jämförelsefunktion | Uppgift |
---|---|
and | Kontrollera om alla uttryck är sanna. |
Motsvarar | 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. |
Om | 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. |
Inte | Kontrollera om ett uttryck är falskt. |
or | Kontrollera om minst ett uttryck är sant. |
Konverteringsfunktioner
Dessa funktioner används för att konvertera mellan var och en av de inbyggda typerna på språket:
- sträng
- integer
- flyttal
- boolean
- Matriser
- Ordböcker
Konverteringsfunktion | Uppgift |
---|---|
Array | Returnera en matris från en enda angiven indata. Flera indata finns i 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. |
Binära | Returnera den binära versionen för ett indatavärde. |
Bool | Returnera den booleska versionen för ett indatavärde. |
sammanstärning | 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. |
avkodaBase64 | 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. |
Flyta | Returnera ett flyttalsnummer för ett indatavärde. |
Int | Returnera heltalsversionen för en sträng. |
Json | Returnera JSON-typvärdet (JavaScript Object Notation) för en sträng eller XML. |
Sträng | 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. |
Matematikfunktioner
Dessa funktioner kan användas för båda typerna av tal: heltal och flyttal.
Matematisk funktion | Uppgift |
---|---|
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 dela upp två tal. |
mul | Returnera produkten från att multiplicera två tal. |
Rand | Returnera ett slumpmässigt heltal från ett angivet intervall. |
intervall | 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 | Uppgift |
---|---|
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 Universal Time Coordinated (UTC) till måltidszonen. |
convertTimeZone | Konvertera en tidsstämpel från källtidszonen till måltidszonen. |
convertToUtc | Konvertera en tidsstämpel från källtidszonen till Universal Time Coordinated (UTC). |
dayOfMonth | Returnera månadskomponenten från en tidsstämpel. |
dayOfWeek | Returnera veckodag-komponenten 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 aktuella tidsstämpeln plus de angivna tidsenheterna. Se även addToTime. |
getPastTime | Returnera den aktuella tidsstämpeln minus de angivna tidsenheterna. Se även subtractFromTime. |
startOfDay | Returnera dagens start för en tidsstämpel. |
startOfHour | Returnera timmens start för en tidsstämpel. |
startOfMonth | Returnera början av månaden för en tidsstämpel. |
subtractFromTime | Subtrahera ett antal tidsenheter från en tidsstämpel. Se även getPastTime. |
Fästingar | Returnera egenskapsvärdet ticks för en angiven tidsstämpel. |
utcNow | Returnera den aktuella tidsstämpeln som en sträng. |