Parametere for Data Factory i Microsoft Fabric
Dette dokumentet beskriver hvordan du bruker parametere i datafabrikkens datafabrikk.
I dette dokumentet fokuserer vi på å lære grunnleggende konsepter med ulike eksempler for å utforske muligheten til å opprette parameteriserte datasamlebånd i Data Factory in Fabric. Parameterisering og dynamiske uttrykk kan spare enorme mengder tid og gi mulighet for en mye mer fleksibel uttrekkings-, transformerings-, belastningsløsning (ETL) eller extract-, load-, transformeringsløsning (ELT), noe som vil redusere kostnadene for vedlikehold av løsningen dramatisk og øke implementeringen av nye funksjoner i eksisterende datasamlebånd. Disse gevinstene skyldes at parameterisering minimerer mengden hard koding og øker antall gjenbrukbare objekter og prosesser i en løsning.
Du kan bruke parametere til å sende eksterne verdier til datasamlebånd. Når parameteren er sendt til ressursen, kan den ikke endres. Ved å parametere ressurser kan du bruke dem på nytt med forskjellige verdier hver gang. Parametere kan brukes individuelt eller som en del av uttrykk. Parameterverdier i definisjonen kan være litterale eller uttrykk som evalueres ved kjøring.
Uttrykk kan vises hvor som helst i en strengverdi og alltid generere en annen strengverdi. Her er passordet en datasamlebåndparameter i uttrykket. Hvis en parameterverdi er et uttrykk, trekkes brødteksten i uttrykket ut ved å fjerne at-sign (@). Hvis en litteral streng er nødvendig som starter med @, må den slippes ut ved hjelp av @@. Eksemplene nedenfor viser hvordan uttrykk evalueres.
parameterverdi | Resultat |
---|---|
"parametere" | Tegnene parametere returneres. |
"parametere[1]" | Tegnene 'parametere[1]' returneres. |
"@@" | En 1 tegnstreng som inneholder @, returneres. |
" @" | En 2 tegnstreng som inneholder @ returneres. |
Uttrykk kan også vises i strenger ved hjelp av en funksjon som kalles streng interpolering der uttrykk er pakket inn @{ ... }
. Følgende streng inneholder for eksempel parameterverdier og litterale strengverdier:
"Fornavn: @{pipeline().parameters.firstName} Etternavn: @{pipeline().parametere.lastName}"
Ved hjelp av streng interpolering er resultatet alltid en streng. Hvis du for eksempel definerte myNumber
som 42
og myString
som foo
:
parameterverdi | Resultat |
---|---|
"@pipeline().parametere.myString" | Returnerer foo som en streng. |
"@{pipeline().parametere.myString}" | Returnerer foo som en streng. |
"@pipeline().parametere.myNumber" | Returnerer 42 som et tall. |
"@{pipeline().parametere.myNumber}" | Returnerer 42 som en streng. |
"Svaret er: @{pipeline().parameters.myNumber}" | Returnerer strengen Answer is: 42 . |
"@concat('Svar er: ', string(pipeline().parameters.myNumber))" | Returnerer strengen Answer is: 42 |
"Svaret er: @@{pipeline().parameters.myNumber}" | Returnerer strengen Answer is: @{pipeline().parameters.myNumber} . |
Hvis du vil opprette parametere, velger du bakgrunnen til lerretet for datasamlebåndredigering, og deretter kategorien Parametere i egenskapsvinduet nederst. Velg +Ny-knappen for å legge til en ny parameter i datasamlebåndet, gi den et navn, en datatype og en standardverdi:
Deretter kan du bruke parameteren hvor som helst i datasamlebåndet der dynamisk innhold støttes. I dette eksemplet brukes parameteren til dynamisk å angi navnet på et Lakehouse-datalager på Kilde-fanen på egenskapssidene for en kopiaktivitet.
Vinduet Legg til dynamisk innhold vises, slik at du kan angi alle typer dynamisk innhold, inkludert parametere, systemvariabler, funksjoner eller pipelinevariabler. I dette eksemplet er den tidligere definerte parameteren valgt, og vinduet for dynamisk innhold fylles automatisk ut med riktig uttrykk for å referere til parameteren.
Eksemplet nedenfor viser et komplekst eksempel som refererer til et dypt delfelt med aktivitetsutdata. Hvis du vil referere til en datasamlebåndparameter som evalueres til et delfelt, bruker du [] syntaks i stedet for punkt(.) operator (som i tilfelle underfelt1 og underfelt2)
@activity('*activityName*').output.*subfield1*.*subfield2*[pipeline().parameters.*subfield3*].*subfield4*
Det dynamiske innholdsredigeringsprogrammet slipper automatisk ut tegn i innholdet når du er ferdig med å redigere. Følgende innhold i innholdsredigeringsprogrammet er for eksempel en streng interpolering med en uttrykksfunksjon:
@{toUpper('myData')}
Redigeringsprogrammet for dynamisk innhold konverterer innholdet ovenfor til følgende uttrykk:
MYDATA
Du kan kalle opp funksjoner og bruke variabler i uttrykk. Avsnittene nedenfor inneholder informasjon om funksjonene som kan brukes i et uttrykk.
Disse systemvariablene kan refereres hvor som helst i datasamlebåndet JSON.
Variabelnavn | Bekrivelse |
---|---|
@pipeline().DataFactory | Navnet på dataene eller Synapse-arbeidsområdet som datasamlebåndet kjører i |
@pipeline().Pipeline | Navnet på datasamlebåndet |
@pipeline().RunId | ID for den spesifikke datasamlebåndkjøringen |
@pipeline().TriggerId | ID for utløseren som startet datasamlebåndet |
@pipeline().TriggerName | Navnet på utløseren som startet datasamlebåndet |
@pipeline().TriggerTime | Tidspunktet for utløserkjøringen som startet datasamlebåndet. Dette er tidspunktet da utløseren faktisk ble avfyrt for å starte datasamlebåndkjøringen, og det kan avvike litt fra utløserens planlagte tid. |
@pipeline().GroupId | ID for gruppen som datasamlebåndkjøring tilhører. |
@pipeline()?. TriggeredByPipelineName | Navnet på datasamlebåndet som utløser datasamlebåndkjøringen. Gjelder når datasamlebåndkjøringen utløses av en ExecutePipeline-aktivitet. Evaluer til Null når den brukes i andre tilfeller. Legg merke til spørsmålstegnet etter @pipeline() |
@pipeline()?. TriggeredByPipelineRunId | Kjør ID for datasamlebåndet som utløser datasamlebåndkjøringen. Gjelder når datasamlebåndkjøringen utløses av en ExecutePipeline-aktivitet. Evaluer til Null når den brukes i andre tilfeller. Legg merke til spørsmålstegnet etter @pipeline() |
Obs!
Utløserrelaterte systemvariabler for dato/klokkeslett (i både datasamlebånd og utløseromfang) returnerer UTC-datoer i ISO 8601-format, for eksempel 2017-06-01T22:20:00.4061448Z
.
Hvis du vil arbeide med strenger, kan du bruke disse strengfunksjonene og også noen samlingsfunksjoner. Strengfunksjoner fungerer bare på strenger.
Strengfunksjon | Oppgave |
---|---|
Concat | Kombiner to eller flere strenger, og returner den kombinerte strengen. |
endsWith | Kontroller om en streng slutter med den angitte delstrengen. |
Guid | Generer en globalt unik identifikator (GUID) som en streng. |
indexOf | Returner startposisjonen for en delstreng. |
lastIndexOf | Returner startposisjonen for den siste forekomsten av en delstreng. |
replace | Erstatt en delstreng med den angitte strengen, og returner den oppdaterte strengen. |
split | Returner en matrise som inneholder delstrenger, atskilt med komma, fra en større streng basert på et angitt skilletegn i den opprinnelige strengen. |
startsWith | Kontroller om en streng starter med en bestemt delstreng. |
Delstreng | Returner tegn fra en streng, fra den angitte plasseringen. |
toLower | Returner en streng med små bokstaver. |
toUpper | Returner en streng med store bokstaver. |
Trim | Fjern innledende og etterfølgende mellomrom fra en streng, og returner den oppdaterte strengen. |
Hvis du vil arbeide med samlinger, vanligvis matriser, strenger og noen ganger ordlister, kan du bruke disse samlingsfunksjonene.
Samlingsfunksjon | Oppgave |
---|---|
Inneholder | Kontroller om en samling har et bestemt element. |
empty | Kontroller om en samling er tom. |
Første | Returner det første elementet fra en samling. |
Skjæringspunktet mellom | Returner en samling som bare har de vanlige elementene på tvers av de angitte samlingene. |
Delta | Returner en streng som har alle elementene fra en matrise, atskilt med det angitte tegnet. |
Siste | Returner det siste elementet fra en samling. |
Lengde | Returner antall elementer i en streng eller matrise. |
Hoppe over | Fjern elementer fra forsiden av en samling, og returner alle de andre elementene. |
Ta | Returner elementer fra forsiden av en samling. |
Union | Returner en samling som har alle elementene fra de angitte samlingene. |
Disse funksjonene er nyttige innenfor betingelser, de kan brukes til å evaluere alle typer logikk.
Logisk sammenligningsfunksjon | Oppgave |
---|---|
and | Kontroller om alle uttrykk er sanne. |
Tilsvarer | Kontroller om begge verdiene er like. |
greater | Kontroller om den første verdien er større enn den andre verdien. |
greaterOrEquals | Kontroller om den første verdien er større enn eller lik den andre verdien. |
Hvis | Kontroller om et uttrykk er sant eller usant. Hvis du er basert på resultatet, returnerer du en angitt verdi. |
less | Kontroller om den første verdien er mindre enn den andre verdien. |
lessOrEquals | Kontroller om den første verdien er mindre enn eller lik den andre verdien. |
Ikke | Kontroller om et uttrykk er usant. |
or | Kontroller om minst ett uttrykk er sant. |
Disse funksjonene brukes til å konvertere mellom hver av de opprinnelige typene på språket:
- streng
- integer
- flyttall
- boolean
- Matriser
- Ordbøker
Konverteringsfunksjon | Oppgave |
---|---|
Matrise | Returner en matrise fra én enkelt angitt inndata. Hvis du vil ha flere inndata, kan du se createArray. |
base64 | Returner den base64-kodede versjonen for en streng. |
base64ToBinary | Returner binærversjonen for en base64-kodet streng. |
base64ToString | Returner strengversjonen for en base64-kodet streng. |
Binære | Returner binærversjonen for en inndataverdi. |
Bool | Returner den boolske versjonen for en inndataverdi. |
Koaliserer | Returner den første verdien som ikke er null fra én eller flere parametere. |
createArray | Returner en matrise fra flere inndata. |
dataUri | Returner data-URI-en for en inndataverdi. |
dataUriToBinary | Returner binærversjonen for en data-URI. |
dataUriToString | Returner strengversjonen for en data-URI. |
decodeBase64 | Returner strengversjonen for en base64-kodet streng. |
decodeDataUri | Returner binærversjonen for en data-URI. |
decodeUriComponent | Returner en streng som erstatter escape-tegn med dekodede versjoner. |
kodeUriComponent | Returner en streng som erstatter url-usikre tegn med escape-tegn. |
Flyte | Returner et flyttall for en inndataverdi. |
Int | Returner heltallsversjonen for en streng. |
Json | Returner JSON-typeverdien (JavaScript Object Notation) eller objektet for en streng eller XML. |
Streng | Returner strengversjonen for en inndataverdi. |
uriComponent | Returner den URI-kodede versjonen for en inndataverdi ved å erstatte url-usikre tegn med escape-tegn. |
uriComponentToBinary | Returner binærversjonen for en URI-kodet streng. |
uriComponentToString | Returner strengversjonen for en URI-kodet streng. |
Xml | Returner XML-versjonen for en streng. |
Xpath | Kontroller XML for noder eller verdier som samsvarer med et XPath-uttrykk (XML Path Language), og returner de samsvarende nodene eller verdiene. |
Disse funksjonene kan brukes for begge typer tall: heltall og flyter.
Matematikk (funksjon) | Oppgave |
---|---|
Legge | Returner resultatet fra å legge til to tall. |
Div | Returner resultatet fra å dele to tall. |
Maks | Returner den høyeste verdien fra et sett med tall eller en matrise. |
Min | Returner den laveste verdien fra et sett med tall eller en matrise. |
Mod | Returner resten fra å dele to tall. |
mul | Returner produktet fra å multiplisere to tall. |
Rand | Returner et tilfeldig heltall fra et angitt område. |
range | Returner en heltallmatrise som starter fra et angitt heltall. |
Sub | Returner resultatet fra å trekke det andre tallet fra det første tallet. |
Dato- eller klokkeslettfunksjon | Oppgave |
---|---|
addDays | Legg til et antall dager i et tidsstempel. |
addHours | Legg til et antall timer i et tidsstempel. |
addMinutes | Legg til et antall minutter i et tidsstempel. |
addSeconds | Legg til et antall sekunder i et tidsstempel. |
addToTime | Legg til et antall tidsenheter i et tidsstempel. Se også getFutureTime. |
convertFromUtc | Konverter et tidsstempel fra Universal Time Coordinated (UTC) til måltidssonen. |
convertTimeZone | Konverter et tidsstempel fra kildetidssonen til måltidssonen. |
convertToUtc | Konverter et tidsstempel fra kildetidssonen til Universal Time Coordinated (UTC). |
dayOfMonth | Returner dag for månedskomponenten fra et tidsstempel. |
dayOfWeek | Returner ukedagkomponenten fra et tidsstempel. |
dayOfYear | Returner dagen i året-komponenten fra et tidsstempel. |
formatDateTime | Returner tidsstempelet som en streng i valgfritt format. |
getFutureTime | Returner gjeldende tidsstempel pluss de angitte tidsenhetene. Se også addToTime. |
getPastTime | Returner gjeldende tidsstempel minus de angitte tidsenhetene. Se også subtractFromTime. |
startOfDay | Returner starten på dagen for et tidsstempel. |
startOfHour | Returner starten på timen for et tidsstempel. |
startOfMonth | Returner starten av måneden for et tidsstempel. |
subtractFromTime | Trekk fra et antall tidsenheter fra et tidsstempel. Se også getPastTime. |
Flått | Returner egenskapsverdien ticks for et angitt tidsstempel. |
utcNow | Returner gjeldende tidsstempel som en streng. |