Parametre for Data Factory i Microsoft Fabric
I dette dokument beskrives det, hvordan du bruger parametre i dine pipelines til Data Factory i Fabric.
I dette dokument fokuserer vi på at lære grundlæggende begreber med forskellige eksempler for at udforske muligheden for at oprette parameteriserede datapipelines i Data Factory i Fabric. Parameterisering og dynamiske udtryk kan spare meget tid og give mulighed for en meget mere fleksibel løsning af typen Extract, Transform, Load (ETL) eller Extract, Load, Transform (ELT), hvilket vil reducere omkostningerne ved vedligeholdelse af løsninger drastisk og fremskynde implementeringen af nye funktioner i eksisterende pipelines. Disse gevinster skyldes, at parameterisering minimerer mængden af hård kodning og øger antallet af objekter og processer, der kan genbruges, i en løsning.
Du kan bruge parametre til at overføre eksterne værdier til pipelines. Når parameteren er overført til ressourcen, kan den ikke ændres. Ved at parameterisere ressourcer kan du genbruge dem med forskellige værdier hver gang. Parametre kan bruges enkeltvist eller som en del af udtryk. Parameterværdier i definitionen kan være konstanter eller udtryk, der evalueres på kørselstidspunktet.
Udtryk kan vises hvor som helst i en strengværdi og altid generere en anden strengværdi. Her er adgangskode en pipelineparameter i udtrykket. Hvis en parameterværdi er et udtryk, udtrækkes brødteksten i udtrykket ved at fjerne at-tegnet (@). Hvis der kræves en konstantstreng, der starter med @, skal den være escape-strengen ved hjælp af @@. Følgende eksempler viser, hvordan udtryk evalueres.
Parameterværdi | Resultat |
---|---|
"parametre" | Tegnene 'parametre' returneres. |
"parametre[1]" | Tegnene 'parametre[1]' returneres. |
"@@" | Der returneres en streng på 1 tegn, der indeholder '@'. |
" @" | En streng på 2 tegn, der indeholder ' @', returneres. |
Udtryk kan også vises i strenge ved hjælp af en funktion, der kaldes strenginterpolering , hvor udtryk ombrydes i @{ ... }
. Følgende streng indeholder f.eks. parameterværdier og konstantstrengværdier:
"Fornavn: @{pipeline().parameters.firstName} Efternavn: @{pipeline().parameters.lastName}"
Ved hjælp af strenginterpolering er resultatet altid en streng. Hvis du f.eks. har defineret myNumber
som 42
og myString
som foo
:
Parameterværdi | Resultat |
---|---|
"@pipeline().parameters.myString" | Returnerer foo som en streng. |
"@{pipeline().parameters.myString}" | Returnerer foo som en streng. |
"@pipeline().parameters.myNumber" | Returnerer 42 som et tal. |
"@{pipeline().parameters.myNumber}" | Returnerer 42 som en streng. |
"Svaret er: @{pipeline().parameters.myNumber}" | Returnerer strengen Answer is: 42 . |
"@concat('Answer is: ', string(pipeline().parameters.myNumber))" | Returnerer strengen Answer is: 42 |
"Svaret er: @@{pipeline().parameters.myNumber}" | Returnerer strengen Answer is: @{pipeline().parameters.myNumber} . |
Hvis du vil oprette parametre, skal du vælge baggrunden for lærredet for pipelineeditoren og derefter fanen Parametre i egenskabsvinduet nederst. Vælg knappen + Ny for at føje en ny parameter til pipelinen, give den et navn, en datatype og en standardværdi:
Du kan derefter bruge parameteren et vilkårligt sted i pipelinen, hvor dynamisk indhold understøttes. I dette eksempel bruges parameteren til dynamisk at angive navnet på et Lakehouse-datalager under fanen Kilde på egenskabssiderne for en kopiaktivitet.
Vinduet Tilføj dynamisk indhold vises, så du kan angive enhver form for dynamisk indhold, herunder parametre, systemvariabler, funktioner eller pipelinevariabler. I dette eksempel vælges den tidligere definerede parameter, og vinduet med dynamisk indhold udfyldes automatisk med det korrekte udtryk for at referere til parameteren.
I nedenstående eksempel vises et komplekst eksempel, der refererer til et dybt underfelt med aktivitetsoutput. Hvis du vil referere til en pipelineparameter, der evalueres til et underfelt, skal du bruge [] syntaks i stedet for operatoren dot(.) (som i tilfælde af underfelt1 og underfelt2)
@activity('*activityName*').output.*subfield1*.*subfield2*[pipeline().parameters.*subfield3*].*subfield4*
Den dynamiske indholdseditor undgår automatisk tegn i dit indhold, når du er færdig med at redigere. Følgende indhold i indholdseditoren er f.eks. en strenginterpolering med en udtryksfunktion:
@{toUpper('myData')}
Det dynamiske indholdseditor konverterer ovenstående indhold til følgende udtryk:
MYDATA
Du kan kalde funktioner og bruge variabler i udtryk. Følgende afsnit indeholder oplysninger om de funktioner, der kan bruges i et udtryk.
Der kan refereres til disse systemvariabler overalt i JSON-pipelinen.
Variabelnavn | Beskrivelse |
---|---|
@pipeline().DataFactory | Navnet på de data eller Synapse-arbejdsområdet, som pipelinekørslen kører i |
@pipeline().Pipeline | Navnet på pipelinen |
@pipeline().RunId | Id for den specifikke pipelinekørsel |
@pipeline().TriggerId | Id'et for den udløser, der aktiverede pipelinen |
@pipeline().TriggerName | Navnet på den udløser, der aktiverede pipelinen |
@pipeline().TriggerTime | Tidspunktet for den kørsel af udløseren, der aktiverede pipelinen. Dette er det tidspunkt, hvor udløseren faktisk udløses for at aktivere pipelinekørslen, og det kan afvige en smule fra udløserens planlagte tidspunkt. |
@pipeline().GroupId | Id'et for den gruppe, som pipelinekørslen tilhører. |
@pipeline()?. TriggeredByPipelineName | Navnet på den pipeline, der udløser pipelinekørslen. Gælder, når pipelinekørslen udløses af en ExecutePipeline-aktivitet. Evaluer til Null , når det bruges i andre tilfælde. Bemærk spørgsmålstegnet efter @pipeline() |
@pipeline()?. TriggeredByPipelineRunId | Kør id'et for den pipeline, der udløser pipelinekørslen. Gælder, når pipelinekørslen udløses af en ExecutePipeline-aktivitet. Evaluer til Null , når det bruges i andre tilfælde. Bemærk spørgsmålstegnet efter @pipeline() |
Bemærk
Systemvariabler relateret til udløsere (både i pipeline- og udløserområder) returnerer UTC-datoer i ISO 8601-format, 2017-06-01T22:20:00.4061448Z
f.eks. .
Hvis du vil arbejde med strenge, kan du bruge disse strengfunktioner og også nogle samlingsfunktioner. Strengfunktioner fungerer kun på strenge.
Strengfunktion | Opgave |
---|---|
Concat | Kombiner to eller flere strenge, og returner den kombinerede streng. |
endsWith | Kontrollér, om en streng slutter med den angivne understreng. |
Guid | Opret et globalt entydigt id (GUID) som en streng. |
indexOf | Returner startpositionen for en understreng. |
lastIndexOf | Returner startpositionen for den sidste forekomst af en understreng. |
replace | Erstat en understreng med den angivne streng, og returner den opdaterede streng. |
split | Returnerer en matrix, der indeholder understrenge, adskilt af kommaer, fra en større streng, der er baseret på et angivet afgrænsertegn i den oprindelige streng. |
startsWith | Kontrollér, om en streng starter med en bestemt understreng. |
Understreng | Returnerer tegn fra en streng med start fra den angivne placering. |
toLower | Returner en streng med små bogstaver. |
toUpper | Returnerer en streng med store bogstaver. |
Trim | Fjern foranstillede og efterstillede mellemrum fra en streng, og returner den opdaterede streng. |
Hvis du vil arbejde med samlinger, generelt matrixer, strenge og nogle gange ordbøger, kan du bruge disse samlingsfunktioner.
Funktionen Collection | Opgave |
---|---|
Indeholder | Kontrollér, om en samling har et bestemt element. |
tom | Kontrollér, om en samling er tom. |
Første | Returner det første element fra en samling. |
Skæringspunktet mellem | Returner en samling, der kun indeholder de fælles elementer på tværs af de angivne samlinger. |
Deltage | Returner en streng, der indeholder alle elementerne fra en matrix adskilt af det angivne tegn. |
Sidste | Returner det sidste element fra en samling. |
Længde | Returner antallet af elementer i en streng eller matrix. |
Springe | Fjern elementer fra forsiden af en samling, og returner alle de andre elementer. |
Tage | Returner elementer fra forsiden af en samling. |
Unionen | Returner en samling, der indeholder alle elementerne fra de angivne samlinger. |
Disse funktioner er nyttige i forhold. De kan bruges til at evaluere enhver type logik.
Logisk sammenligningsfunktion | Opgave |
---|---|
and | Kontrollér, om alle udtryk er sande. |
Svarer | Kontrollér, om begge værdier er ækvivalente. |
greater | Kontrollér, om den første værdi er større end den anden værdi. |
greaterOrEquals | Kontrollér, om den første værdi er større end eller lig med den anden værdi. |
Hvis | Kontrollér, om et udtryk er true eller false. På baggrund af resultatet skal du returnere en angivet værdi. |
less | Kontrollér, om den første værdi er mindre end den anden værdi. |
lessOrEquals | Kontrollér, om den første værdi er mindre end eller lig med den anden værdi. |
Ikke | Kontrollér, om et udtryk er falsk. |
or | Kontrollér, om mindst ét udtryk er sandt. |
Disse funktioner bruges til at konvertere mellem hver af de oprindelige typer på sproget:
- string
- integer
- flydende felter
- boolean
- Arrays
- Ordbøger
Konverteringsfunktion | Opgave |
---|---|
Array | Returnerer en matrix fra et enkelt angivet input. Du kan få flere input under createArray. |
base64 | Returner den base64-kodede version for en streng. |
base64ToBinary | Returner den binære version for en base64-kodet streng. |
base64ToString | Returner strengversionen for en base64-kodet streng. |
Binære | Returner den binære version for en inputværdi. |
Bool | Returner den booleske version for en inputværdi. |
Hånd | Returner den første værdi, der ikke er null, fra en eller flere parametre. |
createArray | Returner en matrix fra flere input. |
dataUri | Returner data-URI'en for en inputværdi. |
dataUriToBinary | Returner den binære version for en data-URI. |
dataUriToString | Returner strengversionen for en data-URI. |
decodeBase64 | Returner strengversionen for en base64-kodet streng. |
decodeDataUri | Returner den binære version for en data-URI. |
decodeUriComponent | Returner en streng, der erstatter escape-tegn med afkodede versioner. |
encodeUriComponent | Returner en streng, der erstatter url-usikre tegn med escape-tegn. |
Flyde | Returnerer et flydende tal for en inputværdi. |
Int | Returner heltalsversionen for en streng. |
Json | Returner JSON-typen (JavaScript Object Notation) eller objektet for en streng eller XML. |
Streng | Returner strengversionen for en inputværdi. |
uri-komponent | Returner den URI-kodede version for en inputværdi ved at erstatte URL-usikre tegn med escape-tegn. |
uriComponentToBinary | Returner den binære version for en URI-kodet streng. |
uriComponentToString | Returner strengversionen for en URI-kodet streng. |
Xml | Returner XML-versionen for en streng. |
Xpath | Kontrollér XML for noder eller værdier, der svarer til et XPath-udtryk (XML Path Language), og returner de matchende noder eller værdier. |
Disse funktioner kan bruges til begge typer tal: heltal og flydende værdier.
Matematisk funktion | Opgave |
---|---|
Tilføj | Returner resultatet ved at tilføje to tal. |
Div | Returnerer resultatet ved at dividere to tal. |
Maks | Returnerer den højeste værdi fra et sæt tal eller en matrix. |
Min | Returner den laveste værdi fra et sæt tal eller en matrix. |
mod | Returnerer resten fra at dividere to tal. |
Mul | Returner produktet ved at multiplicere to tal. |
rand | Returnerer et tilfældigt heltal fra et angivet område. |
range | Returner en heltalsmatrix, der starter fra et angivet heltal. |
Sub | Returnerer resultatet fra at trække det andet tal fra det første tal. |
Funktionen Dato eller klokkeslæt | Opgave |
---|---|
addDays | Føj et antal dage til et tidsstempel. |
addHours | Føj et antal timer til et tidsstempel. |
addMinutes | Føj et antal minutter til et tidsstempel. |
addSeconds | Føj et antal sekunder til et tidsstempel. |
addToTime | Føj et antal tidsenheder til et tidsstempel. Se også getFutureTime. |
convertFromUtc | Konvertér et tidsstempel fra UTC (Universal Time Coordinated) til måltidszonen. |
convertTimeZone | Konvertér et tidsstempel fra kildetidszonen til måltidszonen. |
convertToUtc | Konvertér et tidsstempel fra kildetidszonen til UTC (Universal Time Coordinated). |
dayOfMonth | Returner dag i månedskomponenten fra et tidsstempel. |
dayOfWeek | Returner ugedagskomponenten fra et tidsstempel. |
dayOfYear | Returner dag i år-komponenten fra et tidsstempel. |
formatDateTime | Returner tidsstemplet som en streng i valgfrit format. |
getFutureTime | Returner det aktuelle tidsstempel plus de angivne tidsenheder. Se også addToTime. |
getPastTime | Returner det aktuelle tidsstempel minus de angivne tidsenheder. Se også subtraherFromTime. |
startOfDay | Returner starten af dagen for et tidsstempel. |
startOfHour | Returner timestart for et tidsstempel. |
startOfMonth | Returner starten af måneden for et tidsstempel. |
subtraherFromTime | Træk et antal tidsenheder fra et tidsstempel. Se også getPastTime. |
Flåter | Returner egenskabsværdien ticks for et angivet tidsstempel. |
utcNow | Returner det aktuelle tidsstempel som en streng. |