Parametrisera mappningsdataflöden
GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics
Dricks
Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!
Mappning av dataflöden i Azure Data Factory- och Synapse-pipelines stöder användning av parametrar. Definiera parametrar i dataflödesdefinitionen och använd dem i dina uttryck. Parametervärdena anges av den anropande pipelinen via aktiviteten Kör dataflöde. Du har tre alternativ för att ange värdena i dataflödesaktivitetsuttrycken:
- Använd språket för pipelinekontrollflödesuttryck för att ange ett dynamiskt värde
- Använd dataflödesuttrycksspråket för att ange ett dynamiskt värde
- Använd något av uttrycksspråken för att ange ett statiskt literalvärde
Använd den här funktionen för att göra dina dataflöden allmänna, flexibla och återanvändbara. Du kan parametrisera dataflödesinställningar och uttryck med dessa parametrar.
Skapa parametrar i ett mappningsdataflöde
Om du vill lägga till parametrar i dataflödet klickar du på den tomma delen av dataflödesarbetsytan för att se de allmänna egenskaperna. I inställningsfönstret visas en flik med namnet Parameter. Välj Ny för att generera en ny parameter. För varje parameter måste du tilldela ett namn, välja en typ och eventuellt ange ett standardvärde.
Använda parametrar i ett mappningsdataflöde
Parametrar kan refereras till i valfritt dataflödesuttryck. Parametrar börjar med $ och är oföränderliga. Du hittar listan över tillgängliga parametrar i Expression Builder under fliken Parametrar .
Du kan snabbt lägga till ytterligare parametrar genom att välja Ny parameter och ange namn och typ.
Använda parametriserade länkade tjänster i ett mappningsdataflöde
Parametriserade länkade tjänster kan användas i ett mappningsdataflöde (för datauppsättningar eller infogade källtyper).
För den infogade källtypen exponeras de länkade tjänstparametrarna i inställningarna för dataflödesaktivitet i pipelinen enligt nedan.
För datamängdens källtyp exponeras de länkade tjänstparametrarna direkt i datauppsättningskonfigurationen.
Tilldela parametervärden från en pipeline
När du har skapat ett dataflöde med parametrar kan du köra det från en pipeline med aktiviteten Kör dataflöde. När du har lagt till aktiviteten i pipelinearbetsytan visas tillgängliga dataflödesparametrar på fliken Parametrar för aktiviteten.
När du tilldelar parametervärden kan du använda antingen språket för pipelineuttryck eller språket för dataflödesuttryck baserat på spark-typer. Varje mappningsdataflöde kan ha valfri kombination av parametrar för pipeline- och dataflödesuttryck.
Parametrar för pipelineuttryck
Med pipelineuttrycksparametrar kan du referera till systemvariabler, funktioner, pipelineparametrar och variabler som liknar andra pipelineaktiviteter. När du klickar på Pipelineuttryck öppnas ett sidonavigeringsfält där du kan ange ett uttryck med hjälp av uttrycksverktyget.
När det refereras utvärderas pipelineparametrar och sedan används deras värde i språket för dataflödesuttryck. Typ av pipelineuttryck behöver inte matcha dataflödesparametertypen.
Strängliteraler jämfört med uttryck
När du tilldelar en pipelineuttrycksparameter av typen sträng läggs som standard citattecken till och värdet utvärderas som en literal. Om du vill läsa parametervärdet som ett dataflödesuttryck markerar du uttrycksrutan bredvid parametern.
Om dataflödesparametern stringParam
refererar till en pipelineparameter med värdet upper(column1)
.
- Om uttrycket är markerat
$stringParam
utvärderas värdet för kolumn1 alla versaler. - Om uttrycket inte är markerat (standardbeteende)
$stringParam
utvärderas till'upper(column1)'
Skicka in tidsstämplar
I pipelineuttrycksspråket systemvariabler som och funktioner som pipeline().TriggerTime
utcNow()
returnerar tidsstämplar som strängar i formatet "åååå-MM-dd'T'HH:mm:ss. SSSSSSZ'. Om du vill konvertera dessa till dataflödesparametrar av typen tidsstämpel använder du stränginterpolation för att inkludera önskad tidsstämpel i en toTimestamp()
funktion. Om du till exempel vill konvertera pipelinens utlösartid till en dataflödesparameter kan du använda toTimestamp(left('@{pipeline().TriggerTime}', 23), 'yyyy-MM-dd\'T\'HH:mm:ss.SSS')
.
Kommentar
Dataflöden kan bara stödja upp till 3 millisekunders siffror. Funktionen left()
används för att trimma bort ytterligare siffror.
Exempel på pipelineparameter
Anta att du har en heltalsparameter intParam
som refererar till en pipelineparameter av typen String, @pipeline.parameters.pipelineParam
.
@pipeline.parameters.pipelineParam
tilldelas värdet abs(1)
vid körning.
När $intParam
refereras i ett uttryck, till exempel en härledd kolumn, utvärderas abs(1)
returen 1
.
Parametrar för dataflödesuttryck
Välj Dataflödesuttryck öppnar byggare för dataflödesuttryck. Du kommer att kunna referera till funktioner, andra parametrar och valfri definierad schemakolumn i hela dataflödet. Det här uttrycket utvärderas som när det refereras.
Kommentar
Om du skickar ett ogiltigt uttryck eller refererar till en schemakolumn som inte finns i den omvandlingen utvärderas parametern till null.
Skicka in ett kolumnnamn som en parameter
Ett vanligt mönster är att skicka in ett kolumnnamn som ett parametervärde. Om kolumnen definieras i dataflödesschemat kan du referera till den direkt som ett stränguttryck. Om kolumnen inte har definierats i schemat använder du byName()
funktionen . Kom ihåg att omvandla kolumnen till lämplig typ med en gjutningsfunktion, till exempel toString()
.
Om du till exempel vill mappa en strängkolumn baserat på en parameter columnName
kan du lägga till en härledd kolumntransformering som är lika med toString(byName($columnName))
.
Kommentar
I dataflödesuttryck stöds inte stränginterpolation (ersätta variabler i strängen). Sammanfoga i stället uttrycket till strängvärden. Till exempel: 'string part 1' + $variable + 'string part 2'