Share via


Parameters voor Data Factory in Microsoft Fabric

In deze handleiding wordt beschreven hoe u parameters gebruikt in uw Data Factory-pijplijnen in Fabric. Het is een eenvoudige manier om uw werkstromen flexibeler en eenvoudiger te beheren.

Parameters, expressies en functies gebruiken in pijplijnen voor Data Factory in Fabric

In deze handleiding worden de basisbeginselen beschreven van het maken van geparameteriseerde pijplijnen in Data Factory voor Fabric, met behulp van duidelijke voorbeelden. Met behulp van parameters en dynamische expressies kunt u veel tijd besparen en flexibele ETL-oplossingen (Extract, Transform, Load) of ELT (Extract, Load, Transform) bouwen. Met deze technieken wordt hardcoding verminderd en kunt u objecten en processen hergebruiken, waardoor u uw pijplijnen gemakkelijker kunt onderhouden en nieuwe functies sneller kunt implementeren.

Concepten van parameters en expressies

U kunt parameters gebruiken om externe waarden door te geven aan uw pijplijnen. Zodra een parameter is ingesteld, blijft deze tijdens de uitvoering hetzelfde en kan deze niet worden gewijzigd. Met behulp van parameters kunt u dezelfde pijplijn telkens opnieuw gebruiken met verschillende waarden. Ze kunnen op zichzelf of binnen expressies worden gebruikt en deze waarden kunnen worden vastgesteld of berekend wanneer de pijplijn wordt uitgevoerd.

Expressies kunnen overal in een tekenreekswaarde gaan en altijd een andere tekenreekswaarde retourneren. Als u bijvoorbeeld gebruikt @password, behandelt de pijplijn het wachtwoord als een parameter. Als de waarde een expressie is, verwijdert u gewoon het @ om de werkelijke inhoud op te halen. En als u een tekenreeks nodig hebt die begint met @, kunt u deze gewoon escapen door @@te typen. Hieronder ziet u enkele voorbeelden om te laten zien hoe dit werkt in de praktijk.

Parameterwaarde Result
"parameters" De karakters 'parameters' worden geretourneerd.
"parameters[1]" De karakters 'parameters[1]' worden geretourneerd.
"@@" Er wordt een tekenreeks van 1 teken die '@' bevat teruggegeven.
" @" Er wordt een tekenreeks van 2 tekens geretourneerd die @bevat.

Expressies kunnen ook worden weergegeven in tekenreeksen, met behulp van een functie met de naam tekenreeksinterpolatie waar expressies in @{ ... }worden verpakt. De volgende tekenreeks bevat bijvoorbeeld parameterwaarden en letterlijke tekenreekswaarden:

"Voornaam: @{pipeline().parameters.firstName} Achternaam: @{pipeline().parameters.lastName}"

Met behulp van tekenreeksinterpolatie is het resultaat altijd een tekenreeks. Als u bijvoorbeeld hebt gedefinieerd myNumber als 42 en myString als foo:

Parameterwaarde Result
"@pipeline().parameters.myString" Retourneert foo als tekst.
"@{pipeline().parameters.myString}" Retourneert foo als tekst.
"@pipeline().parameters.myNumber" Retourneert 42 als een getal.
"@{pipeline().parameters.myNumber}" Retourneert 42 als een tekenreeks.
"Antwoord is: @{pipeline().parameters.myNumber}" Retourneert de tekenreeks Answer is: 42.
"@concat('Het antwoord is: ', string(pipeline().parameters.myNumber))" Retourneert de tekenreeks Answer is: 42
"Antwoord is: @@{pipeline().parameters.myNumber}" Retourneert de tekenreeks Answer is: @{pipeline().parameters.myNumber}.

Voorbeelden van het gebruik van parameters in expressies

Parameters maken en gebruiken

Als u parameters wilt maken, selecteert u de achtergrond van het canvas van de pijplijneditor en vervolgens het tabblad Parameters van het eigenschappenvenster onderaan. Selecteer de knop + Nieuw om een nieuwe parameter toe te voegen aan de pijplijn, geef deze een naam, een gegevenstype en een standaardwaarde op:

Schermopname van de parameterseditor op de eigenschappenpagina's voor een pijplijn.

Vervolgens kunt u de parameter overal in uw pijplijn gebruiken waar dynamische inhoud wordt ondersteund. In dit voorbeeld wordt de parameter gebruikt om dynamisch de naam van een Lakehouse-gegevensarchief op te geven op het tabblad Bron van de eigenschappenpagina's van een kopieeractiviteit.

Schermopname van het tabblad Bron van de eigenschappenpagina's van een kopieeractiviteit, met de optie Dynamische inhoud toevoegen gemarkeerd.

Het venster Dynamische inhoud toevoegen wordt weergegeven, zodat u elk type dynamische inhoud kunt opgeven, waaronder parameters, systeemvariabelen, functies of pijplijnvariabelen. In dit voorbeeld wordt de eerder gedefinieerde parameter geselecteerd en wordt het venster voor dynamische inhoud automatisch gevuld met de juiste expressie om naar de parameter te verwijzen.

Schermopname van het venster Dynamische inhoud toevoegen met een pijplijnparameter geselecteerd.

Verbindingen parameteriseren

Het parameteriseren van verbindingen in pijplijnen vereist het gebruik van de verbindings-GUID die u dynamisch wilt vervangen.

  1. Voordat u de verbinding in uw pijplijn dynamisch kunt wijzigen, moet u de GUID opgeven voor de verbinding die u wilt instellen
  2. Ga naar Instellingen | Verbindingen en gateways beheren
  3. Zoek de naam van de verbinding en klik op de elipses naast de verbindingsnaam
  4. Instellingen selecteren en de verbindings-id kopiëren
  5. Een tekenreeksparameter gebruiken om de GUID in die parameter te plakken voor gebruik in uw dynamische expressie

Voorbeeld van complexe expressie

In het volgende voorbeeld ziet u een complex voorbeeld dat verwijst naar een diep subveld van de uitvoer van de activiteit. Als u wilt verwijzen naar een pijplijnparameter die naar een subveld evalueert, gebruikt u de syntaxis [] in plaats van dot(.) operator (zoals bij subveld1 en subveld2)

@activity('*activityName*').output.*subfield1*.*subfield2*[pipeline().parameters.*subfield3*].*subfield4*

Dynamische inhoudseditor

De dynamische inhoudseditor vervangt automatisch tekens in uw inhoud na het bewerken. De volgende inhoud in de inhoudseditor is bijvoorbeeld een tekenreeksinterpolatie met een expressiefunctie:

@{toUpper('myData')}

De dynamische inhoudseditor converteert de vorige inhoud naar de volgende expressie:

MYDATA

Functies en variabelen gebruiken in expressies

U kunt functies aanroepen en variabelen in expressies gebruiken. De volgende secties bevatten informatie over de functies die kunnen worden gebruikt in een expressie.

Variabelen voor pijplijnbereik

Deze systeemvariabelen kunnen overal in de pipeline JSON worden gebruikt.

Variabelenaam Description
@pipeline().DataFactory Naam van de gegevens of Synapse-werkruimte waarin de pipeline-uitvoering plaatsvindt
@pipeline().Pipeline Naam van de pijplijn
@pipeline().RunId ID van de specifieke pijplijnuitvoering
@pipeline().TriggerId Id van de trigger die de pijplijn heeft aangeroepen
@pipeline().TriggerName Naam van de trigger die de pijplijn heeft aangeroepen
@pipeline().TriggerTime Tijd van de triggeractie die de pijplijn heeft opgestart. Dit is het tijdstip waarop de trigger daadwerkelijk is geactiveerd om de pijplijnuitvoering te starten, en dit kan enigszins afwijken van de geplande tijd van de trigger.
@pipeline().GroupId ID van de groep waartoe de pijplijnrun behoort. In Microsoft Fabric verwijst een groep naar een verzameling gerelateerde resources die samen kunnen worden beheerd. Groepen worden gebruikt om de toegang tot resources te organiseren en te beheren, waardoor het eenvoudiger is om machtigingen te beheren en activiteiten in meerdere pijplijnen te bewaken.
@pipeline()?. TriggeredByPipelineName Naam van de pijplijn die de pijplijnuitvoering activeert. Van toepassing wanneer de pijplijnuitvoering wordt geactiveerd door een ExecutePipeline-activiteit. Beoordeel als Null wanneer gebruikt in andere omstandigheden. Let op het vraagteken na @pipeline()
@pipeline()?. TriggeredByPipelineRunId De run-ID van de pijplijn die de pijplijnrun activeert. Van toepassing wanneer de pijplijnuitvoering wordt geactiveerd door een ExecutePipeline-activiteit. Beoordeel als Null wanneer gebruikt in andere omstandigheden. Let op het vraagteken na @pipeline()

Note

Systeemvariabelen gerelateerd aan de trigger voor datum/tijd (in zowel de pijplijn- als de triggervelden) geven UTC-datums terug in ISO 8601-formaat, bijvoorbeeld 2017-06-01T22:20:00.4061448Z.

Stringfuncties

Als u met tekenreeksen wilt werken, kunt u deze tekenreeksfuncties en ook enkele verzamelingsfuncties gebruiken. Tekenreeksfuncties werken alleen op tekenreeksen.

Tekenreeksfunctie Task
concat Combineer twee of meer tekenreeksen en retourneer de gecombineerde tekenreeks.
endsWith Controleer of een tekenreeks eindigt met de opgegeven subtekenreeks.
guid Genereer een GUID (Globally Unique Identifier) als een tekenreeks.
indexOf Geef de beginpositie van een subtekenreeks terug.
lastIndexOf Retourneert de beginpositie voor de laatste keer dat een subtekenreeks voorkomt.
replace Vervang een subtekenreeks door de opgegeven tekenreeks en retourneer de bijgewerkte tekenreeks.
split Retourneert een matrix die subtekenreeksen bevat, gescheiden door komma's, van een grotere tekenreeks op basis van een opgegeven scheidingsteken in de oorspronkelijke tekenreeks.
startsWith Controleer of een tekenreeks begint met een specifieke subtekenreeks.
substring Retourneert tekens uit een tekenreeks, beginnend vanaf de opgegeven positie.
toLower Retourneert een tekenreeks in kleineletterformaat.
toUpper Retourneert een tekenreeks in hoofdletters.
trim Verwijder voorloop- en volgspaties uit een tekenreeks en retourneer de bijgewerkte tekenreeks.

Verzamelingsfuncties

Als u wilt werken met verzamelingen, over het algemeen matrices, tekenreeksen en soms woordenlijsten, kunt u deze verzamelingsfuncties gebruiken.

Verzamelingsfunctie Task
contains Controleer of een verzameling een specifiek item heeft.
empty Controleer of een verzameling leeg is.
first Retourneert het eerste item uit een verzameling.
intersection Retourneert een verzameling met alleen de algemene items in de opgegeven verzamelingen.
join Hiermee wordt een tekenreeks geretourneerd die alle items uit een matrix bevat, gescheiden door het opgegeven teken.
last Retourneer het laatste item uit een verzameling.
length Retourneert het aantal items in een tekenreeks of tabel.
skip Verwijder items aan de voorzijde van een verzameling en retourneer alle andere items.
take Artikelen terughalen van de voorkant van een verzameling.
union Hiermee wordt een verzameling geretourneerd die alle items uit de opgegeven verzamelingen bevat.

Logische functies

Deze functies zijn handig binnen voorwaarden, ze kunnen worden gebruikt om elk type logica te evalueren.

Logische vergelijkingsfunctie Task
and Controleer of alle expressies waar zijn.
equals Controleer of beide waarden gelijkwaardig zijn.
greater Controleer of de eerste waarde groter is dan de tweede waarde.
greaterOrEquals Controleer of de eerste waarde groter is dan of gelijk is aan de tweede waarde.
if Controleer of een expressie waar of onwaar is. Op basis van het resultaat retourneert u een opgegeven waarde.
less Controleer of de eerste waarde kleiner is dan de tweede waarde.
lessOrEquals Controleer of de eerste waarde kleiner is dan of gelijk is aan de tweede waarde.
not Controleer of een expressie onwaar is.
or Controleer of ten minste één expressie waar is.

Conversiefuncties

Deze functies worden gebruikt om te converteren tussen elk van de natuurlijke typen in de taal.

  • string
  • integer
  • float
  • boolean
  • arrays
  • dictionaries
Conversiefunctie Task
array Retourneert een matrix van één opgegeven invoer. Zie CreateArray voor meerdere invoerwaarden.
base64 Retourneert de base64-gecodeerde versie voor een tekenreeks.
base64ToBinary Retourneert de binaire versie voor een met base64 gecodeerde tekenreeks.
base64ToString Retourneert de tekenreeksversie voor een met base64 gecodeerde tekenreeks.
binary Retourneert de binaire versie van een invoerwaarde.
bool Retourneert de Boole-versie voor een invoerwaarde.
coalesce Retourneert de eerste niet-null-waarde van een of meer parameters.
createArray Retourneert een matrix van meerdere invoerwaarden.
dataUri Retourneert de gegevens-URI voor een invoerwaarde.
dataUriToBinary Retourneer de binaire versie van een gegevens-URI.
dataUriToString Retourneert de tekenreeksversie voor een gegevens-URI.
decodeBase64 Retourneert de tekenreeksversie voor een met base64 gecodeerde tekenreeks.
decodeDataUri Retourneer de binaire versie van een gegevens-URI.
decodeUriComponent Retourneert een tekenreeks die escape-tekens vervangt door gedecodeerde versies.
encodeUriComponent Retourneert een tekenreeks die URL-onveilige tekens vervangt door escapetekens.
float Geef een kommagetal voor een invoerwaarde.
int Retourneert de integer-versie van een tekenreeks.
json Retourneert de JSON-typewaarde (JavaScript Object Notation) of het object voor een tekenreeks of XML.
string Retourneert de tekenreeksversie voor een invoerwaarde.
uriComponent Retourneert de URI-gecodeerde versie voor een invoerwaarde door URL-onveilige tekens te vervangen door escapetekens.
uriComponentToBinary Retourneert de binaire versie voor een URI-gecodeerde tekenreeks.
uriComponentToString Retourneert de tekenreeksversie voor een URI-gecodeerde tekenreeks.
xml Retourneer de XML-versie voor een tekenreeks.
xpath Controleer XML op knooppunten of waarden die overeenkomen met een XPath-expressie (XML Path Language) en retourneer de overeenkomende knooppunten of waarden.

Wiskundige functies

Deze functies kunnen worden gebruikt voor beide typen getallen: gehele getallen en floats.

Wiskundige functie Task
add Retourneert het resultaat van het optellen van twee getallen.
div Retourneert het resultaat van het delen van twee getallen.
max Retourneert de hoogste waarde uit een set getallen of een matrix.
min Retourneert de laagste waarde uit een set getallen of een matrix.
mod Retourneert de rest van het delen van twee getallen.
mul Retourneer het product door twee getallen te vermenigvuldigen.
rand Retourneert een willekeurig geheel getal uit een opgegeven bereik.
range Retourneert een matrix met gehele getallen die begint met een opgegeven geheel getal.
sub Retourneert het resultaat van het aftrekken van het tweede getal van het eerste getal.

Datumfuncties

Datum- of tijdfunctie Task
addDays Voeg een aantal dagen toe aan een tijdstempel.
addHours Voeg een aantal uren toe aan een tijdstempel.
addMinutes Voeg een aantal minuten toe aan een tijdstempel.
addSeconds Voeg een aantal seconden toe aan een tijdstempel.
addToTime Voeg een aantal tijdseenheden toe aan een tijdstempel. Zie ook getFutureTime.
convertFromUtc Converteer een tijdstempel van Universal Time Coordinated (UTC) naar de doeltijdzone.
convertTimeZone Converteer een tijdstempel van de brontijdzone naar de doeltijdzone.
convertToUtc Converteer een tijdstempel van de brontijdzone naar Universal Time Coordinated (UTC).
dayOfMonth Retourneer de dag van het maandonderdeel uit een tijdstempel.
dayOfWeek Retourneert de dag van de weekcomponent uit een tijdstempel.
dayOfYear Retourneer de dag van het jaaronderdeel uit een tijdstempel.
formatDateTime Retourneert de tijdstempel als een tekenreeks in optionele notatie.
getFutureTime Retourneer de huidige tijdstempel plus de opgegeven tijdseenheden. Zie ook addToTime.
getPastTime Retourneert de huidige tijdstempel minus de opgegeven tijdseenheden. Zie ook aftrekkenVanTijd.
startOfDay Retourneer het begin van de dag voor een tijdstempel.
startOfHour Retourneert het begin van het uur voor een tijdstempel.
startOfMonth Retourneer het begin van de maand voor een tijdstempel.
subtractFromTime Trek een aantal tijdseenheden af van een tijdstempel. Zie ook getPastTime.
ticks Retourneert de ticks eigenschapswaarde voor een opgegeven tijdstempel.
utcNow Retourneert de huidige tijdstempel als een tekenreeks.