Share via


Toewijzingsgegevensstromen parameteriseren

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

Toewijzingsgegevensstromen in Azure Data Factory- en Synapse-pijplijnen ondersteunen het gebruik van parameters. Definieer parameters in de definitie van uw gegevensstroom en gebruik deze in uw expressies. De parameterwaarden worden ingesteld door de aanroepende pijplijn via de activiteit Execute Gegevensstroom. U hebt drie opties voor het instellen van de waarden in de expressies voor gegevensstroomactiviteit:

  • De expressietaal van de pijplijnbesturingsstroom gebruiken om een dynamische waarde in te stellen
  • De expressietaal van de gegevensstroom gebruiken om een dynamische waarde in te stellen
  • Een expressietaal gebruiken om een statische letterlijke waarde in te stellen

Gebruik deze mogelijkheid om uw gegevensstromen algemeen, flexibel en herbruikbaar te maken. U kunt de instellingen en expressies van de gegevensstroom parameteriseren met deze parameters.

Parameters maken in een toewijzingsgegevensstroom

Als u parameters wilt toevoegen aan uw gegevensstroom, klikt u op het lege gedeelte van het gegevensstroomcanvas om de algemene eigenschappen te bekijken. In het deelvenster Instellingen ziet u een tabblad met de naam Parameter. Selecteer Nieuw om een nieuwe parameter te genereren. Voor elke parameter moet u een naam toewijzen, een type selecteren en eventueel een standaardwaarde instellen.

Screenshot of create Data Flow parameters.

Parameters gebruiken in een toewijzingsgegevensstroom

Er kan naar parameters worden verwezen in elke gegevensstroomexpressie. Parameters beginnen met $ en zijn onveranderbaar. U vindt de lijst met beschikbare parameters in de opbouwfunctie voor expressies onder het tabblad Parameters .

Screenshot shows the available parameters in the Parameters tab.

U kunt snel extra parameters toevoegen door nieuwe parameter te selecteren en de naam en het type op te geven.

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

Geparameteriseerde gekoppelde services gebruiken in een toewijzingsgegevensstroom

Gekoppelde services met parameters kunnen worden gebruikt in een toewijzingsgegevensstroom (voor gegevensset- of inlinebrontypen).

Voor het inline-brontype worden de gekoppelde serviceparameters weergegeven in de instellingen voor gegevensstroomactiviteit in de pijplijn, zoals hieronder wordt weergegeven.

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

Voor het brontype van de gegevensset worden de gekoppelde serviceparameters rechtstreeks weergegeven in de configuratie van de gegevensset.

Parameterwaarden toewijzen vanuit een pijplijn

Nadat u een gegevensstroom met parameters hebt gemaakt, kunt u deze uitvoeren vanuit een pijplijn met de Gegevensstroom-activiteit uitvoeren. Nadat u de activiteit aan uw pijplijncanvas hebt toegevoegd, ziet u de beschikbare gegevensstroomparameters op het tabblad Parameters van de activiteit.

Wanneer u parameterwaarden toewijst, kunt u de taal van de pijplijnexpressie of de taal voor de gegevensstroomexpressie gebruiken op basis van spark-typen. Elke toewijzingsgegevensstroom kan elke combinatie van pijplijn- en gegevensstroomexpressieparameters hebben.

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

Pijplijnexpressieparameters

Met pijplijnexpressieparameters kunt u verwijzen naar systeemvariabelen, functies, pijplijnparameters en variabelen die vergelijkbaar zijn met andere pijplijnactiviteiten. Wanneer u op Pijplijnexpressie klikt, wordt er een zijnavigatie geopend waarmee u een expressie kunt invoeren met behulp van de opbouwfunctie voor expressies.

Screenshot shows the expression builder pane.

Wanneer ernaar wordt verwezen, worden pijplijnparameters geëvalueerd en wordt de waarde ervan gebruikt in de expressietaal van de gegevensstroom. Het type pijplijnexpressie hoeft niet overeen te komen met het parametertype voor de gegevensstroom.

Letterlijke tekenreeks versus expressies

Wanneer u een parameter voor de pijplijnexpressie van het type tekenreeks toewijst, worden standaard aanhalingstekens toegevoegd en wordt de waarde geëvalueerd als een letterlijke waarde. Als u de parameterwaarde wilt lezen als een gegevensstroomexpressie, schakelt u het expressievak naast de parameter in.

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

Als de gegevensstroomparameter stringParam verwijst naar een pijplijnparameter met waarde upper(column1).

  • Als de expressie is ingeschakeld, $stringParam wordt de waarde van kolom1 in hoofdletters geëvalueerd.
  • Als de expressie niet is ingeschakeld (standaardgedrag), $stringParam resulteert dit in 'upper(column1)'

Tijdstempels doorgeven

In de taal van de pijplijnexpressie worden systeemvariabelen zoals pipeline().TriggerTime en functies als utcNow() tijdstempels geretourneerd als tekenreeksen in de notatie 'jjjj-MM-dd'T'HH:mm:ss. SSSSSZ'. Als u deze wilt converteren naar gegevensstroomparameters van het type tijdstempel, gebruikt u tekenreeksinterpolatie om de gewenste tijdstempel in een toTimestamp() functie op te nemen. Als u bijvoorbeeld de tijd van de pijplijntrigger wilt converteren naar een gegevensstroomparameter, kunt u dit gebruiken 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.

Notitie

Gegevensstroom s kunnen maximaal 3 milliseconden ondersteunen. De left() functie wordt gebruikt om extra cijfers af te knippen.

Voorbeeld van pijplijnparameter

Stel dat u een geheel intParam getal hebt dat verwijst naar een pijplijnparameter van het type String, @pipeline.parameters.pipelineParam.

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

@pipeline.parameters.pipelineParam wordt een waarde toegewezen van abs(1) tijdens runtime.

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

Wanneer $intParam wordt verwezen in een expressie zoals een afgeleide kolom, wordt de geretourneerde waarde geëvalueerd1abs(1).

Screenshot shows the columns value.

Parameters voor gegevensstroomexpressie

Selecteer De expressie Gegevensstroom opent de opbouwfunctie voor gegevensstroomexpressies . U kunt verwijzen naar functies, andere parameters en een gedefinieerde schemakolom in uw gegevensstroom. Deze expressie wordt geëvalueerd zoals wanneer hiernaar wordt verwezen.

Notitie

Als u een ongeldige expressie doorgeeft of verwijst naar een schemakolom die niet in die transformatie bestaat, wordt de parameter geëvalueerd als null.

Een kolomnaam doorgeven als parameter

Een veelvoorkomend patroon is het doorgeven van een kolomnaam als parameterwaarde. Als de kolom is gedefinieerd in het gegevensstroomschema, kunt u er rechtstreeks naar verwijzen als een tekenreeksexpressie. Als de kolom niet is gedefinieerd in het schema, gebruikt u de byName() functie. Vergeet niet om de kolom naar het juiste type te casten met een cast-functie zoals toString().

Als u bijvoorbeeld een tekenreekskolom wilt toewijzen op basis van een parameter columnName, kunt u een afgeleide kolomtransformatie toevoegen die gelijk is aan toString(byName($columnName)).

Passing in a column name as a parameter

Notitie

In gegevensstroomexpressies wordt tekenreeksinterpolatie (waarbij variabelen in de tekenreeks worden vervangen) niet ondersteund. Voeg in plaats daarvan de expressie samen in tekenreekswaarden. Bijvoorbeeld 'string part 1' + $variable + 'string part 2'