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.

Screenshot of create Data Flow parameters.

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 .

Screenshot shows the available parameters in the Parameters tab.

Du kan snabbt lägga till ytterligare parametrar genom att välja Ny parameter och ange namn och typ.

Screenshot shows the parameters in the Parameters tab with new parameters added.

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.

Screenshot shows the use of linked service parameters in the data flow.

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.

Screenshot shows the Parameters tab with Data Flow expression selected for the value of myparam.

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.

Screenshot shows the expression builder pane.

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.

Screenshot shows the Data flow parameters pane Expression selected for a parameter.

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().TriggerTimeutcNow() 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').

Screenshot shows the Parameters tab where you can enter a trigger time.

Kommentar

Dataflöde 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.

Screenshot shows the Parameters tab with parameters named stringParam and intParam.

@pipeline.parameters.pipelineParam tilldelas värdet abs(1) vid körning.

Screenshot shows the Parameters tab with the value of a b s (1) selected.

När $intParam refereras i ett uttryck, till exempel en härledd kolumn, utvärderas abs(1) returen 1.

Screenshot shows the columns value.

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 columnNamekan du lägga till en härledd kolumntransformering som är lika med toString(byName($columnName)).

Passing in a column name as a parameter

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'